pax_global_header00006660000000000000000000000064136611402640014515gustar00rootroot0000000000000052 comment=edad134a28caaa7ea324b8c075bde52da05ad7d9 exif-exif-0_6_22-release/000077500000000000000000000000001366114026400152505ustar00rootroot00000000000000exif-exif-0_6_22-release/.appveyor.yml000066400000000000000000000025211366114026400177160ustar00rootroot00000000000000# AppVeyor CI configuration file https://www.appveyor.com environment: CYGWIN_MIRROR: http://cygwin.mirror.constant.com matrix: - CONFIG: cygwin - CONFIG: cygwin64 install: # FIXME: This uses the packaged libexif-devel which is not ideal. It should # be downloading and building the latest libexif code from Github instead. - cmd: if [%CONFIG%]==[cygwin] ( C:\cygwin\setup-x86.exe -qgnNdO -l C:\cygwin\var\cache\setup -R c:\cygwin -s "%CYGWIN_MIRROR%" -P libpopt-devel -P libexif-devel ) - cmd: if [%CONFIG%]==[cygwin64] ( C:\cygwin64\setup-x86_64.exe -qgnNdO -l C:\cygwin64\var\cache\setup -R c:\cygwin64 -s "%CYGWIN_MIRROR%" -P libpopt-devel -P libexif-devel ) # Work around a libpopt-devel-1.16-2 packaging issue that causes the error: # libtool: error: cannot find the library '/usr/lib/libintl.la' or unhandled argument '/usr/lib/libintl.la' # See http://www.cygwin.com/ml/cygwin-apps/2017-07/msg00005.html - cmd: if [%CONFIG%]==[cygwin] ( C:\%CONFIG%\bin\bash -e -l -c "rm /usr/lib/libpopt.la" ) build_script: - cmd: SET PATH=c:/%CONFIG%/bin - cmd: C:\%CONFIG%\bin\bash -e -l -c "cd $APPVEYOR_BUILD_FOLDER && autoreconf -sif && ./configure --prefix=$HOME && make V=1 && make V=1 install" test_script: - cmd: C:\%CONFIG%\bin\bash -e -l -c "cd $APPVEYOR_BUILD_FOLDER && make V=1 check || { tail -300 test*/test-suite.log; false; }" exif-exif-0_6_22-release/.cirrus.yml000066400000000000000000000025221366114026400173610ustar00rootroot00000000000000# Cirrus CI configuration # https://cirrus-ci.com/github/libexif/exif task: name: FreeBSD freebsd_instance: matrix: # There isn't a stable 13.0 image yet (2019-12) image_family: freebsd-13-0-snap image_family: freebsd-12-1 # The stable 11.3 image causes "Agent is not responding" so use a snapshot image_family: freebsd-11-3-snap env: # Set to 10 instead of 1 to avoid problems when new commits are submitted # during a run. CIRRUS_CLONE_DEPTH: 10 CFLAGS: -Wall -Wextra -O2 MAKE_FLAGS: -j 2 pkginstall_script: - pkg install -y autoconf automake libtool gettext-tools gettext-runtime popt pkgconf git - git clone --depth=1 https://github.com/libexif/libexif.git /tmp/libexif builddeps_script: - (cd /tmp/libexif && autoreconf -sivf && ./configure --prefix=/tmp/libexif/install && make V=1 && make V=1 install) configure_script: - autoreconf -sivf - ./configure --prefix="${HOME}" CFLAGS="$CFLAGS" PKG_CONFIG_PATH="/tmp/libexif/install/lib/pkgconfig:/usr/libdata/pkgconfig:/usr/local/libdata/pkgconfig" POPT_CFLAGS="$(pkg-config --cflags popt)" POPT_LIBS="$(pkg-config --libs popt)" || { tail -300 config.log; false; } compile_script: - make V=1 test_script: - make V=1 check || { tail -300 test/test-suite.log; false; } install_script: - make V=1 install exif-exif-0_6_22-release/.gitignore000066400000000000000000000011101366114026400172310ustar00rootroot00000000000000# CVS default ignores begin tags TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core # CVS default ignores end m4 intl autom4te.cache configure.scan autoscan.log *.tar.gz *.tar.bz2 Makefile Makefile.in aclocal.m4 config.cache config.guess config.h config.h.in config.log config.status config.sub config.rpath configure install-sh *.pc *.spec libtool ltmain.sh missing mkinstalldirs stamp-h stamp-h1 stamp-h.in conftest conftest.c ABOUT-NLS ar-lib compile depcomp INSTALL test-driver ChangeLog.git exif-exif-0_6_22-release/.travis.yml000066400000000000000000000247531366114026400173740ustar00rootroot00000000000000# Travis CI configuration file language: c sudo: false git: # Set to 10 instead of 1 to avoid problems when the most recent commits have [skip ci] depth: 10 # Install needed packages on Ubuntu & OS X addons: apt: # This is ignored on bionic for some reason (see below). packages: - autopoint - libpopt-dev homebrew: packages: - popt # The default OS X image is now (July 2019) too old to work without this update: true env: # More configurations are configured in the matrix section matrix: - CONFIG=normal - CONFIG=c90 - CONFIG=stackprotect - CONFIG=disable-nls global: - MAKEFLAGS='-j 2' compiler: - clang - gcc os: - linux - osx matrix: include: - env: CONFIG=normal DIST=bionic os: linux dist: bionic compiler: gcc - env: CONFIG=normal DIST=bionic os: linux dist: bionic compiler: clang - env: CONFIG=normal DIST=focal os: linux dist: focal compiler: gcc - env: CONFIG=normal DIST=focal os: linux dist: focal compiler: clang - env: CONFIG=clang6 DIST=xenial os: linux dist: xenial compiler: clang addons: apt: packages: - autopoint - clang-6.0 - libpopt-dev - env: CONFIG=clang8 DIST=xenial os: linux dist: xenial compiler: clang addons: apt: sources: sourceline: - deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main key_url: - https://apt.llvm.org/llvm-snapshot.gpg.key packages: - autopoint - clang-8 - libpopt-dev - env: CONFIG=clang9 DIST=xenial os: linux dist: xenial compiler: clang addons: apt: sources: sourceline: - deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main key_url: - https://apt.llvm.org/llvm-snapshot.gpg.key packages: - autopoint - clang-9 - libpopt-dev - env: CONFIG=clang10 DIST=xenial os: linux dist: xenial compiler: clang addons: apt: sources: sourceline: - deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main key_url: - https://apt.llvm.org/llvm-snapshot.gpg.key packages: - autopoint - clang-10 - libpopt-dev - env: CONFIG=gcc8 DIST=xenial os: linux dist: xenial compiler: gcc addons: apt: sources: sourceline: - ppa:ubuntu-toolchain-r/test packages: - autopoint - g++-8 - libpopt-dev - env: CONFIG=gcc9 DIST=xenial os: linux dist: xenial compiler: gcc addons: apt: sources: sourceline: - ppa:ubuntu-toolchain-r/test packages: - autopoint - g++-9 - libpopt-dev - env: CONFIG=arm-cross os: linux compiler: gcc addons: apt: packages: - autopoint - gcc-4.8-arm-linux-gnueabihf - libc6-dev-armhf-cross cache: directories: - $HOME/popt - env: CONFIG=musl DIST=xenial os: linux dist: xenial compiler: gcc addons: apt: packages: - autopoint - musl-tools cache: directories: - $HOME/popt - env: CONFIG=sanitize DIST=xenial os: linux dist: xenial compiler: clang addons: apt: sources: sourceline: - deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main key_url: - https://apt.llvm.org/llvm-snapshot.gpg.key packages: - autopoint - clang-10 - libtool cache: directories: - $HOME/popt # Required for -fsanitize=undefined # see https://github.com/travis-ci/travis-ci/issues/9033 sudo: required - env: CONFIG=coverage DIST=xenial os: linux dist: xenial compiler: gcc addons: apt: packages: - autopoint - libpopt-dev - subversion - env: CONFIG=normal os: osx osx_image: xcode11 compiler: clang addons: homebrew: packages: - popt - env: CONFIG=normal DIST=bionic arch: arm64 os: linux dist: bionic compiler: gcc - env: CONFIG=normal DIST=bionic arch: ppc64le os: linux dist: bionic compiler: gcc before_install: # The apt addons section is ignored on bionic for some reason - if [ "${DIST}" = "bionic" ] ; then sudo apt-get install -y autopoint gettext libpopt-dev libtool pkg-config; fi install: # Install the latest libexif - | # This is done by the testsuite in coverage builds if [ "$CONFIG" != "coverage" ] ; then # OS X has a weird alias that causes cd to abort with set -e so leave it # off over a cd. cd "$HOME" set -e git clone --depth=1 https://github.com/libexif/libexif.git set +e cd libexif set -e PATH="$PATH:/usr/local/opt/gettext/bin" autoreconf -sivf set +e cd "$TRAVIS_BUILD_DIR" fi # Install the exif test suite on coverage builds - | if [ "$CONFIG" = "coverage" ] ; then set -e pip install --user cpp-coveralls cd "$HOME" git clone --depth=1 https://github.com/libexif/libexif-testsuite.git cd libexif-testsuite mkdir src # Use Travis' copy of the exif source ln -s "$TRAVIS_BUILD_DIR" src/exif # This downloads the libexif source ./build-config.sh autoreconf -sivf set +e fi # Install a fixed libpopt in sanitize builds, plus in those environments # where it's not available at all. - | if [ '(' "$CONFIG" = "musl" -o "$CONFIG" = "arm-cross" -o "$CONFIG" = "sanitize" ')' -a ! -e "$HOME/popt/lib/libpopt.a" ] ; then set -e cd "$HOME" POPT_BASE_URL="http://us-central1.gce.archive.ubuntu.com/ubuntu/pool/main/p/popt/popt_1.16" curl --fail --retry 8 -OL "${POPT_BASE_URL}"-12.debian.tar.xz -OL "${POPT_BASE_URL}".orig.tar.gz -OL "${POPT_BASE_URL}"-12.dsc dpkg-source -x popt_1.16-12.dsc cd popt-1.16 # Drop the message catalogs so they aren't built, installed or cached sed -i -e 's/\(AM_GNU_GETTEXT_VERSION\)/dnl \1/' configure.ac autoreconf -sivf cd "$TRAVIS_BUILD_DIR" set +e fi script: # Ensure brew gettext is in the PATH so autopoint is found on OS X - PATH="$PATH:/usr/local/opt/gettext/bin" autoreconf -sivf - if [ "$CONFIG" = "normal" ] ; then CFLAGS='-Wall -Wextra -O3'; fi # Most environments work with _XOPEN_SOURCE=500 but OS X requires 600 to get # snprintf and strdup. - if [ "$CONFIG" = "c90" ] ; then CFLAGS='-std=iso9899:1990 -D_XOPEN_SOURCE=600 -Wall -Wextra -O3'; fi - if [ "$CONFIG" = "stackprotect" ] ; then CFLAGS='-g -O0 -fstack-protector-all'; fi - if [ "$CONFIG" = "disable-nls" ] ; then CFLAGS='-Wall -Wextra -O3'; CONFIGURE_OPTS='--disable-nls'; fi - if [ "$CONFIG" = "clang6" ] ; then CFLAGS='-Wall -Wextra -O3'; export CC=clang-6.0; fi - if [ "$CONFIG" = "clang8" ] ; then CFLAGS='-Wall -Wextra -Wno-error=switch -O3'; MAKE_OPTS="CFLAGS+=-Werror CFLAGS+=${CFLAGS// / CFLAGS+=}"; export CC=clang-8; fi - if [ "$CONFIG" = "clang9" ] ; then CFLAGS='-Wall -Wextra -Wno-error=switch -O3'; MAKE_OPTS="CFLAGS+=-Werror CFLAGS+=${CFLAGS// / CFLAGS+=}"; export CC=clang-9; fi - if [ "$CONFIG" = "clang10" ] ; then CFLAGS='-Wall -Wextra -Wno-error=switch -O3'; MAKE_OPTS="CFLAGS+=-Werror CFLAGS+=${CFLAGS// / CFLAGS+=}"; export CC=clang-10; fi - if [ "$CONFIG" = "gcc8" ] ; then CFLAGS='-Wall -Wextra -Wno-error=switch -Wno-error=implicit-fallthrough -Wno-error=enum-compare -O3'; MAKE_OPTS="CFLAGS+=-Werror CFLAGS+=${CFLAGS// / CFLAGS+=}"; export export CC=gcc-8; fi - if [ "$CONFIG" = "gcc9" ] ; then CFLAGS='-Wall -Wextra -Wno-error=switch -Wno-error=implicit-fallthrough -Wno-error=enum-compare -O3'; MAKE_OPTS="CFLAGS+=-Werror CFLAGS+=${CFLAGS// / CFLAGS+=}"; export export CC=gcc-9; fi - if [ "$CONFIG" = "arm-cross" ] ; then CFLAGS='-Wall -Wextra -O3'; export CC=arm-linux-gnueabihf-gcc-4.8; CONFIGURE_OPTS="--host=arm-linux-gnueabihf" PKG_CONFIG_PATH="${HOME}/popt/lib/pkgconfig"; fi - if [ "$CONFIG" = "musl" ] ; then CFLAGS='-Wall -Wextra -O3'; export CC=musl-gcc; PKG_CONFIG_PATH="${HOME}/popt/lib/pkgconfig"; fi - if [ "$CONFIG" = "sanitize" ] ; then CFLAGS='-g -Wall -Wextra -fsanitize=address -fsanitize=undefined -fsanitize-address-use-after-scope'; export CC=clang-10; PKG_CONFIG_PATH="${HOME}/popt/lib/pkgconfig"; export ASAN_OPTIONS=strict_string_checks=0:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1:detect_leaks=1; fi - if [ "$CONFIG" = "coverage" ] ; then CFLAGS=--coverage; CONFIGURE_OPTS='LDFLAGS=--coverage'; fi # libpopt0:1.16-8ubuntu1 has a memory leak that causes UBSAN to fail. Build a # fixed version to use when running those tests. popt is also needed on ARM # and MUSL since those types of packages aren't available to install with # apt. This can't be built in the install section because it needs the # compiler name and flags to be specified. - | if [ -e "$HOME"/popt-1.16 ] ; then set -e cd "$HOME"/popt-1.16 # Use the CONFIGURE_OPTS above to get a --host option, if present ./configure --prefix="${HOME}/popt" --disable-nls --disable-shared --disable-dependency-tracking $CONFIGURE_OPTS make V=1 make V=1 install cd "$TRAVIS_BUILD_DIR" set +e fi - | if [ "$CONFIG" != "coverage" ] ; then cd "$HOME"/libexif set -e # Use the CONFIGURE_OPTS above to get a --host option, if present # Use CFLAGS to get the -g and -fsanitize options ./configure --prefix="${HOME}" --disable-dependency-tracking CFLAGS="$CFLAGS" $CONFIGURE_OPTS make V=1 make V=1 install set +e cd "$TRAVIS_BUILD_DIR" fi # Finally, configure and build exif - if [ "$CONFIG" = "coverage" ] ; then cd "$HOME"/libexif-testsuite; fi - ./configure --prefix="${HOME}" --disable-dependency-tracking CFLAGS="$CFLAGS" PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${HOME}/lib/pkgconfig" $CONFIGURE_OPTS || { tail -300 config.log; false; } - make V=1 $MAKE_OPTS # Skip tests when cross compiling. - if [ "$CONFIG" != "arm-cross" ] ; then make V=1 $MAKE_OPTS check || { tail -300 test*/test-suite.log; false; }; fi - make V=1 $MAKE_OPTS install - if [ "$CONFIG" = "coverage" ] ; then cd "$TRAVIS_BUILD_DIR"; fi after_success: - if [ "$CONFIG" = "coverage" ] ; then coveralls --exclude test --gcov-options '\-lp'; fi exif-exif-0_6_22-release/AUTHORS000066400000000000000000000001201366114026400163110ustar00rootroot00000000000000Lutz Müller Dan Fandrich exif-exif-0_6_22-release/COPYING000066400000000000000000000635021366114026400163110ustar00rootroot00000000000000 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! exif-exif-0_6_22-release/ChangeLog000066400000000000000000000464631366114026400170370ustar00rootroot000000000000002014-01-05 Dan Fandrich * po/es.po: Updated Spanish translation by Antonio Ceballos 2013-07-13 Dan Fandrich * po/tr.po: Added new Turkish translation by Volkan Gezer * po/fr.po: Updated French translation by Frédéric Marchal * po/vi.po: Updated Vietnamese translation by Trần Ngọc Quân 2013-03-13 Dan Fandrich * po/pt_BR.po: Added new Brazilian Portuguese translation by Rafael Ferreira 2012-07-12 Dan Fandrich * Prevent NULL pointer dereference on out of memory situation. Such a situation could be created when processing an extremely large JPEG file. * libjpeg/jpeg-data.c: Fixed bug that caused exif to read past the end of a buffer. At worst, data->size would underflow which would cause a gigantic read past the end of the heap buffer and likely subsequent crash, which would only happen with a corrupted input file. It might be possible to copy sensitive information from process memory. This fixes CVE-2012-2845 * Released 0.6.21 2012-06-27 Dan Fandrich * exif.1: Added warning about XML, switched to UTF-8, other minor improvements 2012-05-19 Dan Fandrich * po/id.po: Updated Indonesian translation by Andhika Padmawan 2012-05-16 Dan Fandrich * po/hr.po: Added new Croatian translation by Tomislav Krznar * po/sr.po: Added new Serbian translation by Мирослав Николић * po/vi.po: Updated Vietnamese translation by Trần Ngọc Quân 2011-12-08 Dan Fandrich * po/cs.po: Added new Czech translation by Marek Černocký * Converted ChangeLog into UTF-8 2011-11-07 Dan Fandrich * po/de.po: Updated German translation by Mario Blättermann 2011-09-14 Dan Fandrich * po/lv.po: Updated Latvian translation by Rihards Prieditis 2011-08-26 Dan Fandrich * po/eo.po: Added new Esperanto translation by Felipe Castro * po/uk.po: Added new Ukrainian translation by Yuri Chornoivan * po/da.po: Updated Danish translation by Joe Hansen * po/fi.po: Updated Finnish translation by Jorma Karvonen * po/is.po: Updated Icelandic translation by Sveinn í Felli * po/it.po: Updated Italian translation by Vincenzo Campanella * po/nl.po: Updated Dutch translation by Erwin Poeze * po/pl.po: Updated Polish translation by Jakub Bogusz * po/sk.po: Updated Slovak translation by Ivan Masár * po/sv.po: Updated Swedish translation by Daniel Nylander * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu 2010-12-15 Dan Fandrich * Released 0.6.20 2010-10-19 Dan Fandrich * po/gl.po: Added new Galician translation by Fran Diéguez * po/is.po: Updated Icelandic translation by Sveinn í Felli 2010-06-16 Dan Fandrich * Adding and removing a thumbnail can now be done at the same time as other options. This closes Debian bug #552102 2010-02-18 Dan Fandrich * po/lv.po: Updated Latvian translation by Rihards Prieditis * Changed capitalization of Unknown Tag message to be consistent with regular tag names 2010-01-25 Dan Fandrich * po/ro.po: Added new Romanian translation by Sergiu Bivol * configure.ac: Turned on the --enable-silent-rules configure option 2009-12-30 Dan Fandrich * po/sk.po: Updated Slovak translation by Ivan Masár 2009-12-16 Dan Fandrich * Honour --machine-readable with --show-mnote 2009-12-11 Dan Fandrich * Fixed a couple of memory leaks 2009-11-23 Dan Fandrich * Honour --machine-readable with --show-mnote 2009-11-21 Dan Fandrich * Increased the description width for the --list-tags command * Allow --set-value on UNDEFINED tags (treated as a byte array) 2009-11-20 Dan Fandrich * Rewrote the --set-value parser to use strtok to stop a NULL pointer dereference when too few components were given, and to make it more forgiving of whitespace. * po/it.po: Updated Italian translation by Vincenzo Campanella 2009-11-19 Dan Fandrich * --no-fixup now honoured during --create-exif to not create default tags 2009-11-12 Dan Fandrich * Released 0.6.19 2009-10-17 Dan Fandrich * Fixed alignment of --list-tags header with --width 2009-10-16 Dan Fandrich * po/ja.po: Added new Japanese translation by Tadashi Jokagi 2009-10-13 Dan Fandrich * po/fi.po: Added new Finnish translation by Jorma Karvonen * po/sv.po: Updated Swedish translation by Daniel Nylander * po/vi.po: Updated Vietnamese translation by Clytie Siddall * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu 2009-10-12 Dan Fandrich * Added argument description for --set-value and a missing translation (pointed out by Jorma Karvonen) 2009-10-08 Dan Fandrich * Released 0.6.18 2009-10-05 Dan Fandrich * Updated translations from Translation Project members to the latest & hopefully final .pot file before release 2009-09-30 Dan Fandrich * Added --no-fixup to disable attempts to fix tags in existing files. This involved creating a version of exif_loader_get_data (exif_get_data_opts) that allows ExifOption values to be set in the ExifData before it's used to store tags. * Added --width option to allow setting width of output 2009-09-28 Dan Fandrich * Added the text of the LGPL V2.1 in COPYING so there isn't any confusion as to the licensing terms of the project. GNU autotools adds a GPL COPYING file by default if this doesn't exist, which is wrong. 2009-09-18 Dan Fandrich * po/de.po: Updated German translation by Marcus Meissner * po/sv.po: Updated Swedish translation by Daniel Nylander * po/vi.po: Updated Vietnamese translation by Clytie Siddall * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu 2009-09-17 Dan Fandrich * po/da.po: Updated Danish translation by Joe Hansen * po/id.po: Updated Indonesian translation by Andhika Padmawan * po/nl.po: Updated Dutch translation by Erwin Poeze * po/pl.po: Updated Polish translation by Jakub Bogusz 2009-09-03 Dan Fandrich * po/is.po: Added Icelandic translation by Sveinn í Felli 2009-04-13 Dan Fandrich * po/lv.po: Added Latvian translation by Rihards Prieditis * po/da.po: Updated Danish translation by Joe Hansen * exif/actions.c: Allow setting signed & unsigned byte data 2009-01-21 Dan Fandrich * exif/main.c: Create mandatory EXIF tags with the --create-exif option 2009-01-14 Dan Fandrich * exif/main.c: Clarify the error when a file can't be read * exif/actions.c: --ifd is now honoured while displaying tag contents 2009-01-12 Dan Fandrich * exif/main.c: Allow setting --tag=0 (needed for the GPS IFD) 2008-12-22 Dan Fandrich * po/vi.po: Updated Vietnamese translation by Clytie Siddall 2008-11-28 Dan Fandrich * po/it.po: Added new Italian translation by Vincenzo Campanella 2008-11-26 Dan Fandrich * po/da.po: Updated Danish translation by Joe Hansen 2008-11-25 Dan Fandrich * po/sk.po: Updated Slovak translation by Ivan Masár 2008-11-21 Dan Fandrich * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu 2008-11-18 Dan Fandrich * po/id.po: Updated Indonesian translation by Andhika Padmawan * po/nl.po: Updated Dutch translation by Erwin Poeze * po/pl.po: Updated Polish translation by Jakub Bogusz * po/sv.po: Updated Swedish translation by Daniel Nylander * exif.1: Added some examples of how to use the command-line 2008-11-11 Dan Fandrich * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu 2008-11-06 Dan Fandrich * Released 0.6.17 2008-11-05 Dan Fandrich * po/de.po: Updated German translation by Marcus Meissner 2008-09-08 Dan Fandrich Added Danish translation by Joe Hansen 2008-08-01 Dan Fandrich Added Indonesian translation by Andhika Padmawan 2008-06-15 Lutz Mueller Patch by Matthieu Castet (slightly modified): * actions.c (convert_arg_to_entry): Allow the setting of the user comment tag. (action_set_value): Add some debugging information. * main.c (main): When setting values, save the resulting data. 2008-04-10 Dan Fandrich Added Slovak translation by Ivan Masár 2008-03-27 Dan Fandrich Added Chinese (simplifed) translation by Ji ZhengYu 2008-03-20 Dan Fandrich Added Vietnamese translation by Clytie Siddall 2008-02-22 Lutz Mueller Make libexif-testsuite pass again (thanks to Dan Fandrich for alerting me): * exif/actions.c: (action_remove_tag) Make both ifd and tag optional. (action_show_tag) Make ifd optional. * exif/main.c: (main) Don't require an ifd for the --remove option. 2008-02-17 Lutz Mueller * exif/main.c: Move the remaining actions to... * exif/actions.[c,h]: ...here. While at it, implement a --create-exif option (suggestion and patch by Alexander Drozdov ). This needs latest libexif, therefore ... * configure.ac: ...require at least libexif 0.6.16.2. 2008-02-17 Lutz Mueller In preparation of adding new command line options: * exif/main.c: Move more individual actions to... * exif/actions.[c,h]: ...here. That should make the file main.c more readable. 2008-02-10 Lutz Mueller Patch by Alexander Drozdov : * exif/utils.c (exif_tag_from_string): Speed improvements. 2008-01-10 Jan Patera * Added Svedish translation by Daniel Nylander 2007-11-24 Dan Fandrich * exif/main.c: Fixed a NULL dereference when the description of an the invalid tag is requested. 2007-11-07 Dan Fandrich * exif/main.c: Fixed the output of -t and -s when iconv is configured. Load popt.h later so it works with popt-1.12. 2006-07-28 Lutz Mueller Patch by Marek 'marx' Grac : * exif/actions.c: (show_entry_xml, show_xml, action_tag_list_xml) New. * exif/actions.h: Remove cruft. * exif/main.c: Provide an 'xml-output' option. 2006-03-23 Lutz Mueller * exif/main.c: Add the command line option '--version'/'-v'. 2005-08-15 Lutz Mueller Patch by Jakub Bogusz : * libexif/exif-i18n.h: Fix translation. * po/pl.po: New 2005-04-27 Lutz Mueller * libexif/main.c * libexif/actions.c: Use logging mechanism. Use new exif_tag_get_* functions. 2005-03-30 Jan Patera * libjpeg/jpeg-data/c: memset in jpeg_data_append_section(). Fix for truncated JPEGs: if 1st to the last byte was between 0xC0 and 0xFE, reading beyond allocated memory & possible crashes occured, eventually screwed file was saved. 2005-03-30 Lutz Mueller * exif/main.c: Always use a logging function to make errors fatal. This fixes #1169170. 2005-03-29 Lutz Mueller * exif/main.c: Abort if anything goes wrong. Fixes #1054322. 2005-03-29 Lutz Mueller * libjpeg/jpeg-data.c: Bring it in sync with libexif/libjpeg/jpeg-data.c 2005-03-29 Lutz Mueller * libjpeg/jpeg-data.c: Don't crash. First part of fix for #1054322. Remainder will follow in libexif. 2005-03-16 Lutz Mueller * exif/main.c: Fix for #994706. 2005-03-14 Hans Ulrich Niedermann * exif/main.c: remove email address from translatable string * exif/main.c: return exit code != 0 in case of invalid command line * configure.in, m4/*, exif/Makefile.am: Use updated build system This should fix many build problems reported in the past. * po/*.po: Update translations for changed string, and %s vs. %m 2005-01-08 Lutz Mueller Suggestion by Michael Rasmussen : * exif/main.c: Make '-m' together with '--tag' only print the value of the tag, nothing else. 2004-12-05 Lutz Mueller * exif/actions.c: Lars Ellenberg found out that on his system, fprintf ("%s", NULL) does not work. * exif/exif-utils.[c,h]: Remove some unused code. 2004-09-09 Lutz Mueller * exif/configure.in: We depend on libexif 0.6.11. * exif/main.c: Use standard error titles and messages. 2004-08-31 Jan Patera * exif/main.c,actions.*: action_mnote_list can print mnote tag ID instead of its name. Code submitted by Serge Droz . 2004-08-27 Lutz Mueller * exif/exif-i18n.c: Some users don't have iconv. 2004-06-22 Lutz Mueller * exif/actions.c: Don't crash if return value is NULL. Spotted by Serge Droz . Kill warning. 2004-06-06 Lutz Mueller * exif/actions.c: Try to fix segfault. 2004-06-06 Lutz Mueller * exif/actions.c: Fix --show-mnote. 2004-05-27 Lutz Mueller * configure.in: 0.6.10 as 0.6.9 has just been released. 2004-05-27 Lutz Mueller * *: Now make distcheck works. 2004-05-24 Jan Patera * libjpeg/jpeg-data.[c,h]: jpeg_data_append_section changed from static to public 2004-05-20 Lutz Mueller * exif/*: Support for maker notes. * exif/main.c: Proposal for support of debugging messages. 2004-05-11 Jan Patera * libjpeg/jpeg-data.c: memory leak in jpeg_data_set_exif_data, return type of jpeg_data_save_file 2004-04-04 Lutz Mueller lutz@users.sourceforge.net * configure.in: libmnote is no longer separate from libexif. 2004-01-08 Lutz Mueller * exif/actions.c: Adapt to new API * configure.in: Require libexif-0.5.13. 2003-10-15 Lutz Mueller * exif.spec.in: Patches by Peter Bieringer . 2003-10-01 Lutz Mueller * exif/exif-i18n.c: Patch to fix 64bit related crash by Marcus Meissner (#784852). 2003-10-01 Lutz Mueller * exif/actions.[c,h]: * exif/main.c: Add option --machine-readable. Patch by Greg Baker (#761641). 2003-08-21 Lutz Mueller * exif/exif-main.c: Patch by Roberto Costa without ChangeLog entry. Does something with --set-value and compiles without warnings... 2003-05-05 Lutz Mueller * exif/exif-i18n.[c,h]: New. Suggested by Gernot Jander . 2003-03-13 Lutz Mueller * libjpeg/jpeg-data.c: Aravind aravinds1@users.sourceforge.net found a bug there. 2003-02-11 Lutz Mueller * exif/main.c: IRIS fixes by Andrea Suatoni . 2003-01-28 Lutz Mller * exif/main.c: Change the description of '--output' from 'write output' to 'write data'. Should fix #671440. 2002-11-17 Rod Whitby * configure.in: * exif/main.c: * exif/actions.c: * exif/actions.h: * exif/utils.c: * exif/utils.h: Added support for libmnote (MakerNote parsing). * exif/main.c: Changed show_entry to use exif_entry_dump. * exif/main.c: Fixed set_value for EXIF_FORMAT_ASCII. 2002-11-15 Lutz Müller * configure.in: Ok, I got the message. Let exif _optionally_ use libmnote if available. 2002-11-15 Lutz Müller * configure.in: Make exif depend on libmnote. This library isn't used yet, but that's subject to change. 2002-10-23 Lutz Müller * exif/main.c: s/poptPrintUsage/poptPrintHelp 2002-10-22 Lutz Müller * exif/main.c: Fix segfault. 2002-10-22 Lutz Müller * exif/main.c: Print usage if no arguments are given. Save modified files on --remove-ifd and --remove. Try to avoid a segfault. 2002-10-21 Lutz Müller * exif/main.c: --remove-thumbnail and --remove [tag,ifd] as requested by Marko Mäkelä . 2002-09-16 Lutz Müller * exif.1: Donated by Thomas Pircher 2002-09-15 Lutz Müller * configure.in: * exif/main.c: * exif/actions.c: IRIS fixes by Andrea Suatoni 2002-09-15 Lutz Müller * configure.in: * po/es.po: Spanish translation by Fabian Mandelbaum 2002-08-30 Lutz Müller * exif/main.c: Make sure people don't try too save too much EXIF data. 2002-08-06 Lutz Müller * configure.in: Check for locale.h * exif/main.c: Only use setlocale if locale.h is availabe. 2002-07-25 Lutz Müller * configure.in: Version 0.5. Require at least libexif-0.5.4. * exif: Adapt to new API. Prepare --set-value. 2002-06-10 Lutz Müller * configure.in: Version 0.4 2002-06-10 Lutz Müller * configure.in: We need autoconf > 2.50. 2002-06-09 Lutz Müller Internationalization. 2002-06-08 Lutz Müller * exif: --insert-thumbnail option. 2002-06-03 Lutz Müller * configure.in: Version 0.3 2002-06-03 Lutz Müller Patch by Guido Ostkamp : * exif/main.c: Fix pointer error. 2002-04-15 Lutz Müller * exif/main.c: Print a warning if no EXIF data can be found. * exif/actions.c: Don't segfault. 2002-04-04 Hans Ulrich Niedermann * Makefile.am: dded .tar.bz2 packaging to "make dist" 2002-04-04 Lutz Müller * exif/main.c: Old versions of popt.h don't define POPT_TABLEEND. 2002-02-12 Lutz Müller * configure.in: Version 0.2 exif-exif-0_6_22-release/Makefile.am000066400000000000000000000022371366114026400173100ustar00rootroot00000000000000SUBDIRS = m4m po libjpeg exif test man_MANS = exif.1 # newer versions of automake/autoconf require adding exif.1 here EXTRA_DIST = exif.1 @PACKAGE_TARNAME@.spec ACLOCAL_AMFLAGS = -I auto-m4 -I m4m ####################################################################### # Help for the maintainer # # Simulate something like # EXTRA_DIST_IF_EXIST = ChangeLog.git # If present, ship ChangeLog.git in source tarball. # If not present, don't ship it. dist-hook: if test -f $(srcdir)/ChangeLog.git; then \ cp -p $(srcdir)/ChangeLog.git $(distdir)/ChangeLog.git; \ fi .PHONY: git-changelog git-changelog: $(srcdir)/ChangeLog.git .PHONY: $(srcdir)/ChangeLog.git $(srcdir)/ChangeLog.git: (cd "$(srcdir)" && git2cl > $@) .PHONY: git-tag-release git-tag-release: @tag="$$(echo "$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-release" | sed 's|\.|_|g')"; \ echo "Are you sure you want to git tag \`$${tag}' your source files?"; \ echo "Press Ctrl-C to abort, Enter to continue."; \ read; \ cd "$(srcdir)" && git tag "$${tag}" # Create an HTML version of the man page for the web site .1.html: man2html -r -H libexif.github.io -M / "$^" | sed '1,/^$$/d' >"$@" # End of Makefile.am. exif-exif-0_6_22-release/NEWS000066400000000000000000000063571366114026400157620ustar00rootroot00000000000000exif-0.6.22 (2020-05-19): * New translations: ast, fur, ko, ms, pt_BR, ru, tr * Updated translations: many! * Fix a number of compiler and automake warnings * Fix the --remove option when no tag is specified. * Escape special XML characters in xml mode. * Add many continuous integration builds * Add more regression tests * Fixup IFD 1 tags when adding or removing a thumbnail. * Fix the XML tags used in --ids format. * Fix a memory leak when no arguments are given. * Enable AM_SILENT_RULES by default. * Make sure the tag buffer in show_entry_xml is NUL-terminated. * Eliminated unnecessary remove() calls in jpeg_data_save_file. * Close files before logging the error. * Install a SIGPIPE handler to stop generating a signal on pipe failures. * Fix cross-compilation with pkg-config * Use GP_CHECK_LIBRARY to look for popt. * Include strings to translate from libjpeg/jpeg-data.c * Fixed a double free by initializing data variable to NULL * Check that JPEGs start with 0xff exif-0.6.21 (2012-07-12): * New translations: cs, eo, hr, sr, uk * Updated translations: da, de, fi, id, is, it, nl, pl, sk, sv, vi, zh_CN * Improved the man page * Prevent NULL pointer dereference on out of memory situation * Fixed bug that caused read past the end of a buffer (CVE-2012-2845) exif-0.6.20 (2010-12-15): * New translation: ro * Updated translations: it, lv, sk * --no-fixup now honoured during --create-exif to not create default tags * Fixed crash when not enough components were given to --set-value * Made --set-value more forgiving of whitespace * Allow --set-value on UNDEFINED tags (treating them as byte arrays) * Honour --machine-readable with --show-mnote and --show-description * Turned on the --enable-silent-rules configure option * Adding or removing a thumbnail can be done simultaneously with other options * Allow --create-exif to be used in place of an input file exif-0.6.19 (2009-11-12): * New translations: fi, ja * Updated translations: sv, vi, zh_CN * Fixed alignment of --list-tags header with --width exif-0.6.18 (2009-10-08): * New translations: is, it, lv * Updated translations: da, de, id, nl, pl, sk, sv, vi, zh_CN * Fixed alignment of tables in locales with multibyte character encoding (bug #2034873) * Allow setting --tag=0 (needed for the GPS IFD) * --ifd is now honoured while displaying tag contents * --create-exif now creates mandatory EXIF tags with default data * --no-fixup disables attempts to fix tags in existing files * --width option sets width of output lines exif-0.6.17 (2008-11-06): * Fixed the output of -s and -t when iconv is configured * Updated translations: pl * Added translations: id nl sk sv vi zh_CN * Fixed a double character encoding conversion problem with recent GNU gettext because version >= 0.10.36 does the conversion of message texts itself. exif-0.6.16 (unreleased version): * Updated translations: pl New in 0.6.15: * Misc. (build) bug fixes. New since 0.6.9 (2004-05-27): * Bug fixes: #994706, #1005652 * return exit code != 0 in case of invalid command line * Updated build system * (Cross-)compiles for Windows (mingw32) * Partially updated translations * Misc. small fixes (see ChangeLog) exif-exif-0_6_22-release/README000066400000000000000000000027221366114026400161330ustar00rootroot00000000000000 EXIF ---- 'exif' is a small command-line utility to show EXIF information hidden in JPEG files. I wrote it to demonstrate the power of libexif. It depends on * libexif (https://libexif.github.io/) * popt Have fun! Lutz BUILDING -------- Assuming libexif and popt are installed, building exif from the source tar ball should be a simple matter of: ./configure make sudo make install If your libexif is installed in a non-standard location, you must point configure at the location of its libexif.pc file using the pkg-config path, like this: ./configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig When building from git, run this before configuring: autoreconf -i INTERNATIONALIZATION -------------------- All translations for exif (except en_CA) are coordinated by the Translation Project at https://translationproject.org/. This means that ALL changes to the .po files (except that exception) MUST be made through the TP web site, or they will be eventually overwritten and lost. If you are interested in translating exif into a new language, simply join TP and start! A translation disclaimer is NOT required for exif; by making a translation, you agree implicitly to provide it under the same license terms as the rest of exif (GPL). When a new version of exif is available for translation, an exif maintainer will contact the Translation Project and all interested TP members will be automatically notified. exif-exif-0_6_22-release/auto-m4/000077500000000000000000000000001366114026400165365ustar00rootroot00000000000000exif-exif-0_6_22-release/auto-m4/.gitignore000066400000000000000000000000051366114026400205210ustar00rootroot00000000000000*.m4 exif-exif-0_6_22-release/configure.ac000066400000000000000000000067501366114026400175460ustar00rootroot00000000000000AC_PREREQ(2.59) AC_INIT([libexif command line interface], [0.6.22], [libexif-devel@lists.sourceforge.net], [exif]) AC_CONFIG_SRCDIR([exif/main.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([auto-m4]) AM_INIT_AUTOMAKE([-Wall gnu 1.9 dist-bzip2 check-news]) # Use the silent-rules feature when possible. m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])]) AM_SILENT_RULES([yes]) GP_CHECK_SHELL_ENVIRONMENT GP_CONFIG_MSG([Build]) GP_CONFIG_MSG([Source code location],[${srcdir}]) AC_PROG_CC AC_C_CONST AC_C_INLINE AM_PROG_AR AM_PROG_LIBTOOL AM_CPPFLAGS="$CPPFLAGS -I\$(top_srcdir) -I\$(top_builddir)" GP_CONFIG_MSG([Compiler],[${CC}]) AM_PROG_CC_C_O AC_CHECK_FUNCS([isatty fileno]) # --------------------------------------------------------------------------- # i18n support # --------------------------------------------------------------------------- GP_GETTEXT_HACK([${PACKAGE}],[Lutz Mueller and others]) ALL_LINGUAS="ast cs da de eo es fi fr fur gl hr id is it ja ko lv ms nl pl pt pt_BR ro ru sk sr sv tr uk vi zh_CN" AM_GNU_GETTEXT_VERSION([0.14.1]) AM_GNU_GETTEXT([external]) AM_PO_SUBDIRS() AM_ICONV() GP_GETTEXT_FLAGS() # --------------------------------------------------------------------------- # locale.h: locale.h provides setlocale. It seems that some systems don't # have it (at least if configured --without-nls). # --------------------------------------------------------------------------- AC_CHECK_HEADERS([locale.h]) AC_CHECK_HEADER([iconv.h], [ AC_DEFINE(HAVE_ICONV,1,[whether iconv is available])]) dnl Versions of GNU gettext >= 0.10.36 automatically convert messages into dnl the correct locale encoding, but with older versions and maybe non-GNU dnl versions the app needs to do that itself. AC_ARG_ENABLE(gettext-iconv, [ --enable-gettext-iconv convert character encodings (only needed when gettext doesn't do it itself)], [ AC_DEFINE(ENABLE_GETTEXT_ICONV,1,[whether to run iconv on gettext output]) ]) AC_CHECK_FUNCS(mblen) # --------------------------------------------------------------------------- # libraries needed # --------------------------------------------------------------------------- dnl Need 0.6.18 for exif_loader_get_buf GP_CHECK_LIBRARY([LIBEXIF],[libexif],[>= 0.6.18]) # --------------------------------------------------------------------------- # popt.h: Simplifies handling of command-line options enormously. # --------------------------------------------------------------------------- GP_CHECK_LIBRARY([POPT],[popt],[>= 1.12]) # --------------------------------------------------------------------------- # Check for misc headers # --------------------------------------------------------------------------- AC_CHECK_HEADERS([unistd.h]) # --------------------------------------------------------------------------- # Warnings: If we have GCC, be paranoid. # --------------------------------------------------------------------------- if test "x$GCC" = "xyes"; then AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith" AM_LDFLAGS="$AM_LDFLAGS -g -Wall" fi AC_SUBST([AM_CPPFLAGS])dnl AC_SUBST([AM_LDFLAGS])dnl # --------------------------------------------------------------------------- # Output files # --------------------------------------------------------------------------- AC_CONFIG_FILES([ po/Makefile.in Makefile m4m/Makefile exif.spec libjpeg/Makefile exif/Makefile test/Makefile test/check-vars.sh ]) AC_OUTPUT GP_CONFIG_OUTPUT()dnl exif-exif-0_6_22-release/exif.1000066400000000000000000000164631366114026400162770ustar00rootroot00000000000000.\" Copyright © 2002-2012 by Thomas Pircher (tehpeh at gmx dot net), .\" Dan Fandrich et. al. .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" License. .\" .TH exif 1 "2012-07-13" "exif 0.6.21.1" "command line front-end to libexif" .SH "NAME" exif \- shows EXIF information in JPEG files .SH "SYNOPSIS" .BI "exif [ " "OPTION" " ] [ " "file..." " ]" .SH DESCRIPTION .B "exif" is a small command-line utility to show and change EXIF information in JPEG files. .PP Most digital cameras produce EXIF files, which are JPEG files with extra tags that contain information about the image. The .B "exif" command-line utility allows you to read EXIF information from and write EXIF information to those files. .B "exif" internally uses the .B "libexif" library. .PP Each input file given on the command line is acted upon in turn, using all the options given. Execution will be aborted immediately if one file is not readable or does not contain EXIF tags. .PP As EXIF tags are read, any unknown ones are discarded and known ones are automatically converted into the correct format, if they aren't already. Corrupted MakerNote tags are also removed, but no format changes are made. .SH "OPTIONS" .TP .BI "\-v, \-\-version" Display the .B exif version number. .TP .BI "\-i, \-\-ids" Show ID numbers instead of tag names. .TP .BI "\-t, \-\-tag=" "TAG" Select only this .IR "TAG" . .I "TAG" is the tag title, the short tag name, or the tag number (hexadecimal numbers are prefixed with 0x), from the IFD specified with \-\-ifd. The tag title is dependent on the current locale, whereas name and number are locale-independent. .TP .BI "\-\-ifd=" "IFD" Select a tag or tags from this .IR "IFD" . Valid IFDs are "0", "1", "EXIF", "GPS", and "Interoperability". Defaults to "0". .TP .BI "\-l, \-\-list\-tags" List all known EXIF tags and IFDs. A JPEG image must be provided, and those tags which appear in the file are shown with an asterisk in the corresponding position in the list. .TP .BI "\-|, \-\-show\-mnote" Show the contents of the MakerNote tag. The contents of this tag are nonstandard (and often undocumented) and may therefore not be recognized, or if they are recognized they may not necessarily be interpreted correctly. .TP .BI "\-\-remove" Remove the tag or (if no tag is specified) the entire IFD. .TP .BI "\-s, \-\-show\-description" Show description of tag. The \-\-tag option must also be given. .TP .BI "\-e, \-\-extract\-thumbnail" Extract the thumbnail, writing the thumbnail image to the file specified with \-\-output. .TP .BI "\-r, \-\-remove\-thumbnail" Remove the thumbnail from the image, writing the new image to the file specified with \-\-output. .TP .BI "-n, \-\-insert\-thumbnail=" "FILE" Insert .I "FILE" as thumbnail. No attempt is made to ensure that the contents of .I "FILE" are in a valid thumbnail format. .TP .BI "\-\-no-fixup" Do not attempt to fix EXIF specification violations when reading tags. When used in conjunction with \-\-create-exif, this option inhibits the creation of the mandatory tags. .B exif will otherwise remove illegal or unknown tags, add some mandatory tags using default values, and change the data type of some tags to match that required by the specification. .TP .BI "\-o, \-\-output=" "FILE" Write output image to .IR "FILE" . If this option is not given and an image file must be written, the name used is the same as the input file with the suffix ".modified.jpeg". .TP .BI "\-\-set\-value=" "VALUE" Set the data for the tag specified with \-\-tag and \-\-ifd to .IR "VALUE" . Compound values consisting of multiple components are separated with spaces. .TP .BI "\-c, \-\-create-exif" Create EXIF data if it does not exist. Mandatory tags are created with default values unless the \-\-no-fixup option is given. This option can be used instead of specifying an input file name in most cases, to operate on the default values of the mandatory set of EXIF tags. In this case, the \-\-output option has no effect and no file is written. .TP .BI "\-m, \-\-machine\-readable" Produce output in a machine-readable (tab-delimited) format. The \-\-xml-output and \-\-machine\-readable options are mutually exclusive. .TP .BI "\-w, \-\-width=" "N" Set the maximum width of the output to N characters (default 80). This does not apply to some output formats (e.g. XML). .TP .BI "\-x, \-\-xml-output" Produce output in an XML format (when possible). The \-\-xml-output and \-\-machine\-readable options are mutually exclusive. Note that the XML schema changes with the locale, and it sometimes produces invalid XML. This option is not recommended. .TP .BI "\-d, \-\-debug" Show debugging messages. Also, when processing a file that contains corrupted data, this option causes .B exif to attempt to continue processing. Normally, corrupted data causes an abort. .SS "Help options" .TP .BI "\-?, \-\-help" Show help message. .TP .BI "\-\-usage" Display brief usage message. .SH "EXAMPLES" Display all recognized EXIF tags in an image and the tag contents, with bad tags fixed: .LP .RS exif image.jpg .RE .LP Display a table listing all known EXIF tags and whether each one exists in the given image: .LP .RS exif \-\-list-tags \-\-no-fixup image.jpg .RE .LP Display details on all XResolution tags found in the given image: .LP .RS exif \-\-tag=XResolution \-\-no-fixup image.jpg .RE .LP Display the raw contents of the "Model" tag in the given image (with a newline character appended): .LP .RS exif \-\-ifd=0 \-\-tag=Model \-\-machine-readable image.jpg .RE .LP Extract the thumbnail into the file thumbnail.jpg: .LP .RS exif \-\-extract-thumbnail \-\-output=thumbnail.jpg image.jpg .RE .LP Display a list of the numeric values of only the EXIF tags in the thumbnail IFD (IFD 1) and the tag values: .LP .RS exif \-\-ids \-\-ifd=1 \-\-no-fixup image.jpg .RE .LP Display the meaning of tag 0x9209 in the "EXIF" IFD according to the EXIF specification: .LP .RS exif \-\-show-description \-\-ifd=EXIF \-\-tag=0x9209 .RE .LP Add an Orientation tag with value "Bottom-left" (4) to an existing image, leaving the existing tags untouched: .LP .RS exif \-\-output=new.jpg \-\-ifd=0 \-\-tag=0x0112 \-\-set-value=4 \-\-no-fixup image.jpg .RE .LP Add a YCbCr Sub-Sampling tag with value 2,1 (a.k.a YCbCr 4:2:2) to an existing image and fix the existing tags, if necessary: .LP .RS exif \-\-output=new.jpg \-\-tag=YCbCrSubSampling \-\-ifd=0 \-\-set-value='2 1' image.jpg .RE .LP Remove the "User Comment" tag from an image: .LP .RS exif \-\-output=new.jpg \-\-remove \-\-tag="User Comment" \-\-ifd=EXIF image.jpg .RE .LP Display a table with all known EXIF tags, highlighting mandatory ones: .LP .RS exif \-cl .RE .LP .SH "AUTHOR" .B exif was written by Lutz Mueller and numerous contributors. This man page is Copyright \(co 2002-2012 Thomas Pircher, Dan Fandrich and others. .SH "SEE ALSO" .UR "https://libexif.github.io/" .BR "https://libexif.github.io/" exif-exif-0_6_22-release/exif.spec.in000066400000000000000000000013771366114026400174740ustar00rootroot00000000000000Name: @PACKAGE@ Summary: A utility to display EXIF headers from JPEG files Version: @VERSION@ Release: 1 Source: https://downloads.sourceforge.net/project/libexif/exif/%{version}/exif-%{version}.tar.bz2 Url: https://libexif.github.io/ Group: Applications/Multimedia License: LGPL BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: libexif-devel Requires: libexif %description 'exif' is a small command-line utility to show EXIF information hidden in JPEG files. It was written to demonstrate the power of libexif. %prep %setup %build %configure make %install rm -rf $RPM_BUILD_ROOT %makeinstall %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc ChangeLog README NEWS %{_bindir}/* %{_mandir}/man*/* %{_datadir}/locale/*/LC_MESSAGES/*.mo exif-exif-0_6_22-release/exif/000077500000000000000000000000001366114026400162035ustar00rootroot00000000000000exif-exif-0_6_22-release/exif/.gitignore000066400000000000000000000000571366114026400201750ustar00rootroot00000000000000.libs .deps Makefile.in Makefile *.o exif *.sh exif-exif-0_6_22-release/exif/Makefile.am000066400000000000000000000005651366114026400202450ustar00rootroot00000000000000# The actual "exif" program bin_PROGRAMS = exif exif_SOURCES = \ actions.h actions.c \ exif-i18n.h exif-i18n.c \ main.c \ utils.h utils.c exif_CPPFLAGS = \ $(AM_CPPFLAGS) $(CPPFLAGS) \ $(LIBEXIF_CFLAGS) \ $(POPT_CFLAGS) exif_LDADD = \ $(AM_LDFLAGS) $(LDFLAGS) \ $(top_builddir)/libjpeg/libjpeg.la \ $(LIBEXIF_LIBS) \ $(POPT_LIBS) \ $(INTLLIBS) exif-exif-0_6_22-release/exif/actions.c000066400000000000000000000456561366114026400200270ustar00rootroot00000000000000/* actions.c * * Copyright (c) 2002-2008 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "config.h" #include "actions.h" #include "exif-i18n.h" #include "libjpeg/jpeg-data.h" #include "utils.h" #include #include #include #include #include #include #define CN(s) ((s) ? (s) : "(NULL)") #define TAG_VALUE_BUF 1024 #define SEP " " static void convert_arg_to_entry (const char *set_value, ExifEntry *e, ExifByteOrder o, ExifLog *log) { unsigned int i, numcomponents; char *value_p, *buf; /* * ASCII strings are handled separately, * since they don't require any conversion. */ if (e->format == EXIF_FORMAT_ASCII || e->tag == EXIF_TAG_USER_COMMENT) { if (e->data) free (e->data); e->components = strlen (set_value) + 1; if (e->tag == EXIF_TAG_USER_COMMENT) e->components += 8 - 1; e->size = sizeof (char) * e->components; e->data = malloc (e->size); if (!e->data) { fprintf (stderr, _("Not enough memory.")); fputc ('\n', stderr); exit (1); } if (e->tag == EXIF_TAG_USER_COMMENT) { /* assume ASCII charset */ /* TODO: get this from the current locale */ memcpy ((char *) e->data, "ASCII\0\0\0", 8); memcpy ((char *) e->data + 8, set_value, strlen (set_value)); } else strcpy ((char *) e->data, set_value); return; } /* * Make sure we can handle this entry */ if ((e->components == 0) && *set_value) { fprintf (stderr, _("Setting a value for this tag " "is unsupported!")); fputc ('\n', stderr); exit (1); } /* Copy the string so we can modify it */ buf = strdup(set_value); if (!buf) exit(1); value_p = strtok(buf, SEP); numcomponents = e->components; for (i = 0; i < numcomponents; ++i) { unsigned char s; if (!value_p) { fprintf (stderr, _("Too few components specified " "(need %d, found %d)\n"), numcomponents, i); exit (1); } if (!isdigit(*value_p) && (*value_p != '+') && (*value_p != '-')) { fprintf (stderr, _("Numeric value expected\n")); exit (1); } s = exif_format_get_size (e->format); switch (e->format) { case EXIF_FORMAT_ASCII: exif_log (log, -1, "exif", _("Internal error. " "Please contact <%s>."), PACKAGE_BUGREPORT); break; case EXIF_FORMAT_SHORT: exif_set_short (e->data + (s * i), o, atoi (value_p)); break; case EXIF_FORMAT_SSHORT: exif_set_sshort (e->data + (s * i), o, atoi (value_p)); break; case EXIF_FORMAT_RATIONAL: /* * Hack to simplify the loop for rational numbers. * Should really be using exif_set_rational instead */ if (i == 0) numcomponents *= 2; s /= 2; /* Fall through to LONG handler */ case EXIF_FORMAT_LONG: exif_set_long (e->data + (s * i), o, atol (value_p)); break; case EXIF_FORMAT_SRATIONAL: /* * Hack to simplify the loop for rational numbers. * Should really be using exif_set_srational instead */ if (i == 0) numcomponents *= 2; s /= 2; /* Fall through to SLONG handler */ case EXIF_FORMAT_SLONG: exif_set_slong (e->data + (s * i), o, atol (value_p)); break; case EXIF_FORMAT_BYTE: case EXIF_FORMAT_SBYTE: case EXIF_FORMAT_UNDEFINED: /* treat as byte array */ e->data[s * i] = atoi (value_p); break; case EXIF_FORMAT_FLOAT: case EXIF_FORMAT_DOUBLE: default: fprintf (stderr, _("Not yet implemented!")); fputc ('\n', stderr); exit (1); } value_p = strtok(NULL, SEP); } free(buf); if (value_p) { fprintf (stderr, _("Warning; Too many components specified!")); fputc ('\n', stderr); } } void action_save (ExifData *ed, ExifLog *log, ExifParams p, const char *fout) { JPEGData *jdata; unsigned char *d = NULL; unsigned int ds; /* Parse the JPEG file. */ jdata = jpeg_data_new (); jpeg_data_log (jdata, log); jpeg_data_load_file (jdata, p.fin); /* Make sure the EXIF data is not too big. */ exif_data_save_data (ed, &d, &ds); if (ds) { free (d); if (ds > 0xffff) exif_log (log, -1, "exif", _("Too much EXIF data " "(%i bytes). Only %i bytes are allowed."), ds, 0xffff); }; jpeg_data_set_exif_data (jdata, ed); /* Save the modified image. */ if (jpeg_data_save_file (jdata, fout) == 0) exif_log (log, -1, "exif", _("Could not write " "'%s' (%s)."), fout, strerror (errno)); jpeg_data_unref (jdata); fprintf (stdout, _("Wrote file '%s'."), fout); fprintf (stdout, "\n"); } static void show_entry (ExifEntry *entry, unsigned int machine_readable) { ExifIfd ifd = exif_entry_get_ifd (entry); if (machine_readable) { char b[TAG_VALUE_BUF]; fprintf (stdout, "%s\n", C(exif_entry_get_value (entry, b, sizeof (b)))); return; } /* * The C() macro can point to a static buffer so these printfs * cannot be combined. */ printf (_("EXIF entry '%s' "), C(exif_tag_get_title_in_ifd (entry->tag, ifd))); printf (_("(0x%x, '%s') "), entry->tag, C(exif_tag_get_name_in_ifd (entry->tag, ifd))); printf (_("exists in IFD '%s':\n"), C(exif_ifd_get_name (ifd))); exif_entry_dump (entry, 0); } /*! If the entry doesn't exist, create it. */ ExifEntry * action_create_value (ExifData *ed, ExifLog *log, ExifTag tag, ExifIfd ifd) { ExifEntry *e; if (!((e = exif_content_get_entry (ed->ifd[ifd], tag)))) { exif_log (log, EXIF_LOG_CODE_DEBUG, "exif", _("Adding entry...")); e = exif_entry_new (); exif_content_add_entry (ed->ifd[ifd], e); exif_entry_initialize (e, tag); /* The entry has been added to the IFD, so we can unref it */ exif_entry_unref(e); } return e; } void action_set_value (ExifData *ed, ExifLog *log, ExifParams p) { /* If the entry doesn't exist, create it. */ ExifEntry *e = action_create_value(ed, log, p.tag, p.ifd); /* Now set the value and save the data. */ convert_arg_to_entry (p.set_value, e, exif_data_get_byte_order (ed), log); } void action_remove_tag (ExifData *ed, ExifLog *log, ExifParams p) { ExifIfd ifd; ExifEntry *e; /* We do have 2 optional parameters: ifd and tag */ if (p.tag == EXIF_INVALID_TAG && (p.ifd < EXIF_IFD_0 || p.ifd >= EXIF_IFD_COUNT)) for (ifd = EXIF_IFD_0; ifd < EXIF_IFD_COUNT; ifd++) while (ed->ifd[ifd] && ed->ifd[ifd]->count) exif_content_remove_entry (ed->ifd[ifd], ed->ifd[ifd]->entries[0]); else if (p.tag == EXIF_INVALID_TAG) while (ed->ifd[p.ifd] && ed->ifd[p.ifd]->count) exif_content_remove_entry (ed->ifd[p.ifd], ed->ifd[p.ifd]->entries[0]); else if (p.ifd < EXIF_IFD_0 || p.ifd >= EXIF_IFD_COUNT) while ((e = exif_data_get_entry (ed, p.tag))) exif_content_remove_entry (e->parent, e); else if (!((e = exif_content_get_entry (ed->ifd[p.ifd], p.tag)))) exif_log (log, -1, "exif", _("IFD '%s' does not contain a " "tag '%s'!"), exif_ifd_get_name (p.ifd), exif_tag_get_name_in_ifd (p.tag, p.ifd)); else exif_content_remove_entry (ed->ifd[p.ifd], e); } void action_remove_thumb (ExifData *ed, ExifLog *log, ExifParams p) { (void) log; /* unused */ (void) p; /* unused */ if (ed->data) { free (ed->data); ed->data = NULL; } ed->size = 0; } void action_insert_thumb (ExifData *ed, ExifLog *log, ExifParams p) { FILE *f; if (!ed) return; /* Get rid of the thumbnail */ action_remove_thumb (ed, log, p); /* Insert new thumbnail */ f = fopen (p.set_thumb, "rb"); if (!f) { exif_log (log, -1, "exif", _("Could not open " "'%s' (%s)!"), p.set_thumb, strerror (errno)); } else { long fsize; if (fseek (f, 0, SEEK_END) < 0) { fclose(f); exif_log (log, -1, "exif", _("Could not determine size of " "'%s' (%s)."), p.set_thumb, strerror (errno)); return; } fsize = ftell (f); if (fsize < 0) { fclose(f); exif_log (log, -1, "exif", _("Could not determine size of " "'%s' (%s)."), p.set_thumb, strerror (errno)); return; } ed->size = fsize; ed->data = malloc (sizeof (char) * ed->size); if (ed->size && !ed->data) { EXIF_LOG_NO_MEMORY (log, "exif", sizeof (char) * ed->size); exit (1); } if (fseek (f, 0, SEEK_SET) < 0) { fclose(f); exif_log (log, -1, "exif", _("Could not determine size of " "'%s' (%s)."), p.set_thumb, strerror (errno)); return; } if (fread (ed->data, sizeof (char), ed->size, f) != ed->size) exif_log (log, -1, "exif", _("Could not read " "'%s' (%s)."), p.set_thumb, strerror (errno)); if (fclose (f) < 0) exif_log (log, -1, "exif", _("Could not read " "'%s' (%s)."), p.set_thumb, strerror (errno)); } } void action_show_tag (ExifData *ed, ExifLog *log, ExifParams p) { ExifEntry *e; unsigned int i; if (!ed) return; /* We have one optional parameter: ifd */ if ((p.ifd >= EXIF_IFD_0) && (p.ifd < EXIF_IFD_COUNT)) { if ((e = exif_content_get_entry (ed->ifd[p.ifd], p.tag))) show_entry (e, p.machine_readable); else exif_log (log, -1, "exif", _("IFD '%s' " "does not contain tag '%s'."), exif_ifd_get_name (p.ifd), exif_tag_get_name (p.tag)); } else { if (!exif_data_get_entry (ed, p.tag)) exif_log (log, -1, "exif", _("'%s' does not contain " "tag '%s'."), p.fin, exif_tag_get_name (p.tag)); else for (i = 0; i < EXIF_IFD_COUNT; i++) if ((e = exif_content_get_entry (ed->ifd[i], p.tag))) show_entry (e, p.machine_readable); } } void action_save_thumb (ExifData *ed, ExifLog *log, ExifParams p, const char *fout) { FILE *f; if (!ed) return; /* No thumbnail? Exit. */ if (!ed->data) { exif_log (log, -1, "exif", _("'%s' does not " "contain a thumbnail!"), p.fin); return; } /* Save the thumbnail */ f = fopen (fout, "wb"); if (!f) exif_log (log, -1, "exif", _("Could not open '%s' for " "writing (%s)!"), fout, strerror (errno)); else { if (fwrite (ed->data, 1, ed->size, f) != ed->size) { exif_log (log, -1, "exif", _("Could not write '%s' (%s)."), fout, strerror (errno)); }; if (fclose (f) == EOF) exif_log (log, -1, "exif", _("Could not write '%s' (%s)."), fout, strerror (errno)); fprintf (stdout, _("Wrote file '%s'."), fout); fprintf (stdout, "\n"); } } void action_tag_table (ExifData *ed, ExifParams p) { unsigned int tag; const char *name; char txt[TAG_VALUE_BUF]; ExifIfd i; int fieldwidth, bytes; size_t width; #define ENTRY_FOUND " * " #define ENTRY_NOT_FOUND " - " snprintf (txt, sizeof (txt) - 1, _("EXIF tags in '%s':"), p.fin); fieldwidth = width = p.width - 36; bytes = exif_mbstrlen(txt, &width); printf ("%.*s%*s", bytes, txt, fieldwidth-(int)width, ""); for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) { int space; fieldwidth = width = 7; bytes = exif_mbstrlen(exif_ifd_get_name (i), &width); space = fieldwidth-width; printf ("%*s%.*s%*s", space/2, "", bytes, exif_ifd_get_name (i), space - space/2, ""); } fputc ('\n', stdout); for (tag = 0; tag < 0xffff; tag++) { /* * Display the name of the first tag of this number found. * Since there is some overlap (e.g. with GPS tags), this * name could sometimes be incorrect for the specific tags * found in this file. */ name = exif_tag_get_title(tag); if (!name) continue; fieldwidth = width = p.width - 43; bytes = exif_mbstrlen(C(name), &width); printf ("0x%04x %.*s%*s", tag, bytes, C(name), fieldwidth-(int)width, ""); for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) if (exif_content_get_entry (ed->ifd[i], tag)) printf (ENTRY_FOUND); else printf (ENTRY_NOT_FOUND); fputc ('\n', stdout); } } static void show_entry_list (ExifEntry *e, void *data) { const ExifParams *p = data; char v[TAG_VALUE_BUF]; ExifIfd ifd = exif_entry_get_ifd (e); const char *str; int fieldwidth, bytes; size_t width; if (p->use_ids) printf("0x%04x", e->tag); else { str = C(exif_tag_get_title_in_ifd (e->tag, ifd)); fieldwidth = width = 20; bytes = exif_mbstrlen(str, &width); printf ("%.*s%*s", bytes, str, fieldwidth-(int)width, ""); } printf ("|"); fieldwidth = width = p->use_ids ? p->width-8 : p->width-22; str = C(exif_entry_get_value (e, v, sizeof(v))); bytes = exif_mbstrlen(str, &width); printf("%.*s", bytes, str); fputc ('\n', stdout); } static void show_ifd (ExifContent *content, void *data) { exif_content_foreach_entry (content, show_entry_list, data); } static void print_hline (unsigned char ids, unsigned int screenwidth) { unsigned int i, width; width = ids ? 6 : 20; for (i = 0; i < width; i++) fputc ('-', stdout); fputc ('+', stdout); for (i = 0; i < screenwidth - 2 - width; i++) fputc ('-', stdout); fputc ('\n', stdout); } void action_mnote_list (ExifData *ed, ExifParams p) { char b[TAG_VALUE_BUF], b1[TAG_VALUE_BUF], b2[TAG_VALUE_BUF]; unsigned int i, c, id; ExifMnoteData *n; const char *s; int fieldwidth, bytes; size_t width; n = exif_data_get_mnote_data (ed); if (!n) { printf (_("Unknown format or nonexistent MakerNote.\n")); return; } c = exif_mnote_data_count (n); if (!p.machine_readable) { switch (c) { case 0: printf (_("MakerNote does not contain any value.\n")); break; default: printf (ngettext("MakerNote contains %i value:\n", "MakerNote contains %i values:\n", c), c); } } for (i = 0; i < c; i++) { if (p.use_ids) { id = exif_mnote_data_get_id (n,i); sprintf(b1,"0x%04x",id); } else { s = C (exif_mnote_data_get_title (n, i)); strncpy (b1, s && *s ? s : _("Unknown Tag"), TAG_VALUE_BUF); b1[sizeof(b1)-1] = 0; } if (p.machine_readable) { printf ("%s\t", b1); } else { fieldwidth = width = p.use_ids ? 6 : 20; bytes = exif_mbstrlen(b1, &width); printf ("%.*s%*s|", bytes, b1, fieldwidth-(int)width, ""); } s = C (exif_mnote_data_get_value (n, i, b, TAG_VALUE_BUF)); strncpy (b2, s ? s : _("Unknown value"), TAG_VALUE_BUF); b2[sizeof(b2)-1] = 0; if (p.use_ids) { fputs (b2, stdout); } else { fieldwidth = width = p.width-22; bytes = exif_mbstrlen(b2, &width); printf ("%.*s", bytes, b2); } fputc ('\n', stdout); } } void action_tag_list (ExifData *ed, ExifParams p) { ExifByteOrder order; const char *s; int fieldwidth, bytes; size_t width; if (!ed) return; order = exif_data_get_byte_order (ed); printf (_("EXIF tags in '%s' ('%s' byte order):"), p.fin, exif_byte_order_get_name (order)); fputc ('\n', stdout); print_hline (p.use_ids, p.width); fieldwidth = width = p.use_ids ? 6 : 20; s = _("Tag"); bytes = exif_mbstrlen(s, &width); printf ("%.*s%*s", bytes, s, fieldwidth-(int)width, ""); fputc ('|', stdout); fieldwidth = width = p.use_ids ? p.width-8 : p.width-22; s = _("Value"); bytes = exif_mbstrlen(s, &width); printf ("%.*s", bytes, s); fputc ('\n', stdout); print_hline (p.use_ids, p.width); if (p.ifd < EXIF_IFD_COUNT) /* Show only a single IFD */ show_ifd(ed->ifd[p.ifd], &p); else /* Show contents of all IFDs */ exif_data_foreach_content (ed, show_ifd, &p); print_hline (p.use_ids, p.width); if (ed->size) { printf (_("EXIF data contains a thumbnail " "(%i bytes)."), ed->size); fputc ('\n', stdout); } } static void show_entry_machine (ExifEntry *e, void *data) { unsigned char *ids = data; char v[TAG_VALUE_BUF]; ExifIfd ifd = exif_entry_get_ifd (e); if (*ids) { fprintf (stdout, "0x%04x", e->tag); } else { fputs (CN (exif_tag_get_title_in_ifd (e->tag, ifd)), stdout); } fputc ('\t', stdout); fputs (CN (exif_entry_get_value (e, v, sizeof (v))), stdout); fputc ('\n', stdout); } static void show_ifd_machine (ExifContent *content, void *data) { exif_content_foreach_entry (content, show_entry_machine, data); } void action_tag_list_machine (ExifData *ed, ExifParams p) { if (!ed) return; if (p.ifd < EXIF_IFD_COUNT) /* Show only a single IFD */ show_ifd_machine(ed->ifd[p.ifd], &p.use_ids); else /* Show contents of all IFDs */ exif_data_foreach_content (ed, show_ifd_machine, &p.use_ids); if (ed->size) fprintf (stdout, _("ThumbnailSize\t%i\n"), ed->size); } /*! * Replace characters which are invalid in an XML tag with safe characters * in place. */ static inline void remove_bad_chars(char *s) { while (*s) { if ((*s == '(') || (*s == ')') || (*s == ' ')) *s = '_'; ++s; } } /*! * Escape any special XML characters in the text and return a new static string * buffer. */ static const char * escape_xml(const char *text) { static char *escaped; static size_t escaped_size; char *out; size_t len; for (out=escaped, len=0; *text; ++len, ++out, ++text) { /* Make sure there's plenty of room for a quoted character */ if ((len + 8) > escaped_size) { char *bigger_escaped; escaped_size += 128; bigger_escaped = realloc(escaped, escaped_size); if (!bigger_escaped) { free(escaped); /* avoid leaking memory */ escaped = NULL; escaped_size = 0; /* Error string is cleverly chosen to fail XML validation */ return ">>> out of memory <<<"; } out = bigger_escaped + len; escaped = bigger_escaped; } switch (*text) { case '&': strcpy(out, "&"); len += strlen(out) - 1; out = escaped + len; break; case '<': strcpy(out, "<"); len += strlen(out) - 1; out = escaped + len; break; case '>': strcpy(out, ">"); len += strlen(out) - 1; out = escaped + len; break; default: *out = *text; break; } } *out = '\x0'; /* NUL terminate the string */ return escaped; } static void show_entry_xml (ExifEntry *e, void *data) { unsigned char *ids = data; char v[TAG_VALUE_BUF], t[TAG_VALUE_BUF]; if (*ids) { fprintf (stdout, "", e->tag); fprintf (stdout, "%s", escape_xml(exif_entry_get_value (e, v, sizeof (v)))); fprintf (stdout, "", e->tag); } else { strncpy (t, exif_tag_get_title_in_ifd(e->tag, exif_entry_get_ifd(e)), sizeof (t)); t[sizeof(t)-1] = 0; /* Remove invalid characters from tag eg. (, ), space */ remove_bad_chars(t); fprintf (stdout, "\t<%s>", t); fprintf (stdout, "%s", escape_xml(exif_entry_get_value (e, v, sizeof (v)))); fprintf (stdout, "\n", t); } } static void show_xml (ExifContent *content, void *data) { exif_content_foreach_entry (content, show_entry_xml, data); } void action_tag_list_xml (ExifData *ed, ExifParams p) { if (!ed) return; fprintf(stdout, "\n"); if (p.ifd < EXIF_IFD_COUNT) /* Show only a single IFD */ show_xml(ed->ifd[p.ifd], &p.use_ids); else /* Show contents of all IFDs */ exif_data_foreach_content (ed, show_xml, &p.use_ids); fprintf(stdout, "\n"); } exif-exif-0_6_22-release/exif/actions.h000066400000000000000000000037041366114026400200200ustar00rootroot00000000000000/* actions.h * * Copyright (c) 2002 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ACTIONS_H__ #define __ACTIONS_H__ #include typedef struct { ExifTag tag; ExifIfd ifd; unsigned int machine_readable; unsigned int use_ids; unsigned int width; const char *fin; char *set_value; char *set_thumb; } ExifParams; void action_insert_thumb (ExifData *, ExifLog *, ExifParams); void action_remove_thumb (ExifData *, ExifLog *, ExifParams); void action_show_tag (ExifData *, ExifLog *, ExifParams); void action_set_value (ExifData *, ExifLog *, ExifParams); void action_remove_tag (ExifData *, ExifLog *, ExifParams); ExifEntry * action_create_value (ExifData *ed, ExifLog *log, ExifTag tag, ExifIfd ifd); void action_save (ExifData *, ExifLog *, ExifParams, const char *); void action_save_thumb (ExifData *, ExifLog *, ExifParams, const char *); void action_tag_table (ExifData *, ExifParams); void action_tag_list (ExifData *, ExifParams); void action_tag_list_machine (ExifData *, ExifParams); void action_tag_list_xml (ExifData *, ExifParams); void action_mnote_list (ExifData *, ExifParams); #endif /* __ACTIONS_H__ */ exif-exif-0_6_22-release/exif/exif-i18n.c000066400000000000000000000021451366114026400200610ustar00rootroot00000000000000#include #include "exif-i18n.h" #ifdef HAVE_ICONV # include # include #endif #include #include #undef MIN #define MIN(a, b) (((a) < (b)) ? (a) : (b)) const char * exif_i18n_convert_utf8_to_locale (const char *in) { #if defined(ENABLE_GETTEXT_ICONV) && defined(HAVE_ICONV) /* If gettext() doesn't convert the message texts into the proper * encoding for the current locale, then it's broken (because there's * no way for the app to know the encoding of the translated text). * In this case, assume the translated text is in UTF-8 (which could * be wrong) and use iconv to convert to the proper encoding. * This is only an issue with really old gettext versions (< 0.10.36) */ static iconv_t tr = 0; size_t t = (in ? strlen (in) : 0); static char buf[2048]; size_t buf_size = sizeof (buf); char *out = buf; if (!in) return ""; memset (buf, 0, sizeof (buf)); if (!tr) tr = iconv_open (nl_langinfo (CODESET), "UTF-8"); iconv (tr, (char **) &in, &t, (char **) &out, &buf_size); return buf; #else if (!in) return ""; return in; #endif } exif-exif-0_6_22-release/exif/exif-i18n.h000066400000000000000000000036711366114026400200730ustar00rootroot00000000000000/* i18n.h * * Copyright (c) 2001 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __I18N_H__ #define __I18N_H__ #ifdef ENABLE_NLS # include # undef _ # define _(String) dgettext (GETTEXT_PACKAGE, String) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else # define textdomain(String) (String) # define gettext(String) (String) # define ngettext(String1,String2,Count) ((Count)==1?(String1):(String2)) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bind_textdomain_codeset(Domain,Codeset) (Codeset) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) # define N_(String) (String) #endif /*! Convert a string from UTF-8 into one appropriate for the current locale * if gettext doesn't doesn't do the conversion itself. * If given a NULL pointer, returns a pointer to an empty string. * \param[in] in the string to convert * \returns pointer to converted string, which may be in a static buffer */ const char *exif_i18n_convert_utf8_to_locale (const char *); #define C(s) (exif_i18n_convert_utf8_to_locale(s)) #endif /* __I18N_H__ */ exif-exif-0_6_22-release/exif/main.c000066400000000000000000000333321366114026400172770ustar00rootroot00000000000000/* main.c * * Copyright (c) 2002 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "config.h" #include #include #include #include #include #ifdef HAVE_UNISTD_H # include #endif #include #include #include #include "actions.h" #include "exif-i18n.h" #include "utils.h" /* Must be loaded after exif-i18n.h */ #include #ifdef HAVE_LOCALE_H # include #endif #ifdef ENABLE_GLIBC_MEMDEBUG #include #endif /*! The minimum width of output that we can support */ #define MIN_WIDTH 52 /*! A sane limit on output width */ #define MAX_WIDTH 9999 /* Old versions of popt.h don't define POPT_TABLEEND */ #ifndef POPT_TABLEEND # define POPT_TABLEEND { NULL, '\0', 0, 0, 0, NULL, NULL } #endif /* ANSI escape codes for output colors */ #define COL_BLUE "\033[34m" #define COL_GREEN "\033[32m" #define COL_RED "\033[31m" #define COL_BOLD "\033[1m" #define COL_UNDERLINE "\033[4m" #define COL_NORMAL "\033[m" /* Ensure that we're actually printing the escape codes to a TTY. * FIXME: We should make sure the terminal can actually understand these * escape sequences, or better yet, use vidattr(3X) to set colours * instead. */ #if defined(HAVE_ISATTY) && defined(HAVE_FILENO) # define file_is_tty(file) (isatty(fileno(file))) #else # define file_is_tty(file) (0==1) #endif #define put_colorstring(file, colorstring) \ do { \ if (file_is_tty(file)) { \ fputs (colorstring, file); \ } \ } while (0) typedef struct { unsigned int debug; /* input */ int ignore_corrupted; /* output */ int corrupted; } LogArg; static void log_func (ExifLog *log, ExifLogCode code, const char *domain, const char *format, va_list args, void *data) { LogArg *arg = data; (void) log; /* unused */ arg->corrupted = 0; /* * When debugging, continue as far as possible. If not, make all errors * fatal. */ switch (code) { case -1: put_colorstring (stderr, COL_RED); vfprintf (stderr, format, args); fprintf (stderr, "\n"); put_colorstring (stderr, COL_NORMAL); exit (1); case EXIF_LOG_CODE_DEBUG: if (arg->debug) { put_colorstring (stdout, COL_GREEN); fprintf (stdout, "%s: ", domain); vfprintf (stdout, format, args); put_colorstring (stdout, COL_NORMAL); printf ("\n"); } break; case EXIF_LOG_CODE_CORRUPT_DATA: arg->corrupted = 1; /* We ignore corrupted data event in some cases */ if (arg->ignore_corrupted) return; /* Fall through to EXIF_LOG_CODE_NO_MEMORY */ case EXIF_LOG_CODE_NO_MEMORY: put_colorstring (stderr, COL_RED COL_BOLD COL_UNDERLINE); fprintf (stderr, "%s\n", exif_log_code_get_title (code)); put_colorstring (stderr, COL_NORMAL COL_RED); fprintf (stderr, "%s\n", exif_log_code_get_message (code)); fprintf (stderr, "%s: ", domain); vfprintf (stderr, format, args); put_colorstring (stderr, COL_NORMAL); fprintf (stderr, "\n"); /* * EXIF_LOG_CODE_NO_MEMORY is always a fatal error, so exit. * EXIF_LOG_CODE_CORRUPT_DATA is only fatal if debug mode * is off. * * Exiting the program due to a log message is really a bad * idea to begin with. This should be removed once the libexif * API is fixed to properly return error codes everywhere. */ if ((code == EXIF_LOG_CODE_NO_MEMORY) || !arg->debug) exit (1); break; default: if (arg->debug) { put_colorstring (stdout, COL_BLUE); printf ("%s: ", domain); vprintf (format, args); put_colorstring (stdout, COL_NORMAL); printf ("\n"); } break; } } /* * Static variables. I had them first in main (), but people * compiling exif on IRIX complained about that not being compatible * with the "SGI MIPSpro C compiler", and elsewhere on Open Watcom C. * This is due to the inability of these compilers to initialize a * struct with the address of a stack-allocated variable. */ static unsigned int list_tags = 0, show_description = 0; static unsigned int xml_output = 0; static unsigned int extract_thumbnail = 0, remove_thumb = 0; static unsigned int remove_tag = 0, create_exif = 0, no_fixup = 0; static unsigned int list_mnote = 0; static unsigned int show_version = 0; static char *output = NULL; static char *ifd_string = NULL, *tag_string = NULL; static ExifParams p = {EXIF_INVALID_TAG, EXIF_IFD_COUNT, 0, 0, 80, NULL, NULL,NULL}; LogArg log_arg = {0, 0, 0}; int main (int argc, const char **argv) { /* POPT_ARG_NONE needs an int, not char! */ poptContext ctx; const char * const *args; const struct poptOption options[] = { POPT_AUTOHELP {"version", 'v', POPT_ARG_NONE, &show_version, 0, N_("Display software version"), NULL}, {"ids", 'i', POPT_ARG_NONE, &p.use_ids, 0, N_("Show IDs instead of tag names"), NULL}, {"tag", 't', POPT_ARG_STRING, &tag_string, 0, N_("Select tag"), N_("tag")}, {"ifd", '\0', POPT_ARG_STRING, &ifd_string, 0, N_("Select IFD"), N_("IFD")}, {"list-tags", 'l', POPT_ARG_NONE, &list_tags, 0, N_("List all EXIF tags"), NULL}, {"show-mnote", '|', POPT_ARG_NONE, &list_mnote, 0, N_("Show contents of tag MakerNote"), NULL}, {"remove", '\0', POPT_ARG_NONE, &remove_tag, 0, N_("Remove tag or ifd"), NULL}, {"show-description", 's', POPT_ARG_NONE, &show_description, 0, N_("Show description of tag"), NULL}, {"extract-thumbnail", 'e', POPT_ARG_NONE, &extract_thumbnail, 0, N_("Extract thumbnail"), NULL}, {"remove-thumbnail", 'r', POPT_ARG_NONE, &remove_thumb, 0, N_("Remove thumbnail"), NULL}, {"insert-thumbnail", 'n', POPT_ARG_STRING, &p.set_thumb, 0, N_("Insert FILE as thumbnail"), N_("FILE")}, {"no-fixup", '\0', POPT_ARG_NONE, &no_fixup, 0, N_("Do not fix existing tags in files"), NULL}, {"output", 'o', POPT_ARG_STRING, &output, 0, N_("Write data to FILE"), N_("FILE")}, {"set-value", '\0', POPT_ARG_STRING, &p.set_value, 0, N_("Value of tag"), N_("STRING")}, {"create-exif", 'c', POPT_ARG_NONE, &create_exif, 0, N_("Create EXIF data if not existing"), NULL}, {"machine-readable", 'm', POPT_ARG_NONE, &p.machine_readable, 0, N_("Output in a machine-readable (tab delimited) format"), NULL}, {"width", 'w', POPT_ARG_INT, &p.width, 0, N_("Width of output"), N_("WIDTH")}, {"xml-output", 'x', POPT_ARG_NONE, &xml_output, 0, N_("Output in a XML format"), NULL}, {"debug", 'd', POPT_ARG_NONE, &log_arg.debug, 0, N_("Show debugging messages"), NULL}, POPT_TABLEEND}; #if 0 /* This is a hack to allow translation of popt 1.10 messages with gettext. * Supposedly, this won't be necessary starting with popt 1.12 */ N_("Help options:"); N_("Show this help message"); N_("Display brief usage message"); #endif ExifData *ed; ExifLog *log = NULL; char fout[1024] = {0, }; int continue_without_file = 0; struct sigaction sa = {}; #ifdef ENABLE_GLIBC_MEMDEBUG mcheck (NULL); mtrace (); #endif #ifdef ENABLE_NLS #ifdef HAVE_LOCALE_H setlocale (LC_ALL, ""); #endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Return EPIPE errno instead of a SIGPIPE signal on a bad pipe read/write */ sa.sa_handler = SIG_IGN; sa.sa_flags = 0; sigemptyset(&sa.sa_mask); sigaction(SIGPIPE, &sa, NULL); ctx = poptGetContext (PACKAGE, argc, argv, options, 0); poptSetOtherOptionHelp (ctx, _("[OPTION...] file")); while (poptGetNextOpt (ctx) != -1) ; p.width = MIN(MAX_WIDTH, MAX(MIN_WIDTH, p.width)); log = exif_log_new (); exif_log_set_func (log, log_func, &log_arg); /* Identify the parameters */ if (ifd_string) { p.ifd = exif_ifd_from_string (ifd_string); if ((p.ifd < EXIF_IFD_0) || (p.ifd >= EXIF_IFD_COUNT) || !exif_ifd_get_name (p.ifd)) { exif_log (log, -1, "exif", _("Invalid IFD '%s'. Valid IFDs are " "'0', '1', 'EXIF', 'GPS', and " "'Interoperability'."), ifd_string); return 1; } free(ifd_string); ifd_string = NULL; } if (tag_string) { p.tag = exif_tag_from_string (tag_string); if (p.tag == EXIF_INVALID_TAG) { exif_log (log, -1, "exif", _("Invalid tag '%s'!"), tag_string); return 1; } free(tag_string); tag_string = NULL; } /* Check for all necessary parameters */ if ((p.tag == EXIF_INVALID_TAG) && (p.set_value || show_description)) { exif_log (log, -1, "exif", _("You need to specify a tag!")); return 1; } if (((p.ifd < EXIF_IFD_0) || (p.ifd >= EXIF_IFD_COUNT)) && (p.set_value || show_description)) { exif_log (log, -1, "exif", _("You need to specify an IFD!")); return 1; } /* No command: Show help */ if (argc <= 1) { poptPrintHelp (ctx, stdout, 0); exif_log_free (log); poptFreeContext(ctx); return (1); } /* Commands not related to file. You can only specify one. */ if (show_version) { printf ("%s\n", VERSION); exif_log_free (log); poptFreeContext (ctx); return 0; } if (show_description) { int rc = 0; const char *name = exif_tag_get_name_in_ifd (p.tag, p.ifd); if (!name) { exif_log (log, -1, "exif", _("Unknown Tag")); rc = 1; } else if (p.machine_readable) { /* * The C() macro can point to a static buffer so these printfs * must be done separately. */ printf ("0x%04x\t%s\t", p.tag, C(exif_tag_get_name_in_ifd (p.tag, p.ifd))); printf ("%s\t", C(exif_tag_get_title_in_ifd (p.tag, p.ifd))); printf ("%s\n", C(exif_tag_get_description_in_ifd (p.tag, p.ifd))); } else { printf (_("Tag '%s' "), C(exif_tag_get_title_in_ifd (p.tag, p.ifd))); printf (_("(0x%04x, '%s'): "), p.tag, C(exif_tag_get_name_in_ifd (p.tag, p.ifd))); printf ("%s\n", C(exif_tag_get_description_in_ifd (p.tag, p.ifd))); } exif_log_free (log); poptFreeContext (ctx); return rc; } /* Commands related to files */ if (!((args = poptGetArgs (ctx)))) { if (!create_exif) { exif_log (log, -1, "exif", _("Specify input file or --create-exif")); poptPrintHelp (ctx, stdout, 0); exif_log_free (log); poptFreeContext (ctx); return 1; } else { /* Give a name to the synthesized EXIF tag set */ static const char * const created_exif_name[] = {"(EXIF)", NULL}; args = created_exif_name; continue_without_file = 1; } } while (*args) { ExifLoader *l; ed = NULL; p.fin = *args; if (!continue_without_file) { /* Identify the parameters */ if (output) strncpy (fout, output, sizeof (fout) - 1); else { strncpy (fout, *args, sizeof (fout) - 1); strncat (fout, ".modified.jpeg", sizeof (fout) - strlen(fout) - 1); /* Should really abort if this file name is too long */ } /* * Try to read EXIF data from the file. * If there is no EXIF data, create it if the user * told us to do so. */ l = exif_loader_new (); exif_loader_log (l, log); if (create_exif) log_arg.ignore_corrupted = 1; exif_loader_write_file (l, *args); log_arg.ignore_corrupted = 0; if (!log_arg.corrupted) create_exif = 0; if (no_fixup) /* Override the default conversion options */ ed = exif_get_data_opts(l, log, 0, EXIF_DATA_TYPE_UNKNOWN); else ed = exif_loader_get_data(l); exif_loader_unref (l); } if (!ed) { if (create_exif) { /* Create a new EXIF data set */ ed = exif_data_new (); exif_data_log (ed, log); exif_data_set_data_type(ed, EXIF_DATA_TYPE_COMPRESSED); if (!no_fixup) { /* Add all the mandatory fields */ exif_data_fix(ed); /* Create a new date tag */ action_create_value (ed, log, EXIF_TAG_DATE_TIME, EXIF_IFD_0); } } else { exif_log (log, -1, "exif", _("'%s' is not " "readable or does not contain EXIF data!"), *args); return 1; } } /* These options can be used in conjunction with others */ if (remove_thumb) { action_remove_thumb (ed, log, p); if (!no_fixup) /* Remove all thumbnail tags */ exif_data_fix(ed); } if (p.set_thumb) { action_insert_thumb (ed, log, p); if (!no_fixup) /* Add the mandatory thumbnail tags */ exif_data_fix(ed); } /* These options are mutually exclusive */ if (list_tags) action_tag_table (ed, p); else if ((p.tag != EXIF_INVALID_TAG) && !p.set_value && !remove_tag) action_show_tag (ed, log, p); else if (extract_thumbnail) action_save_thumb (ed, log, p, fout); else if (p.set_value) action_set_value (ed, log, p); else if (remove_tag) action_remove_tag (ed, log, p); else if (list_mnote) { if (xml_output) { exif_log (log, -1, "exif", _("XML format is " "not available for Maker Notes")); return 1; } action_mnote_list (ed, p); } else if (p.machine_readable) action_tag_list_machine (ed, p); else if (xml_output) action_tag_list_xml (ed, p); else if (create_exif && !continue_without_file) /* Nothing here. Data will be saved later. */ ; else action_tag_list (ed, p); if (!continue_without_file && (create_exif || p.set_thumb || remove_tag || remove_thumb || p.set_value)) action_save (ed, log, p, fout); exif_data_unref (ed); args++; } /* Free all remaining libpopt string arguments */ free(p.set_thumb); free(output); free(p.set_value); exif_log_free (log); poptFreeContext (ctx); return 0; } exif-exif-0_6_22-release/exif/utils.c000066400000000000000000000077111366114026400175150ustar00rootroot00000000000000/* utils.c * * Copyright (c) 2002 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "config.h" #include "utils.h" #include #include #include ExifTag exif_tag_from_string (const char *string) { ExifTag tag; unsigned int i, number; int t; const char *name; if (!string) return EXIF_INVALID_TAG; /* Is the string a decimal number? */ if (strspn (string, "0123456789") == strlen (string)) return (atoi (string)); /* Is the string a hexadecimal number? */ if (sscanf (string, "0x%x%n", &number, &i) == 1 && !string[i]) return ((ExifTag)number); /* Is the string a tag's name? */ if ((tag = exif_tag_from_name (string)) != 0) return (tag); /* Is the string a tag's title? */ for (t = 0xffff; t >= 0; t--) { tag = (ExifTag) t; name = exif_tag_get_title (tag); if (name && !strcmp (string, name)) return (tag); } return EXIF_INVALID_TAG; } ExifIfd exif_ifd_from_string (const char *string) { unsigned int i; if (!string) return (-1); for (i = 0; i < EXIF_IFD_COUNT; i++) { if (!strcmp (string, exif_ifd_get_name (i))) return (i); } return (-1); } /*! An alternative to exif_loader_get_data() that allows the options and * data type to be set. * * \param[in] loader the loader * \param[in] options one or more bitwise ORred options from ExifDataOption * \param[in] dt image data type * \return allocated ExifData */ ExifData * exif_get_data_opts(ExifLoader *loader, ExifLog *log, int options, ExifDataType dt) { ExifData *ed; const unsigned char *buf; unsigned int buf_size; if (!loader || !log) return NULL; exif_loader_get_buf (loader, &buf, &buf_size); if (buf_size == 0) return NULL; ed = exif_data_new(); exif_data_log (ed, log); /* Clear the slate before setting the requested options */ exif_data_unset_option (ed, ~0); exif_data_set_option (ed, options); exif_data_set_data_type (ed, dt); exif_data_load_data (ed, buf, buf_size); return ed; } /*! Returns the number of bytes of data needed to display n characters of * the given multibyte string in the current locale character encoding. * Any multibyte conversion error is treated as the end of the string. * \param[in] mbs multibyte string * \param[in,out] len number of characters for which a count of bytes is * requested; on exit, returns the number of characters that are represented * by the returned number of bytes (this may be less but never more than the * value on entry) * \return number of bytes starting at mbs make up len characters * \note This can probably be rewritten using mbsrtowcs() */ #ifdef HAVE_MBLEN size_t exif_mbstrlen(const char *mbs, size_t *len) { int clen; size_t blen = 0, count = 0, maxlen = strlen(mbs); /* Iterate through the multibyte string one character at a time */ while (*mbs && *len) { clen = mblen(mbs, maxlen); if (clen < 0) break; mbs += clen; blen += clen; /* total bytes needed for string so far */ --*len; ++count; /* number of characters in string so far */ maxlen -= clen; } *len = count; return blen; } #else /* Simple version that works only with single-byte-per-character encodings */ size_t exif_mbstrlen(const char *mbs, size_t *len) { size_t clen = strlen(mbs); if (clen < *len) *len = clen; return *len; } #endif exif-exif-0_6_22-release/exif/utils.h000066400000000000000000000024231366114026400175150ustar00rootroot00000000000000/* utils.h * * Copyright (c) 2002 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __UTILS_H__ #define __UTILS_H__ #include #include #include #include enum {EXIF_INVALID_TAG = 0xffff}; ExifTag exif_tag_from_string (const char *string); ExifIfd exif_ifd_from_string (const char *string); ExifData *exif_get_data_opts(ExifLoader *loader, ExifLog *log, int options, ExifDataType dt); size_t exif_mbstrlen(const char *mbs, size_t *len); #endif /* __UTILS_H__ */ exif-exif-0_6_22-release/libjpeg/000077500000000000000000000000001366114026400166645ustar00rootroot00000000000000exif-exif-0_6_22-release/libjpeg/.gitignore000066400000000000000000000000651366114026400206550ustar00rootroot00000000000000Makefile Makefile.in .libs .deps libjpeg.la *.o *.lo exif-exif-0_6_22-release/libjpeg/Makefile.am000066400000000000000000000003371366114026400207230ustar00rootroot00000000000000noinst_LTLIBRARIES = libjpeg.la libjpeg_la_CPPFLAGS = \ $(AM_CPPFLAGS) $(CPPFLAGS) \ $(LIBEXIF_CFLAGS) libjpeg_la_SOURCES = \ jpeg-data.c jpeg-data.h \ jpeg-marker.c jpeg-marker.h libjpeg_la_LIBADD = $(LIBEXIF_LIBS) exif-exif-0_6_22-release/libjpeg/jpeg-data.c000066400000000000000000000265471366114026400207020ustar00rootroot00000000000000/* jpeg-data.c * * Copyright (c) 2001 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "config.h" #include "jpeg-data.h" #include #include #include #include /* This refers to the exif-i18n.h file from the "exif" package and is * NOT to be confused with the libexif/i18n.h file. */ #include "exif/exif-i18n.h" /* realloc that cleans up on memory failure and returns to caller */ #define CLEANUP_REALLOC(p,s) { \ unsigned char *cleanup_ptr = realloc((p),(s)); \ if (!cleanup_ptr) { free(p); (p) = NULL; return; } \ (p) = cleanup_ptr; \ } struct _JPEGDataPrivate { unsigned int ref_count; ExifLog *log; }; JPEGData * jpeg_data_new (void) { JPEGData *data; data = malloc (sizeof (JPEGData)); if (!data) return (NULL); memset (data, 0, sizeof (JPEGData)); data->priv = malloc (sizeof (JPEGDataPrivate)); if (!data->priv) { free (data); return (NULL); } memset (data->priv, 0, sizeof (JPEGDataPrivate)); data->priv->ref_count = 1; return (data); } void jpeg_data_append_section (JPEGData *data) { JPEGSection *s; if (!data) return; if (!data->count) s = malloc (sizeof (JPEGSection)); else s = realloc (data->sections, sizeof (JPEGSection) * (data->count + 1)); if (!s) { EXIF_LOG_NO_MEMORY (data->priv->log, "jpeg-data", sizeof (JPEGSection) * (data->count + 1)); return; } memset(s + data->count, 0, sizeof (JPEGSection)); data->sections = s; data->count++; } /*! jpeg_data_save_file returns 1 on success, 0 on failure */ int jpeg_data_save_file (JPEGData *data, const char *path) { FILE *f; unsigned char *d = NULL; unsigned int size = 0, written; jpeg_data_save_data (data, &d, &size); if (!d) return 0; f = fopen (path, "wb"); if (!f) { free (d); return 0; } written = fwrite (d, 1, size, f); free (d); if (fclose (f) == EOF) return 0; if (written == size) { return 1; } return 0; } void jpeg_data_save_data (JPEGData *data, unsigned char **d, unsigned int *ds) { unsigned int i, eds = 0; JPEGSection s; unsigned char *ed = NULL; if (!data) return; if (!d) return; if (!ds) return; for (*ds = i = 0; i < data->count; i++) { s = data->sections[i]; /* Write the marker */ CLEANUP_REALLOC (*d, sizeof (char) * (*ds + 2)); (*d)[*ds + 0] = 0xff; (*d)[*ds + 1] = s.marker; *ds += 2; switch (s.marker) { case JPEG_MARKER_SOI: case JPEG_MARKER_EOI: break; case JPEG_MARKER_APP1: ed = NULL; exif_data_save_data (s.content.app1, &ed, &eds); if (!ed) break; CLEANUP_REALLOC (*d, sizeof (char) * (*ds + 2)); (*d)[*ds + 0] = (eds + 2) >> 8; (*d)[*ds + 1] = (eds + 2) >> 0; *ds += 2; CLEANUP_REALLOC (*d, sizeof (char) * (*ds + eds)); memcpy (*d + *ds, ed, eds); *ds += eds; free (ed); break; default: CLEANUP_REALLOC (*d, sizeof (char) * (*ds + s.content.generic.size + 2)); (*d)[*ds + 0] = (s.content.generic.size + 2) >> 8; (*d)[*ds + 1] = (s.content.generic.size + 2) >> 0; *ds += 2; memcpy (*d + *ds, s.content.generic.data, s.content.generic.size); *ds += s.content.generic.size; /* In case of SOS, we need to write the data. */ if (s.marker == JPEG_MARKER_SOS) { CLEANUP_REALLOC (*d, *ds + data->size); memcpy (*d + *ds, data->data, data->size); *ds += data->size; } break; } } } JPEGData * jpeg_data_new_from_data (const unsigned char *d, unsigned int size) { JPEGData *data; data = jpeg_data_new (); jpeg_data_load_data (data, d, size); return (data); } void jpeg_data_load_data (JPEGData *data, const unsigned char *d, unsigned int size) { unsigned int i, o, len; JPEGSection *s; JPEGMarker marker; if (!data) return; if (!d) return; if (!size) return; for (o = 0; o < size;) { /* * JPEG sections start with 0xff. The first byte that is * not 0xff is a marker (hopefully). */ for (i = 0; i < MIN(7, size - o); i++) if (d[o + i] != 0xff) break; if (o+i == 0) /* ignore if its the first byte, otherwise 0xff is at -1 */ continue; if ((i >= size - o) || !JPEG_IS_MARKER (d[o + i])) { exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Data does not follow JPEG specification.")); return; } marker = d[o + i]; /* Append this section */ jpeg_data_append_section (data); if (!data->count) return; s = &data->sections[data->count - 1]; s->marker = marker; o += i + 1; switch (s->marker) { case JPEG_MARKER_SOI: case JPEG_MARKER_EOI: break; default: /* Read the length of the section */ if (2 > size - o) { o = size; break; } len = ((d[o] << 8) | d[o + 1]) - 2; if (len > size) { o = size; break; } o += 2; if (len > size - o) { o = size; break; } switch (s->marker) { case JPEG_MARKER_APP1: s->content.app1 = exif_data_new_from_data ( d + o - 4, len + 4); break; default: s->content.generic.data = malloc (sizeof (char) * len); if (!s->content.generic.data) { EXIF_LOG_NO_MEMORY (data->priv->log, "jpeg-data", sizeof (char) * len); return; } s->content.generic.size = len; memcpy (s->content.generic.data, &d[o], len); /* In case of SOS, image data will follow. */ if (s->marker == JPEG_MARKER_SOS) { data->size = size - o - len; if (data->size >= 2) { /* -2 means 'take all but the last 2 bytes which are hoped to be JPEG_MARKER_EOI */ data->size -= 2; if (d[o + len + data->size] != 0xFF) { /* A truncated file (i.e. w/o JPEG_MARKER_EOI at the end). Instead of trying to use the last two bytes as marker, touching memory beyond allocated memory and posssibly saving back screwed file, we rather take the rest of the file. */ data->size += 2; } } data->data = malloc ( sizeof (char) * data->size); if (!data->data) { EXIF_LOG_NO_MEMORY (data->priv->log, "jpeg-data", sizeof (char) * data->size); data->size = 0; return; } memcpy (data->data, d + o + len, data->size); o += data->size; } break; } o += len; break; } } } JPEGData * jpeg_data_new_from_file (const char *path) { JPEGData *data; data = jpeg_data_new (); jpeg_data_load_file (data, path); return (data); } void jpeg_data_load_file (JPEGData *data, const char *path) { FILE *f; unsigned char *d; long size; if (!data) return; if (!path) return; f = fopen (path, "rb"); if (!f) { exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not open '%s' (%s)!"), path, strerror (errno)); return; } /* For now, we read the data into memory. Patches welcome... */ if (fseek (f, 0, SEEK_END) < 0) { fclose (f); exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not determine size of '%s' (%s)."), path, strerror (errno)); return; } size = ftell (f); if (size < 0) { fclose (f); exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not determine size of '%s' (%s)."), path, strerror (errno)); return; } if (fseek (f, 0, SEEK_SET) < 0) { fclose (f); exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not determine size of '%s' (%s)."), path, strerror (errno)); return; } d = malloc (size); if (!d) { fclose (f); EXIF_LOG_NO_MEMORY (data->priv->log, "jpeg-data", size); return; } if (fread (d, 1, size, f) != (size_t) size) { free (d); fclose (f); exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not read '%s' (%s)."), path, strerror (errno)); return; } if (fclose (f) == EOF) exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "jpeg-data", _("Could not read '%s' (%s)."), path, strerror (errno)); jpeg_data_load_data (data, d, size); free (d); } void jpeg_data_ref (JPEGData *data) { if (!data) return; data->priv->ref_count++; } void jpeg_data_unref (JPEGData *data) { if (!data) return; if (data->priv) { data->priv->ref_count--; if (!data->priv->ref_count) jpeg_data_free (data); } } void jpeg_data_free (JPEGData *data) { unsigned int i; JPEGSection s; if (!data) return; if (data->count) { for (i = 0; i < data->count; i++) { s = data->sections[i]; switch (s.marker) { case JPEG_MARKER_SOI: case JPEG_MARKER_EOI: break; case JPEG_MARKER_APP1: exif_data_unref (s.content.app1); break; default: free (s.content.generic.data); break; } } free (data->sections); } if (data->data) free (data->data); if (data->priv) { if (data->priv->log) { exif_log_unref (data->priv->log); data->priv->log = NULL; } free (data->priv); } free (data); } void jpeg_data_dump (JPEGData *data) { unsigned int i; JPEGContent content; JPEGMarker marker; if (!data) return; printf ("Dumping JPEG data (%i bytes of data)...\n", data->size); for (i = 0; i < data->count; i++) { marker = data->sections[i].marker; content = data->sections[i].content; printf ("Section %i (marker 0x%x - %s):\n", i, marker, jpeg_marker_get_name (marker)); printf (" Description: %s\n", jpeg_marker_get_description (marker)); switch (marker) { case JPEG_MARKER_SOI: case JPEG_MARKER_EOI: break; case JPEG_MARKER_APP1: exif_data_dump (content.app1); break; default: printf (" Size: %i\n", content.generic.size); printf (" Unknown content.\n"); break; } } } static JPEGSection * jpeg_data_get_section (JPEGData *data, JPEGMarker marker) { unsigned int i; if (!data) return (NULL); for (i = 0; i < data->count; i++) if (data->sections[i].marker == marker) return (&data->sections[i]); return (NULL); } ExifData * jpeg_data_get_exif_data (JPEGData *data) { JPEGSection *section; if (!data) return NULL; section = jpeg_data_get_section (data, JPEG_MARKER_APP1); if (section) { exif_data_ref (section->content.app1); return (section->content.app1); } return (NULL); } void jpeg_data_set_exif_data (JPEGData *data, ExifData *exif_data) { JPEGSection *section; if (!data) return; section = jpeg_data_get_section (data, JPEG_MARKER_APP1); if (!section) { jpeg_data_append_section (data); if (data->count < 2) return; memmove (&data->sections[2], &data->sections[1], sizeof (JPEGSection) * (data->count - 2)); section = &data->sections[1]; } else { exif_data_unref (section->content.app1); } section->marker = JPEG_MARKER_APP1; section->content.app1 = exif_data; exif_data_ref (exif_data); } void jpeg_data_log (JPEGData *data, ExifLog *log) { if (!data || !data->priv) return; if (data->priv->log) exif_log_unref (data->priv->log); data->priv->log = log; exif_log_ref (log); } exif-exif-0_6_22-release/libjpeg/jpeg-data.h000066400000000000000000000050201366114026400206660ustar00rootroot00000000000000/* jpeg-data.h * * Copyright (c) 2001 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __JPEG_DATA_H__ #define __JPEG_DATA_H__ #include "libjpeg/jpeg-marker.h" #include #include typedef ExifData * JPEGContentAPP1; typedef struct _JPEGContentGeneric JPEGContentGeneric; struct _JPEGContentGeneric { unsigned char *data; unsigned int size; }; typedef union _JPEGContent JPEGContent; union _JPEGContent { JPEGContentGeneric generic; JPEGContentAPP1 app1; }; typedef struct _JPEGSection JPEGSection; struct _JPEGSection { JPEGMarker marker; JPEGContent content; }; typedef struct _JPEGData JPEGData; typedef struct _JPEGDataPrivate JPEGDataPrivate; struct _JPEGData { JPEGSection *sections; unsigned int count; unsigned char *data; unsigned int size; JPEGDataPrivate *priv; }; JPEGData *jpeg_data_new (void); JPEGData *jpeg_data_new_from_file (const char *path); JPEGData *jpeg_data_new_from_data (const unsigned char *data, unsigned int size); void jpeg_data_ref (JPEGData *data); void jpeg_data_unref (JPEGData *data); void jpeg_data_free (JPEGData *data); void jpeg_data_load_data (JPEGData *data, const unsigned char *d, unsigned int size); void jpeg_data_save_data (JPEGData *data, unsigned char **d, unsigned int *size); void jpeg_data_load_file (JPEGData *data, const char *path); int jpeg_data_save_file (JPEGData *data, const char *path); void jpeg_data_set_exif_data (JPEGData *data, ExifData *exif_data); ExifData *jpeg_data_get_exif_data (JPEGData *data); void jpeg_data_dump (JPEGData *data); void jpeg_data_append_section (JPEGData *data); void jpeg_data_log (JPEGData *data, ExifLog *log); #endif /* __JPEG_DATA_H__ */ exif-exif-0_6_22-release/libjpeg/jpeg-marker.c000066400000000000000000000114311366114026400212340ustar00rootroot00000000000000/* jpeg-marker.c * * Copyright (c) 2001-2008 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "config.h" #include "jpeg-marker.h" #include static const struct { JPEGMarker marker; const char *name; const char *description; } JPEGMarkerTable[] = { {JPEG_MARKER_SOF0, "SOF0", "Encoding (baseline)"}, {JPEG_MARKER_SOF1, "SOF1", "Encoding (extended sequential)"}, {JPEG_MARKER_SOF2, "SOF2", "Encoding (progressive)"}, {JPEG_MARKER_SOF3, "SOF3", "Encoding (lossless)"}, {JPEG_MARKER_SOF5, "SOF5", "Encoding (differential sequential)"}, {JPEG_MARKER_SOF6, "SOF6", "Encoding (differential progressive)"}, {JPEG_MARKER_SOF7, "SOF7", "Encoding (differential lossless)"}, {JPEG_MARKER_SOF9, "SOF9", "Encoding (extended sequential, arithmetic)"}, {JPEG_MARKER_SOF10, "SOF10", "Encoding (progressive, arithmetic)"}, {JPEG_MARKER_SOF11, "SOF11", "Encoding (lossless, arithmetic)"}, {JPEG_MARKER_SOF13, "SOF13", "Encoding (differential sequential, arithmetic)"}, {JPEG_MARKER_SOF14, "SOF14", "Encoding (differential progressive, arithmetic)"}, {JPEG_MARKER_SOF15, "SOF15", "Encoding (differential lossless, arithmetic)"}, {JPEG_MARKER_SOI, "SOI", "Start of image"}, {JPEG_MARKER_EOI, "EOI", "End of image"}, {JPEG_MARKER_SOS, "SOS", "Start of scan"}, {JPEG_MARKER_COM, "COM", "Comment"}, {JPEG_MARKER_DHT, "DHT", "Define Huffman table"}, {JPEG_MARKER_JPG, "JPG", "Extension"}, {JPEG_MARKER_DAC, "DAC", "Define arithmetic coding conditioning"}, {JPEG_MARKER_RST1, "RST1", "Restart 1"}, {JPEG_MARKER_RST2, "RST2", "Restart 2"}, {JPEG_MARKER_RST3, "RST3", "Restart 3"}, {JPEG_MARKER_RST4, "RST4", "Restart 4"}, {JPEG_MARKER_RST5, "RST5", "Restart 5"}, {JPEG_MARKER_RST6, "RST6", "Restart 6"}, {JPEG_MARKER_RST7, "RST7", "Restart 7"}, {JPEG_MARKER_DQT, "DQT", "Define quantization table"}, {JPEG_MARKER_DNL, "DNL", "Define number of lines"}, {JPEG_MARKER_DRI, "DRI", "Define restart interval"}, {JPEG_MARKER_DHP, "DHP", "Define hierarchical progression"}, {JPEG_MARKER_EXP, "EXP", "Expand reference component"}, {JPEG_MARKER_APP0, "APP0", "Application segment 0"}, {JPEG_MARKER_APP1, "APP1", "Application segment 1"}, {JPEG_MARKER_APP2, "APP2", "Application segment 2"}, {JPEG_MARKER_APP3, "APP3", "Application segment 3"}, {JPEG_MARKER_APP4, "APP4", "Application segment 4"}, {JPEG_MARKER_APP5, "APP5", "Application segment 5"}, {JPEG_MARKER_APP6, "APP6", "Application segment 6"}, {JPEG_MARKER_APP7, "APP7", "Application segment 7"}, {JPEG_MARKER_APP8, "APP8", "Application segment 8"}, {JPEG_MARKER_APP9, "APP9", "Application segment 9"}, {JPEG_MARKER_APP10, "APP10", "Application segment 10"}, {JPEG_MARKER_APP11, "APP11", "Application segment 11"}, {JPEG_MARKER_APP12, "APP12", "Application segment 12"}, {JPEG_MARKER_APP13, "APP13", "Application segment 13"}, {JPEG_MARKER_APP14, "APP14", "Application segment 14"}, {JPEG_MARKER_APP15, "APP15", "Application segment 15"}, {JPEG_MARKER_JPG0, "JPG0", "Extension 0"}, {JPEG_MARKER_JPG1, "JPG1", "Extension 1"}, {JPEG_MARKER_JPG2, "JPG2", "Extension 2"}, {JPEG_MARKER_JPG3, "JPG3", "Extension 3"}, {JPEG_MARKER_JPG4, "JPG4", "Extension 4"}, {JPEG_MARKER_JPG5, "JPG5", "Extension 5"}, {JPEG_MARKER_JPG6, "JPG6", "Extension 6"}, {JPEG_MARKER_JPG7, "JPG7", "Extension 7"}, {JPEG_MARKER_JPG8, "JPG8", "Extension 8"}, {JPEG_MARKER_JPG9, "JPG9", "Extension 9"}, {JPEG_MARKER_JPG10, "JPG10", "Extension 10"}, {JPEG_MARKER_JPG11, "JPG11", "Extension 11"}, {JPEG_MARKER_JPG12, "JPG12", "Extension 12"}, {JPEG_MARKER_JPG13, "JPG13", "Extension 13"}, {0, NULL, NULL} }; const char * jpeg_marker_get_name (JPEGMarker marker) { unsigned int i; for (i = 0; JPEGMarkerTable[i].name; i++) if (JPEGMarkerTable[i].marker == marker) break; return (JPEGMarkerTable[i].name); } const char * jpeg_marker_get_description (JPEGMarker marker) { unsigned int i; for (i = 0; JPEGMarkerTable[i].description; i++) if (JPEGMarkerTable[i].marker == marker) break; return (JPEGMarkerTable[i].description); } exif-exif-0_6_22-release/libjpeg/jpeg-marker.h000066400000000000000000000064221366114026400212450ustar00rootroot00000000000000/* jpeg-marker.h * * Copyright (c) 2001 Lutz Mueller * * 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, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __JPEG_MARKER_H__ #define __JPEG_MARKER_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef enum { JPEG_MARKER_SOF0 = 0xc0, JPEG_MARKER_SOF1 = 0xc1, JPEG_MARKER_SOF2 = 0xc2, JPEG_MARKER_SOF3 = 0xc3, JPEG_MARKER_DHT = 0xc4, JPEG_MARKER_SOF5 = 0xc5, JPEG_MARKER_SOF6 = 0xc6, JPEG_MARKER_SOF7 = 0xc7, JPEG_MARKER_JPG = 0xc8, JPEG_MARKER_SOF9 = 0xc9, JPEG_MARKER_SOF10 = 0xca, JPEG_MARKER_SOF11 = 0xcb, JPEG_MARKER_DAC = 0xcc, JPEG_MARKER_SOF13 = 0xcd, JPEG_MARKER_SOF14 = 0xce, JPEG_MARKER_SOF15 = 0xcf, JPEG_MARKER_RST0 = 0xd0, JPEG_MARKER_RST1 = 0xd1, JPEG_MARKER_RST2 = 0xd2, JPEG_MARKER_RST3 = 0xd3, JPEG_MARKER_RST4 = 0xd4, JPEG_MARKER_RST5 = 0xd5, JPEG_MARKER_RST6 = 0xd6, JPEG_MARKER_RST7 = 0xd7, JPEG_MARKER_SOI = 0xd8, JPEG_MARKER_EOI = 0xd9, JPEG_MARKER_SOS = 0xda, JPEG_MARKER_DQT = 0xdb, JPEG_MARKER_DNL = 0xdc, JPEG_MARKER_DRI = 0xdd, JPEG_MARKER_DHP = 0xde, JPEG_MARKER_EXP = 0xdf, JPEG_MARKER_APP0 = 0xe0, JPEG_MARKER_APP1 = 0xe1, JPEG_MARKER_APP2 = 0xe2, JPEG_MARKER_APP3 = 0xe3, JPEG_MARKER_APP4 = 0xe4, JPEG_MARKER_APP5 = 0xe5, JPEG_MARKER_APP6 = 0xe6, JPEG_MARKER_APP7 = 0xe7, JPEG_MARKER_APP8 = 0xe8, JPEG_MARKER_APP9 = 0xe9, JPEG_MARKER_APP10 = 0xea, JPEG_MARKER_APP11 = 0xeb, JPEG_MARKER_APP12 = 0xec, JPEG_MARKER_APP13 = 0xed, JPEG_MARKER_APP14 = 0xee, JPEG_MARKER_APP15 = 0xef, JPEG_MARKER_JPG0 = 0xf0, JPEG_MARKER_JPG1 = 0xf1, JPEG_MARKER_JPG2 = 0xf2, JPEG_MARKER_JPG3 = 0xf3, JPEG_MARKER_JPG4 = 0xf4, JPEG_MARKER_JPG5 = 0xf5, JPEG_MARKER_JPG6 = 0xf6, JPEG_MARKER_JPG7 = 0xf7, JPEG_MARKER_JPG8 = 0xf8, JPEG_MARKER_JPG9 = 0xf9, JPEG_MARKER_JPG10 = 0xfa, JPEG_MARKER_JPG11 = 0xfb, JPEG_MARKER_JPG12 = 0xfc, JPEG_MARKER_JPG13 = 0xfd, JPEG_MARKER_COM = 0xfe } JPEGMarker; #define JPEG_IS_MARKER(m) (((m) >= JPEG_MARKER_SOF0) && \ ((m) <= JPEG_MARKER_COM)) const char *jpeg_marker_get_name (JPEGMarker marker); const char *jpeg_marker_get_description (JPEGMarker marker); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __JPEG_MARKER_H__ */ exif-exif-0_6_22-release/m4/000077500000000000000000000000001366114026400155705ustar00rootroot00000000000000exif-exif-0_6_22-release/m4/Makefile.am000066400000000000000000000000241366114026400176200ustar00rootroot00000000000000# empty Makefile.am exif-exif-0_6_22-release/m4m/000077500000000000000000000000001366114026400157455ustar00rootroot00000000000000exif-exif-0_6_22-release/m4m/.gitignore000066400000000000000000000005501366114026400177350ustar00rootroot00000000000000Makefile Makefile.in autom4te.cache codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 intmax.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 progtest.m4 signed.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4 exif-exif-0_6_22-release/m4m/Makefile.am000066400000000000000000000002621366114026400200010ustar00rootroot00000000000000EXTRA_DIST = gp-byteorder.m4 gp-check-library.m4 gp-check-shell-environment.m4 gp-config-msg.m4 gp-documentation.m4 gp-gettext-hack.m4 gp-packaging.m4 gp-references.m4 stdint.m4 exif-exif-0_6_22-release/m4m/gp-byteorder.m4000066400000000000000000000261211366114026400206140ustar00rootroot00000000000000dnl AC_NEED_BYTEORDER_H ( HEADER-TO-GENERATE ) dnl Copyright 2001-2002 by Dan Fandrich dnl This file may be copied and used freely without restrictions. No warranty dnl is expressed or implied. dnl dnl Create a header file that guarantees that byte swapping macros of the dnl ntohl variety as well as the extended types included in OpenBSD and dnl NetBSD such as le32toh are defined. If possible, the standard ntohl dnl are overloaded as they are optimized for the given platform, but when dnl this is not possible (e.g. on a big-endian machine) they are defined dnl in this file. dnl Look for a symbol in a header file dnl AC_HAVE_SYMBOL ( IDENTIFIER, HEADER-FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND ) AC_DEFUN([AC_HAVE_SYMBOL], [ AC_MSG_CHECKING(for $1 in $2) AC_EGREP_CPP([symbol is present|\<$1\>],[ #include <$2> #ifdef $1 symbol is present #endif ], [AC_MSG_RESULT(yes) $3 ], [AC_MSG_RESULT(no) $4 ])]) dnl Create a header file that defines extended byte swapping macros AC_DEFUN([AC_NEED_BYTEORDER_H], [ changequote(, )dnl ac_dir=`echo $1|sed 's%/[^/][^/]*$%%'` changequote([, ])dnl if test "$ac_dir" != "$1" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi # We're only interested in the target CPU, but it's not always set effective_target="$target" if test "x$effective_target" = xNONE -o "x$effective_target" = x ; then effective_target="$host" fi AC_SUBST(effective_target) cat > "$1" << EOF /* This file is generated automatically by configure */ /* It is valid only for the system type ${effective_target} */ #ifndef __BYTEORDER_H #define __BYTEORDER_H EOF dnl First, do an endian check AC_C_BIGENDIAN dnl Look for NetBSD-style extended byte swapping macros AC_HAVE_SYMBOL(le32toh,machine/endian.h, [HAVE_LE32TOH=1 cat >> "$1" << EOF /* extended byte swapping macros are already available */ #include EOF], [ dnl Look for standard byte swapping macros AC_HAVE_SYMBOL(ntohl,arpa/inet.h, [cat >> "$1" << EOF /* ntohl and relatives live here */ #include EOF], [AC_HAVE_SYMBOL(ntohl,netinet/in.h, [cat >> "$1" << EOF /* ntohl and relatives live here */ #include EOF],true)]) ]) dnl Look for generic byte swapping macros dnl OpenBSD AC_HAVE_SYMBOL(swap32,machine/endian.h, [cat >> "$1" << EOF /* swap32 and swap16 are defined in machine/endian.h */ EOF], [ dnl Linux GLIBC AC_HAVE_SYMBOL(bswap_32,byteswap.h, [cat >> "$1" << EOF /* Define generic byte swapping functions */ #include #define swap16(x) bswap_16(x) #define swap32(x) bswap_32(x) #define swap64(x) bswap_64(x) EOF], [ dnl NetBSD AC_HAVE_SYMBOL(bswap32,machine/endian.h, dnl We're already including machine/endian.h if this test succeeds [cat >> "$1" << EOF /* Define generic byte swapping functions */ EOF if test "$HAVE_LE32TOH" != "1"; then echo '#include '>> "$1" fi cat >> "$1" << EOF #define swap16(x) bswap16(x) #define swap32(x) bswap32(x) #define swap64(x) bswap64(x) EOF], [ dnl FreeBSD AC_HAVE_SYMBOL(__byte_swap_long,sys/types.h, [cat >> "$1" << EOF /* Define generic byte swapping functions */ #include #define swap16(x) __byte_swap_word(x) #define swap32(x) __byte_swap_long(x) /* No optimized 64 bit byte swapping macro is available */ #define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\ ((x) >> 8) & 0x00000000ff000000ULL | \\ ((x) >> 24) & 0x0000000000ff0000ULL | \\ ((x) >> 40) & 0x000000000000ff00ULL | \\ ((x) >> 56) & 0x00000000000000ffULL)) EOF], [ dnl OS X AC_HAVE_SYMBOL(NXSwapLong,machine/byte_order.h, [cat >> "$1" << EOF /* Define generic byte swapping functions */ #include #define swap16(x) NXSwapShort(x) #define swap32(x) NXSwapLong(x) #define swap64(x) NXSwapLongLong(x) EOF], [ if test $ac_cv_c_bigendian = yes; then cat >> "$1" << EOF /* No other byte swapping functions are available on this big-endian system */ #define swap16(x) ((uint16_t)(((x) << 8) | ((uint16_t)(x) >> 8))) #define swap32(x) ((uint32_t)(((uint32_t)(x) << 24) & 0xff000000UL | \\ ((uint32_t)(x) << 8) & 0x00ff0000UL | \\ ((x) >> 8) & 0x0000ff00UL | \\ ((x) >> 24) & 0x000000ffUL)) #define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\ ((x) >> 8) & 0x00000000ff000000ULL | \\ ((x) >> 24) & 0x0000000000ff0000ULL | \\ ((x) >> 40) & 0x000000000000ff00ULL | \\ ((x) >> 56) & 0x00000000000000ffULL)) EOF else cat >> "$1" << EOF /* Use these as generic byteswapping macros on this little endian system */ #define swap16(x) ntohs(x) #define swap32(x) ntohl(x) /* No optimized 64 bit byte swapping macro is available */ #define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\ ((x) >> 8) & 0x00000000ff000000ULL | \\ ((x) >> 24) & 0x0000000000ff0000ULL | \\ ((x) >> 40) & 0x000000000000ff00ULL | \\ ((x) >> 56) & 0x00000000000000ffULL)) EOF fi ]) ]) ]) ]) ]) [ if test "$HAVE_LE32TOH" != "1"; then cat >> "$1" << EOF /* The byte swapping macros have the form: */ /* EENN[a]toh or htoEENN[a] where EE is be (big endian) or */ /* le (little-endian), NN is 16 or 32 (number of bits) and a, */ /* if present, indicates that the endian side is a pointer to an */ /* array of uint8_t bytes instead of an integer of the specified length. */ /* h refers to the host's ordering method. */ /* So, to convert a 32-bit integer stored in a buffer in little-endian */ /* format into a uint32_t usable on this machine, you could use: */ /* uint32_t value = le32atoh(&buf[3]); */ /* To put that value back into the buffer, you could use: */ /* htole32a(&buf[3], value); */ /* Define aliases for the standard byte swapping macros */ /* Arguments to these macros must be properly aligned on natural word */ /* boundaries in order to work properly on all architectures */ #define htobe16(x) htons(x) #define htobe32(x) htonl(x) #define be16toh(x) ntohs(x) #define be32toh(x) ntohl(x) #define HTOBE16(x) (x) = htobe16(x) #define HTOBE32(x) (x) = htobe32(x) #define BE32TOH(x) (x) = be32toh(x) #define BE16TOH(x) (x) = be16toh(x) EOF if test $ac_cv_c_bigendian = yes; then cat >> "$1" << EOF /* Define our own extended byte swapping macros for big-endian machines */ #define htole16(x) swap16(x) #define htole32(x) swap32(x) #define le16toh(x) swap16(x) #define le32toh(x) swap32(x) #define htobe64(x) (x) #define be64toh(x) (x) #define HTOLE16(x) (x) = htole16(x) #define HTOLE32(x) (x) = htole32(x) #define LE16TOH(x) (x) = le16toh(x) #define LE32TOH(x) (x) = le32toh(x) #define HTOBE64(x) (void) (x) #define BE64TOH(x) (void) (x) EOF else cat >> "$1" << EOF /* On little endian machines, these macros are null */ #define htole16(x) (x) #define htole32(x) (x) #define htole64(x) (x) #define le16toh(x) (x) #define le32toh(x) (x) #define le64toh(x) (x) #define HTOLE16(x) (void) (x) #define HTOLE32(x) (void) (x) #define HTOLE64(x) (void) (x) #define LE16TOH(x) (void) (x) #define LE32TOH(x) (void) (x) #define LE64TOH(x) (void) (x) /* These don't have standard aliases */ #define htobe64(x) swap64(x) #define be64toh(x) swap64(x) #define HTOBE64(x) (x) = htobe64(x) #define BE64TOH(x) (x) = be64toh(x) EOF fi fi cat >> "$1" << EOF /* Define the C99 standard length-specific integer types */ #include <_stdint.h> EOF case "${effective_target}" in i[3456]86-*) cat >> "$1" << EOF /* Here are some macros to create integers from a byte array */ /* These are used to get and put integers from/into a uint8_t array */ /* with a specific endianness. This is the most portable way to generate */ /* and read messages to a network or serial device. Each member of a */ /* packet structure must be handled separately. */ /* The i386 and compatibles can handle unaligned memory access, */ /* so use the optimized macros above to do this job */ #define be16atoh(x) be16toh(*(uint16_t*)(x)) #define be32atoh(x) be32toh(*(uint32_t*)(x)) #define be64atoh(x) be64toh(*(uint64_t*)(x)) #define le16atoh(x) le16toh(*(uint16_t*)(x)) #define le32atoh(x) le32toh(*(uint32_t*)(x)) #define le64atoh(x) le64toh(*(uint64_t*)(x)) #define htobe16a(a,x) *(uint16_t*)(a) = htobe16(x) #define htobe32a(a,x) *(uint32_t*)(a) = htobe32(x) #define htobe64a(a,x) *(uint64_t*)(a) = htobe64(x) #define htole16a(a,x) *(uint16_t*)(a) = htole16(x) #define htole32a(a,x) *(uint32_t*)(a) = htole32(x) #define htole64a(a,x) *(uint64_t*)(a) = htole64(x) EOF ;; *) cat >> "$1" << EOF /* Here are some macros to create integers from a byte array */ /* These are used to get and put integers from/into a uint8_t array */ /* with a specific endianness. This is the most portable way to generate */ /* and read messages to a network or serial device. Each member of a */ /* packet structure must be handled separately. */ /* Non-optimized but portable macros */ #define be16atoh(x) ((uint16_t)(((x)[0]<<8)|(x)[1])) #define be32atoh(x) ((uint32_t)(((x)[0]<<24)|((x)[1]<<16)|((x)[2]<<8)|(x)[3])) #define be64atoh(x) ((uint64_t)(((x)[0]<<56)|((x)[1]<<48)|((x)[2]<<40)| \\ ((x)[3]<<32)|((x)[4]<<24)|((x)[5]<<16)|((x)[6]<<8)|(x)[7])) #define le16atoh(x) ((uint16_t)(((x)[1]<<8)|(x)[0])) #define le32atoh(x) ((uint32_t)(((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0])) #define le64atoh(x) ((uint64_t)(((x)[7]<<56)|((x)[6]<<48)|((x)[5]<<40)| \\ ((x)[4]<<32)|((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0])) #define htobe16a(a,x) (a)[0]=(uint8_t)((x)>>8), (a)[1]=(uint8_t)(x) #define htobe32a(a,x) (a)[0]=(uint8_t)((x)>>24), (a)[1]=(uint8_t)((x)>>16), \\ (a)[2]=(uint8_t)((x)>>8), (a)[3]=(uint8_t)(x) #define htobe64a(a,x) (a)[0]=(uint8_t)((x)>>56), (a)[1]=(uint8_t)((x)>>48), \\ (a)[2]=(uint8_t)((x)>>40), (a)[3]=(uint8_t)((x)>>32), \\ (a)[4]=(uint8_t)((x)>>24), (a)[5]=(uint8_t)((x)>>16), \\ (a)[6]=(uint8_t)((x)>>8), (a)[7]=(uint8_t)(x) #define htole16a(a,x) (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x) #define htole32a(a,x) (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\ (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x) #define htole64a(a,x) (a)[7]=(uint8_t)((x)>>56), (a)[6]=(uint8_t)((x)>>48), \\ (a)[5]=(uint8_t)((x)>>40), (a)[4]=(uint8_t)((x)>>32), \\ (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\ (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x) EOF ;; esac ] cat >> "$1" << EOF #endif /*__BYTEORDER_H*/ EOF]) exif-exif-0_6_22-release/m4m/gp-check-library.m4000066400000000000000000000304311366114026400213330ustar00rootroot00000000000000dnl @synopsis GP_CHECK_LIBRARY([VARNAMEPART],[libname],[VERSION-REQUIREMENT], dnl [headername],[functionname], dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], dnl [OPTIONAL-REQUIRED-ETC],[WHERE-TO-GET-IT]) dnl dnl Checks for the presence of a certain library. dnl dnl Parameters: dnl dnl VARNAMEPART partial variable name for variable definitions dnl libname name of library dnl VERSION-REQUIREMENT check for the version using pkg-config. dnl default: [] dnl headername name of header file dnl default: [] dnl functionname name of function name in library dnl default: [] dnl ACTION-IF-FOUND shell action to execute if found dnl default: [] dnl ACTION-IF-NOT-FOUND shell action to execute if not found dnl default: [] dnl OPTIONAL-REQUIRED-ETC one of "mandatory", "default-on", "default-off" dnl "disable-explicitly" dnl default: [mandatory] dnl WHERE-TO-GET-IT place where to find the library, e.g. a URL dnl default: [] dnl dnl What the ACTION-IFs can do: dnl dnl * change the variable have_[$1] to "yes" or "no" and thus change dnl the outcome of the test dnl * execute additional checks to define more specific variables, e.g. dnl for different API versions dnl dnl What the OPTIONAL-REQUIRED-ETC options mean: dnl dnl mandatory Absolute requirement, cannot be disabled. dnl default-on If found, it is used. If not found, it is not used. dnl default-off In case of --with-libfoo, detect it. Without dnl --with-libfoo, do not look for and use it. dnl disable-explicitly Required by default, but can be disabled by dnl explicitly giving --without-libfoo. dnl dnl These results have happened after calling GP_CHECK_LIBRARY: dnl dnl AM_CONDITIONAL([HAVE_VARPREFIX],[ if found ]) dnl AM_SUBST([have_VARPREFIX], [ "yes" if found, "no" if not found ]) dnl AM_SUBST([VARPREFIX_CFLAGS],[ -I, -D and stuff ]) dnl AM_SUBST([VARPREFIX_LIBS], [ /path/to/libname.la -L/path -lfoo ]) dnl dnl Parameters to ./configure which influence the GP_CHECK_LIBRARY results: dnl dnl * VARNAMEPART_LIBS=/foobar/arm-palmos/lib/libname.la dnl VARNAMEPART_CFLAGS=-I/foobar/include dnl * --without-libfoo dnl * --with-libfoo=/usr/local dnl * --with-libfoo-include-dir=/foobar/include dnl * --with-libfoo-lib=/foobar/arm-palmos/lib dnl * --with-libfoo=autodetect dnl dnl Examples: dnl GP_CHECK_LIBRARY([LIBEXIF], [libexif])dnl dnl GP_CHECK_LIBRARY([LIBEXIF], [libexif-gtk], [>= 0.3.3])dnl dnl note the space! ^ dnl dnl Possible enhancements: dnl dnl * Derive VAR_PREFIX directly from libname dnl This will change the calling conventions, so be aware of that. dnl * Give names of a header file and function name and to a test dnl compilation. dnl AC_DEFUN([_GP_CHECK_LIBRARY_SOEXT],[dnl AC_MSG_CHECKING([for dynamic library extension]) soext="" case "$host" in *linux*) soext=".so" ;; *sunos*) soext=".so" ;; *solaris*) soext=".so" ;; *bsd*) soext=".so" ;; *darwin*) soext=".dylib" ;; *w32*) soext=".dll" ;; esac if test "x$soext" = "x"; then soext=".so" AC_MSG_RESULT([${soext}]) AC_MSG_WARN([ Host system "${host}" not recognized, defaulting to "${soext}". ]) else AC_MSG_RESULT([${soext}]) fi ])dnl dnl AC_DEFUN([_GP_CHECK_LIBRARY],[ # ---------------------------------------------------------------------- # [GP_CHECK_LIBRARY]([$1],[$2],[$3], # [$4],[$5], # [...],[...],[$8]) m4_ifval([$9],[dnl # $9 ])dnl # ---------------------------------------------------------------------- dnl AC_REQUIRE([GP_CONFIG_MSG])dnl AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_REQUIRE([_GP_CHECK_LIBRARY_SOEXT])dnl dnl Use _CFLAGS and _LIBS given to configure. dnl This makes it possible to set these vars in a configure script dnl and AC_CONFIG_SUBDIRS this configure. AC_ARG_VAR([$1][_CFLAGS], [CFLAGS for compiling with ][$2])dnl AC_ARG_VAR([$1][_LIBS], [LIBS to add for linking against ][$2])dnl dnl AC_MSG_CHECKING([for ][$2][ to use]) userdef_[$1]=no have_[$1]=no if test "x${[$1][_LIBS]}" = "x" && test "x${[$1][_CFLAGS]}" = "x"; then dnl define --with/--without argument m4_if([$8], [default-off], [m4_pushdef([gp_lib_arg],[--without-][$2])dnl try_[$1]=no ], [m4_pushdef([gp_lib_arg],[--with-][$2])dnl try_[$1]=auto ])dnl AC_ARG_WITH([$2],[AS_HELP_STRING([gp_lib_arg][=PREFIX],[where to find ][$2][, "no" or "auto"])],[try_][$1][="$withval"]) if test "x${[try_][$1]}" = "xauto"; then [try_][$1]=autodetect; fi AC_MSG_RESULT([${try_][$1][}]) m4_popdef([gp_lib_arg])dnl if test "x${[try_][$1]}" = "xautodetect"; then dnl OK, we have to autodetect. dnl We start autodetection with the cleanest known method: pkg-config if test "x${[have_][$1]}" = "xno"; then dnl we need that line break after the PKG_CHECK_MODULES m4_ifval([$3], [PKG_CHECK_MODULES([$1],[$2][ $3],[have_][$1][=yes],[:])], [PKG_CHECK_MODULES([$1],[$2], [have_][$1][=yes],[:])] ) fi dnl If pkg-config didn't find anything, try the libfoo-config program dnl certain known libraries ship with. if test "x${[have_][$1]}" = "xno"; then AC_MSG_WARN([The `$2' library could not be found using pkg-config. No version checks will be performed if it is found using any other method.]) AC_MSG_CHECKING([$2][ config program]) m4_pushdef([gp_lib_config],[m4_if([$2],[libusb],[libusb-config], [$2],[libgphoto2],[gphoto2-config], [$2],[libgphoto2_port],[gphoto2-port-config], [none])])dnl AC_MSG_RESULT([gp_lib_config]) AC_PATH_PROG([$1][_CONFIG_PROG],[gp_lib_config]) if test -n "${[$1][_CONFIG_PROG]}" && test "${[$1][_CONFIG_PROG]}" != "none"; then AC_MSG_CHECKING([for ][$2][ parameters from ][gp_lib_config]) [$1]_LIBS="$(${[$1][_CONFIG_PROG]} --libs || echo "*error*")" [$1]_CFLAGSS="$(${[$1][_CONFIG_PROG]} --cflags || echo "*error*")" if test "x${[$1]_LIBS}" = "*error*" || test "x${[$1]_CFLAGS}" = "*error*"; then AC_MSG_RESULT([error]) else have_[$1]=yes AC_MSG_RESULT([ok]) fi fi m4_popdef([gp_lib_config])dnl fi dnl Neither pkg-config, nor the libfoo-config program have found anything. dnl So let's just probe the system. if test "x${[have_][$1]}" = "xno"; then ifs="$IFS" IFS=":" # FIXME: for W32 and OS/2 we may need ";" here for _libdir_ in \ ${LD_LIBRARY_PATH} \ "${libdir}" \ "${prefix}/lib64" "${prefix}/lib" \ /usr/lib64 /usr/lib \ /usr/local/lib64 /usr/local/lib \ /opt/lib64 /opt/lib do IFS="$ifs" for _soext_ in .la ${soext} .a; do if test -f "${_libdir_}/[$2]${_soext_}" then if test "x${_soext_}" = "x.la" || test "x${_soext_}" = "x.a"; then [$1]_LIBS="${_libdir_}/[$2]${_soext_}" else [$1]_LIBS="-L${_libdir_} -l$(echo "$2" | sed 's/^lib//')" fi break fi done if test "x${[$1][_LIBS]}" != "x"; then break fi done IFS="$ifs" if test "x${[$1][_LIBS]}" != "x"; then have_[$1]=yes fi fi elif test "x${[try_][$1]}" = "xno"; then : else [$1][_LIBS]="-L${[try_][$1]}/lib -l$(echo "$2" | sed 's/^lib//')" [$1][_CFLAGS]="-I${[try_][$1]}/include" fi elif test "x${[$1][_LIBS]}" != "x" && test "x${[$1][_CFLAGS]}" != "x"; then AC_MSG_RESULT([user-defined]) userdef_[$1]=yes have_[$1]=yes else AC_MSG_RESULT([broken call]) AC_MSG_ERROR([ * Fatal: * When calling configure for ${PACKAGE_TARNAME} * ${PACKAGE_NAME} * either set both [$1][_LIBS] *and* [$1][_CFLAGS] * or neither. ]) fi dnl dnl ACTION-IF-FOUND dnl m4_ifval([$6],[dnl if test "x${[have_][$1]}" = "xyes"; then # ACTION-IF-FOUND $6 fi ])dnl dnl dnl ACTION-IF-NOT-FOUND dnl m4_ifval([$7],[dnl if test "x${[have_][$1]}" = "xno"; then # ACTION-IF-NOT-FOUND $7 fi ])dnl dnl dnl Run our own test compilation dnl m4_ifval([$4],[dnl if test "x${[have_][$1]}" = "xyes"; then dnl AC_MSG_CHECKING([whether ][$2][ test compile succeeds]) dnl AC_MSG_RESULT([${[have_][$1]}]) CPPFLAGS_save="$CPPFLAGS" CPPFLAGS="${[$1]_CFLAGS}" AC_CHECK_HEADER([$4],[have_][$1][=yes],[have_][$1][=no]) CPPFLAGS="$CPPFLAGS_save" fi ])dnl dnl dnl Run our own test link dnl Does not work for libraries which be built after configure time, dnl so we deactivate it for them (userdef_). dnl m4_ifval([$5],[dnl if test "x${[userdef_][$1]}" = "xno" && test "x${[have_][$1]}" = "xyes"; then AC_MSG_CHECKING([for function ][$5][ in ][$2]) LIBS_save="$LIBS" LIBS="${[$1]_LIBS}" AC_TRY_LINK_FUNC([$5],[],[have_][$1][=no]) LIBS="$LIBS_save" AC_MSG_RESULT([${[have_][$1]}]) fi ])dnl dnl dnl Abort configure script if mandatory, but not found dnl m4_if([$8],[mandatory],[ if test "x${[have_][$1]}" = "xno"; then AC_MSG_ERROR([ PKG_CONFIG_PATH=${PKG_CONFIG_PATH} [$1][_LIBS]=${[$1][_LIBS]} [$1][_CFLAGS]=${[$1][_CFLAGS]} * Fatal: ${PACKAGE_NAME} requires $2 to build. * * Possible solutions: * - set PKG_CONFIG_PATH to adequate value * - call configure with [$1][_LIBS]=.. and [$1][_CFLAGS]=.. * - call configure with one of the --with-$2 parameters ]m4_ifval([$9],[dnl * - get $2 and install it ],[dnl * - get $2 and install it: $9])) fi ])dnl dnl dnl Abort configure script if not found and not explicitly disabled dnl m4_if([$8],[disable-explicitly],[ if test "x${[try_][$1]}" != "xno" && test "x${[have_][$1]}" = "xno"; then AC_MSG_ERROR([ PKG_CONFIG_PATH=${PKG_CONFIG_PATH} [$1][_LIBS]=${[$1][_LIBS]} [$1][_CFLAGS]=${[$1][_CFLAGS]} * Fatal: ${PACKAGE_NAME} by default requires $2 to build. * You must explicitly disable $2 to build ${PACKAGE_TARNAME} without it. * * Possible solutions: * - call configure with --with-$2=no or --without-$2 * - set PKG_CONFIG_PATH to adequate value * - call configure with [$1][_LIBS]=.. and [$1][_CFLAGS]=.. * - call configure with one of the --with-$2 parameters ]m4_ifval([$9],[dnl * - get $2 and install it ],[dnl * - get $2 and install it: $9])) fi ])dnl AM_CONDITIONAL([HAVE_][$1], [test "x$have_[$1]" = "xyes"]) if test "x$have_[$1]" = "xyes"; then AC_DEFINE([HAVE_][$1], 1, [whether we compile with ][$2][ support]) GP_CONFIG_MSG([$2],[yes])dnl AC_MSG_CHECKING([$2][ library flags]) AC_MSG_RESULT([${[$1][_LIBS]}]) AC_MSG_CHECKING([$2][ cpp flags]) AC_MSG_RESULT([${[$1][_CFLAGS]}]) else GP_CONFIG_MSG([$2],[no])dnl fi dnl AC_SUBST is done implicitly by AC_ARG_VAR above. dnl AC_SUBST([$1][_LIBS]) dnl AC_SUBST([$1][_CFLAGS]) ])dnl dnl dnl #################################################################### dnl AC_DEFUN([_GP_CHECK_LIBRARY_SYNTAX_ERROR],[dnl m4_errprint(__file__:__line__:[ Error: *** Calling $0 macro with old syntax *** Aborting. ])dnl m4_exit(1)dnl ])dnl dnl dnl #################################################################### dnl AC_DEFUN([GP_CHECK_LIBRARY],[dnl m4_if([$4], [mandatory], [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)], [$4], [default-enabled], [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)], [$4], [default-disabled], [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)])dnl m4_if([$8], [], [dnl _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[mandatory],[$9])], [$8], [default-on], [dnl _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])], [$8], [disable-explicitly], [dnl _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])], [$8], [default-off], [dnl _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])], [$8], [mandatory], [dnl _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])], [m4_errprint(__file__:__line__:[ Error: Illegal argument 6 to $0: `$6' It must be one of "default-on", "default-off", "mandatory". ])m4_exit(1)])dnl ])dnl dnl m4_pattern_disallow([GP_CHECK_LIBRARY]) m4_pattern_disallow([_GP_CHECK_LIBRARY]) m4_pattern_disallow([_GP_CHECK_LIBRARY_SYNTAX_ERROR]) m4_pattern_disallow([_GP_CHECK_LIBRARY_SOEXT]) dnl dnl #################################################################### dnl dnl Please do not remove this: dnl filetype: 6e60b4f0-acb2-4cd5-8258-42014f92bd2c dnl I use this to find all the different instances of this file which dnl are supposed to be synchronized. dnl dnl Local Variables: dnl mode: autoconf dnl End: exif-exif-0_6_22-release/m4m/gp-check-shell-environment.m4000066400000000000000000000022041366114026400233350ustar00rootroot00000000000000dnl @synopsis GP_CHECK_SHELL_ENVIRONMENT([SHOW-LOCALE-VARS]) dnl dnl Check that the shell environment is sane. dnl dnl If SHOW-LOCALE-VARS is set to [true], print all LC_* and LANG* dnl variables at configure time. (WARNING: This is not portable!) dnl dnl AC_DEFUN([GP_CHECK_SHELL_ENVIRONMENT], [ # make sure "cd" doesn't print anything on stdout if test x"${CDPATH+set}" = xset then CDPATH=: export CDPATH fi # make sure $() command substitution works AC_MSG_CHECKING([for POSIX sh \$() command substitution]) if test "x$(pwd)" = "x`pwd`" && test "y$(echo "foobar")" = "y`echo foobar`" # '''' then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) uname=`uname 2>&1` # '' uname_a=`uname -a 2>&1` # '' AC_MSG_ERROR([ * POSIX sh \$() command substition does not work with this shell. * * You are running a very rare species of shell. Please report this * sighting to <${PACKAGE_BUGREPORT}>: * SHELL=${SHELL} * uname=${uname} * uname-a=${uname_a} * Please also include your OS and version. * * Run this configure script using a better (i.e. POSIX compliant) shell. ]) fi dnl m4_if([$1],[true],[dnl printenv | grep -E '^(LC_|LANG)' ])dnl dnl ])dnl dnl exif-exif-0_6_22-release/m4m/gp-config-msg.m4000066400000000000000000000052341366114026400206500ustar00rootroot00000000000000dnl dnl GP_CONFIG_INIT dnl use default LHS width (called implicitly if not called explicitly) dnl GP_CONFIG_INIT([WIDTH-OF-LHS]) dnl explicitly set the LHS width to the given value dnl dnl GP_CONFIG_MSG dnl empty output line dnl GP_CONFIG_MSG([LHS],[RHS]) dnl formatted output line "LHS: RHS" dnl dnl GP_CONFIG_OUTPUT dnl print all the output messages we collected in the mean time dnl dnl Simple way to print a configuration summary at the end of ./configure. dnl dnl Example usage: dnl dnl GP_CONFIG_INIT dnl GP_CONFIG_MSG([Source code location],[${srcdir}]) dnl GP_CONFIG_MSG([Compiler],[${CC}]) dnl GP_CONFIG_MSG dnl GP_CONFIG_MSG([Feature foo],[${foo}]) dnl GP_CONFIG_MSG([Location of bar],[${bar}]) dnl [...] dnl AC_OUTPUT dnl GP_CONFIG_OUTPUT dnl dnl AC_DEFUN([GP_CONFIG_INIT], [dnl AC_REQUIRE([GP_CHECK_SHELL_ENVIRONMENT]) dnl the empty string must contain at least as many spaces as the substr length dnl FIXME: let m4 determine that length dnl (collect left parts in array and choose largest length) m4_if([$1],[],[gp_config_len="30"],[gp_config_len="$1"]) gp_config_empty="" gp_config_len3="$(expr "$gp_config_len" - 3)" n="$gp_config_len" while test "$n" -gt 0; do gp_config_empty="${gp_config_empty} " n="$(expr "$n" - 1)" done gp_config_msg=" Configuration (${PACKAGE_TARNAME} ${PACKAGE_VERSION}): " ])dnl dnl dnl AC_DEFUN([GP_CONFIG_MSG], [AC_REQUIRE([GP_CONFIG_INIT])dnl m4_if([$1],[],[ gp_config_msg="${gp_config_msg} " ],[$2],[],[ gp_config_msg="${gp_config_msg} [$1] " ],[ gp_config_msg_len="$(expr "[$1]" : '.*')" if test "$gp_config_msg_len" -ge "$gp_config_len"; then gp_config_msg_lhs="$(expr "[$1]" : "\(.\{0,${gp_config_len3}\}\)")..:" else gp_config_msg_lhs="$(expr "[$1]:${gp_config_empty}" : "\(.\{0,${gp_config_len}\}\)")" fi gp_config_msg="${gp_config_msg} ${gp_config_msg_lhs} [$2] " ])])dnl dnl AC_DEFUN([GP_CONFIG_MSG_SUBDIRS],[dnl # Message about configured subprojects if test "x$subdirs" != "x"; then GP_CONFIG_MSG()dnl _subdirs="" for sd in $subdirs; do ssd="$(basename "$sd")" if test "x$_subdirs" = "x"; then _subdirs="$ssd"; else _subdirs="$_subdirs $ssd" fi done GP_CONFIG_MSG([Subprojects],[${_subdirs}])dnl fi ])dnl dnl AC_DEFUN([GP_CONFIG_OUTPUT], [AC_REQUIRE([GP_CONFIG_INIT])dnl AC_REQUIRE([GP_CONFIG_MSG])dnl AC_REQUIRE([GP_CONFIG_MSG_SUBDIRS])dnl echo "${gp_config_msg} You may run \"make\" and \"make install\" now." ])dnl dnl dnl Please do not remove this: dnl filetype: de774af3-dc3b-4b1d-b6f2-4aca35d3da16 dnl I use this to find all the different instances of this file which dnl are supposed to be synchronized. dnl dnl Local Variables: dnl mode: autoconf dnl End: exif-exif-0_6_22-release/m4m/gp-documentation.m4000066400000000000000000000104451366114026400214700ustar00rootroot00000000000000dnl dnl check where to install documentation dnl dnl determines documentation "root directory", i.e. the directory dnl where all documentation will be placed in dnl AC_DEFUN([GP_DOC_GENERAL],[dnl AC_MSG_CHECKING([whether to build any docs]) AC_ARG_ENABLE([docs], [dnl AS_HELP_STRING([--disable-docs], [whether to create any documentation])], [dnl case "$enableval" in yes|true|on) gp_build_docs="yes" ;; *) gp_build_docs="no" ;; esac ],[dnl gp_build_docs="yes" ])dnl AC_MSG_RESULT([${gp_build_docs}]) AM_CONDITIONAL([BUILD_DOCS], [test "x${gp_build_docs}" = "xyes"]) ])dnl AC_DEFUN([GP_CHECK_DOC_DIR], [ AC_REQUIRE([GP_DOC_GENERAL])dnl AC_BEFORE([$0], [GP_BUILD_GTK_DOCS])dnl AC_BEFORE([$0], [GP_CHECK_DOXYGEN])dnl AC_ARG_WITH([doc-dir], [AS_HELP_STRING([--with-doc-dir=PATH], [Where to install docs [default=autodetect]])]) # check for the main ("root") documentation directory AC_MSG_CHECKING([main docdir]) if test "x${with_doc_dir}" != "x" then # docdir is given as parameter docdir="${with_doc_dir}" AC_MSG_RESULT([${docdir} (from parameter)]) else # otherwise invent a docdir hopefully compatible with system policy if test -d "/usr/share/doc" then maindocdir='${prefix}/share/doc' AC_MSG_RESULT([${maindocdir} (FHS style)]) elif test -d "/usr/doc" then maindocdir='${prefix}/doc' AC_MSG_RESULT([${maindocdir} (old style)]) else maindocdir='${datadir}/doc' AC_MSG_RESULT([${maindocdir} (default value)]) fi AC_MSG_CHECKING([package docdir]) # check whether to include package version into documentation path # FIXME: doesn't work properly. if ls -d /usr/{share/,}doc/make-[0-9]* > /dev/null 2>&1 then docdir="${maindocdir}/${PACKAGE}-${VERSION}" AC_MSG_RESULT([${docdir} (redhat style)]) else docdir="${maindocdir}/${PACKAGE}" AC_MSG_RESULT([${docdir} (default style)]) fi fi AC_SUBST([docdir]) ])dnl dnl dnl check whether to build docs and where to: dnl dnl * determine presence of prerequisites (only gtk-doc for now) dnl * determine destination directory for HTML files dnl AC_DEFUN([GP_BUILD_GTK_DOCS], [ # docdir has to be determined in advance AC_REQUIRE([GP_CHECK_DOC_DIR]) # --------------------------------------------------------------------------- # gtk-doc: We use gtk-doc for building our documentation. However, we # require the user to explicitely request the build. # --------------------------------------------------------------------------- try_gtkdoc=false gtkdoc_msg="no (not requested)" have_gtkdoc=false AC_ARG_ENABLE([docs], [AS_HELP_STRING([--enable-docs], [Use gtk-doc to build documentation [default=no]])],[ if test x$enableval = xyes; then try_gtkdoc=true fi ]) if $try_gtkdoc; then AC_PATH_PROG([GTKDOC],[gtkdoc-mkdb]) if test -n "${GTKDOC}"; then have_gtkdoc=true gtkdoc_msg="yes" else gtkdoc_msg="no (http://www.gtk.org/rdp/download.html)" fi fi AM_CONDITIONAL([ENABLE_GTK_DOC], [$have_gtkdoc]) GP_CONFIG_MSG([build API docs with gtk-doc],[$gtkdoc_msg]) # --------------------------------------------------------------------------- # Give the user the possibility to install html documentation in a # user-defined location. # --------------------------------------------------------------------------- AC_ARG_WITH([html-dir], [AS_HELP_STRING([--with-html-dir=PATH], [Where to install html docs [default=autodetect]])]) AC_MSG_CHECKING([for html dir]) if test "x${with_html_dir}" = "x" ; then htmldir="${docdir}/html" AC_MSG_RESULT([${htmldir} (default)]) else htmldir="${with_html_dir}" AC_MSG_RESULT([${htmldir} (from parameter)]) fi AC_SUBST([htmldir]) apidocdir="${htmldir}/api" AC_SUBST([apidocdir}]) ])dnl dnl doxygen related stuff dnl look for tools dnl define substitutions for Doxyfile.in AC_DEFUN([GP_CHECK_DOXYGEN],[dnl AC_REQUIRE([GP_CHECK_DOC_DIR])dnl AC_PATH_PROG([DOT], [dot], [false]) AC_PATH_PROG([DOXYGEN], [doxygen], [false]) AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$DOXYGEN" != "xfalse"]) AM_CONDITIONAL([HAVE_DOT], [test "x$DOT" != "xfalse"]) if test "x$DOT" != "xfalse"; then AC_SUBST([HAVE_DOT],[YES]) else AC_SUBST([HAVE_DOT],[NO]) fi AC_SUBST([HTML_APIDOC_DIR], ["${PACKAGE_TARNAME}-api.html"]) AC_SUBST([DOXYGEN_OUTPUT_DIR], [doxygen-output]) AC_SUBST([HTML_APIDOC_INTERNALS_DIR], ["${PACKAGE_TARNAME}-internals.html"]) ])dnl exif-exif-0_6_22-release/m4m/gp-gettext-hack.m4000066400000000000000000000052231366114026400212050ustar00rootroot00000000000000dnl dnl GP_GETTEXT_HACK dnl dnl gettext hack, originally designed for libexif, libgphoto2, and Co. dnl This creates a po/Makevars file with adequate values if the dnl po/Makevars.template is present. dnl dnl Example usage: dnl GP_GETTEXT_HACK([${PACKAGE_TARNAME}-${LIBFOO_CURRENT}], dnl [Copyright Holder], dnl [foo-translation@example.org]) dnl ALL_LINGUAS="de es fr" dnl AM_GNU_GETTEXT_VERSION([0.14.1]) dnl AM_GNU_GETTEXT([external]) dnl AM_PO_SUBDIRS() dnl AM_ICONV() dnl GP_GETTEXT_FLAGS dnl dnl You can leave out the GP_GETTEXT_HACK parameters if you want to, dnl GP_GETTEXT_HACK will try fall back to sensible values in that case: dnl AC_DEFUN([GP_GETTEXT_HACK], [ AC_BEFORE([$0], [AM_GNU_GETTEXT])dnl AC_BEFORE([$0], [AM_GNU_GETTEXT_VERSION])dnl m4_if([$1],[],[GETTEXT_PACKAGE="${PACKAGE_TARNAME}"],[GETTEXT_PACKAGE="$1"]) # The gettext domain we're using AM_CPPFLAGS="$AM_CPPFLAGS -DGETTEXT_PACKAGE=\\\"${GETTEXT_PACKAGE}\\\"" AC_SUBST([GETTEXT_PACKAGE]) sed_cmds="s|^DOMAIN.*|DOMAIN = ${GETTEXT_PACKAGE}|" m4_if([$2],[],[],[sed_cmds="${sed_cmds};s|^COPYRIGHT_HOLDER.*|COPYRIGHT_HOLDER = $2|"]) m4_ifval([$3],[ sed_mb="$3" ],[ if test -n "$PACKAGE_BUGREPORT"; then sed_mb="${PACKAGE_BUGREPORT}" else AC_MSG_ERROR([ *** Your configure.{ac,in} is wrong. *** Either define PACKAGE_BUGREPORT (by using the 4-parameter AC INIT syntax) *** or give [GP_GETTEXT_HACK] the third parameter. *** ]) fi ]) sed_cmds="${sed_cmds};s|^MSGID_BUGS_ADDRESS.*|MSGID_BUGS_ADDRESS = ${sed_mb}|" # Not so sure whether this hack is all *that* evil... AC_MSG_CHECKING([for po/Makevars requiring hack]) if test -f "${srcdir}/po/Makevars.template"; then sed "$sed_cmds" < "${srcdir}/po/Makevars.template" > "${srcdir}/po/Makevars" AC_MSG_RESULT([yes, done.]) else AC_MSG_RESULT([no]) fi ]) AC_DEFUN([GP_GETTEXT_FLAGS], [ AC_REQUIRE([AM_GNU_GETTEXT]) AC_REQUIRE([GP_CONFIG_INIT]) if test "x${BUILD_INCLUDED_LIBINTL}" = "xyes"; then AM_CFLAGS="${AM_CFLAGS} -I\$(top_srcdir)/intl" fi GP_CONFIG_MSG([Use translations],[${USE_NLS}]) if test "x$USE_NLS" = "xyes" && test "${BUILD_INCLUDED_LIBINTL}"; then GP_CONFIG_MSG([Use included libintl],[${BUILD_INCLUDED_LIBINTL}]) fi dnl We cannot use AC_DEFINE_UNQUOTED() for these definitions, as dnl we require make to do insert the proper $(datadir) value AC_SUBST([localedir], ['$(datadir)/locale']) AM_CPPFLAGS="$AM_CPPFLAGS -DLOCALEDIR=\\\"${localedir}\\\"" ]) dnl Please do not remove this: dnl filetype: 71ff3941-a5ae-4677-a369-d7cb01f92c81 dnl I use this to find all the different instances of this file which dnl are supposed to be synchronized. dnl Local Variables: dnl mode: autoconf dnl End: exif-exif-0_6_22-release/m4m/gp-packaging.m4000066400000000000000000000042361366114026400205440ustar00rootroot00000000000000AC_DEFUN([GPKG_CHECK_RPM], [ AC_ARG_WITH([rpmbuild], [AS_HELP_STRING([--with-rpmbuild=PATH], [Program to use for building RPMs])]) if test -x "${with_rpmbuild}" then RPMBUILD="${with_rpmbuild}" AC_MSG_CHECKING([for rpmbuild or rpm]) AC_MSG_RESULT([${RPMBUILD} (from parameter)]) else AC_MSG_RESULT([using autodetection]) AC_CHECK_PROGS(RPMBUILD, [rpmbuild rpm], false) AC_MSG_CHECKING([for rpmbuild or rpm]) AC_MSG_RESULT([${RPMBUILD} (autodetected)]) fi AC_SUBST([RPMBUILD]) AM_CONDITIONAL([ENABLE_RPM], [test "$RPMBUILD" != "false"]) # whether libusb-devel is installed or not defines whether the RPM # packages we're going to build will depend on libusb and libusb-devel # RPM packages or not. AM_CONDITIONAL([RPM_LIBUSB_DEVEL], [rpm -q libusb-devel > /dev/null 2>&1]) ]) AC_DEFUN([GPKG_CHECK_LINUX], [ # effective_target has to be determined in advance AC_REQUIRE([AC_NEED_BYTEORDER_H]) is_linux=false case "$effective_target" in *linux*) is_linux=true ;; esac AM_CONDITIONAL([HAVE_LINUX], ["$is_linux"]) # required for docdir # FIXME: Implicit dependency # AC_REQUIRE(GP_CHECK_DOC_DIR) AC_ARG_WITH([hotplug-doc-dir], [AS_HELP_STRING([--with-hotplug-doc-dir=PATH], [Where to install hotplug scripts as docs [default=autodetect]])]) AC_MSG_CHECKING([for hotplug doc dir]) if test "x${with_hotplug_doc_dir}" != "x" then # given as parameter hotplugdocdir="${with_hotplug_doc_dir}" AC_MSG_RESULT([${hotplugdocdir} (from parameter)]) else # start at docdir hotplugdocdir="${docdir}/linux-hotplug" AC_MSG_RESULT([${hotplugdocdir} (default)]) fi AC_SUBST([hotplugdocdir]) AC_ARG_WITH([hotplug-usermap-dir], [AS_HELP_STRING([--with-hotplug-usermap-dir=PATH], [Where to install hotplug scripts as docs [default=autodetect]])]) AC_MSG_CHECKING([for hotplug usermap dir]) if test "x${with_hotplug_usermap_dir}" != "x" then # given as parameter hotplugusermapdir="${with_hotplug_usermap_dir}" AC_MSG_RESULT([${hotplugusermapdir} (from parameter)]) else # start at docdir hotplugusermapdir="${docdir}/linux-hotplug" AC_MSG_RESULT([${hotplugusermapdir} (default)]) fi AC_SUBST([hotplugusermapdir]) ]) exif-exif-0_6_22-release/m4m/gp-references.m4000066400000000000000000000021361366114026400207360ustar00rootroot00000000000000dnl dnl Define external references dnl dnl Define once, use many times. dnl No more URLs and Mail addresses in translated strings and stuff. dnl AC_DEFUN([GP_REF],[ AC_SUBST([$1],["$2"]) AC_DEFINE_UNQUOTED([$1],["$2"],[$3]) ]) AC_DEFUN([GP_REFERENCES], [ GP_REF( [URL_GPHOTO_HOME], [http://www.gphoto.org/], [gphoto project home page])dnl GP_REF( [URL_GPHOTO_PROJECT], [http://sourceforge.net/projects/gphoto], [gphoto sourceforge project page]) GP_REF( [URL_DIGICAM_LIST], [http://www.teaser.fr/~hfiguiere/linux/digicam.html], [camera list with support status]) GP_REF( [URL_JPHOTO_HOME], [http://jphoto.sourceforge.net/], [jphoto home page]) GP_REF( [URL_USB_MASSSTORAGE], [http://www.linux-usb.org/USB-guide/x498.html], [information about using USB mass storage]) GP_REF( [MAIL_GPHOTO_DEVEL], [], [gphoto development mailing list]) GP_REF( [MAIL_GPHOTO_USER], [], [gphoto user mailing list]) GP_REF( [MAIL_GPHOTO_TRANSLATION], [], [gphoto translation mailing list]) ]) exif-exif-0_6_22-release/m4m/stdint.m4000066400000000000000000000560371366114026400175270ustar00rootroot00000000000000dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE ) dnl dnl Look for a header file that defines size-specific integer types like the dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t). dnl AX_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND ) dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions AC_DEFUN([AX_CHECK_DEFINED_TYPE], [AC_MSG_CHECKING([for $1 in $2]) AC_EGREP_CPP(changequote(<<,>>)dnl <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl changequote([,]), [#include <$2>], ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl AC_MSG_RESULT($ac_cv_type_$1) if test $ac_cv_type_$1 = yes; then $3 else $4 fi ]) dnl Look for a header file that defines size-specific integer types AC_DEFUN([AX_NEED_STDINT_H], [ changequote(, )dnl ac_dir=`echo "$1"|sed 's%/[^/][^/]*$%%'` changequote([, ])dnl if test "$ac_dir" != "$1" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi AX_CHECK_DEFINED_TYPE(uint8_t, stdint.h, [ cat > "$1" < EOF], [AX_CHECK_DEFINED_TYPE(uint8_t, inttypes.h, [cat > "$1" < EOF], [AX_CHECK_DEFINED_TYPE(uint8_t, sys/types.h, [cat > "$1" < EOF], [AX_CHECK_DEFINED_TYPE(u_int8_t, sys/types.h, [cat > "$1" < typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; EOF AX_CHECK_DEFINED_TYPE(u_int64_t, sys/types.h, [cat >> "$1" <> "$1" <]) AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$1],[$1]) break done AC_MSG_CHECKING([for stdint uintptr_t]) ]) ]) AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) AC_MSG_RESULT([(..)]) for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do unset ac_cv_type_uint32_t unset ac_cv_type_uint64_t AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$1],[$1]) break break; done AC_MSG_CHECKING([for stdint uint32_t]) ]) ]) AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) AC_MSG_RESULT([(..)]) for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do unset ac_cv_type_u_int32_t unset ac_cv_type_u_int64_t AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$1],[$1]) break break; done AC_MSG_CHECKING([for stdint u_int32_t]) ]) ]) AC_DEFUN([AX_CREATE_STDINT_H], [# ------ AX CREATE STDINT H ------------------------------------- AC_MSG_CHECKING([for stdint types]) ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` # try to shortcircuit - if the default include path of the compiler # can find a "stdint.h" header then we assume that all compilers can. AC_CACHE_VAL([ac_cv_header_stdint_t],[ old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" old_CFLAGS="$CFLAGS" ; CFLAGS="" AC_TRY_COMPILE([#include ],[int_least32_t v = 0;], [ac_cv_stdint_result="(assuming C99 compatible system)" ac_cv_header_stdint_t="stdint.h"; ], [ac_cv_header_stdint_t=""]) CXXFLAGS="$old_CXXFLAGS" CPPFLAGS="$old_CPPFLAGS" CFLAGS="$old_CFLAGS" ]) v="... $ac_cv_header_stdint_h" if test "$ac_stdint_h" = "stdint.h" ; then AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) elif test "$ac_stdint_h" = "inttypes.h" ; then AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) elif test "_$ac_cv_header_stdint_t" = "_" ; then AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) else ac_cv_header_stdint="$ac_cv_header_stdint_t" AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) fi if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. dnl .....intro message done, now do a few system checks..... dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW dnl instead that is triggered with 3 or more arguments (see types.m4) inttype_headers=`echo $2 | sed -e 's/,/ /g'` ac_cv_stdint_result="(no helpful system typedefs seen)" AX_CHECK_HEADER_STDINT_X(dnl stdint.h inttypes.h sys/inttypes.h $inttype_headers, ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") if test "_$ac_cv_header_stdint_x" = "_" ; then AX_CHECK_HEADER_STDINT_O(dnl, inttypes.h sys/inttypes.h stdint.h $inttype_headers, ac_cv_stdint_result="(seen uint32_t$and64 in $i)") fi if test "_$ac_cv_header_stdint_x" = "_" ; then if test "_$ac_cv_header_stdint_o" = "_" ; then AX_CHECK_HEADER_STDINT_U(dnl, sys/types.h inttypes.h sys/inttypes.h $inttype_headers, ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") fi fi dnl if there was no good C99 header file, do some typedef checks... if test "_$ac_cv_header_stdint_x" = "_" ; then AC_MSG_CHECKING([for stdint datatype model]) AC_MSG_RESULT([(..)]) AX_CHECK_DATA_MODEL fi if test "_$ac_cv_header_stdint_x" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_x" elif test "_$ac_cv_header_stdint_o" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_o" elif test "_$ac_cv_header_stdint_u" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_u" else ac_cv_header_stdint="stddef.h" fi AC_MSG_CHECKING([for extra inttypes in chosen header]) AC_MSG_RESULT([($ac_cv_header_stdint)]) dnl see if int_least and int_fast types are present in _this_ header. unset ac_cv_type_int_least32_t unset ac_cv_type_int_fast32_t AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) fi # shortcircut to system "stdint.h" # ------------------ PREPARE VARIABLES ------------------------------ if test "$GCC" = "yes" ; then ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` else ac_cv_stdint_message="using $CC" fi AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl $ac_cv_stdint_result]) dnl ----------------------------------------------------------------- # ----------------- DONE inttypes.h checks START header ------------- AC_CONFIG_COMMANDS([$ac_stdint_h],[ AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) ac_stdint=$tmp/_stdint.h echo "#ifndef" $_ac_stdint_h >$ac_stdint echo "#define" $_ac_stdint_h "1" >>$ac_stdint echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint if test "_$ac_cv_header_stdint_t" != "_" ; then echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint echo "#include " >>$ac_stdint echo "#endif" >>$ac_stdint echo "#endif" >>$ac_stdint else cat >>$ac_stdint < #else #include /* .................... configured part ............................ */ STDINT_EOF echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_x" != "_" ; then ac_header="$ac_cv_header_stdint_x" echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint fi echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_o" != "_" ; then ac_header="$ac_cv_header_stdint_o" echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint fi echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint if test "_$ac_cv_header_stdint_u" != "_" ; then ac_header="$ac_cv_header_stdint_u" echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint fi echo "" >>$ac_stdint if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then echo "#include <$ac_header>" >>$ac_stdint echo "" >>$ac_stdint fi fi echo "/* which 64bit typedef has been found */" >>$ac_stdint if test "$ac_cv_type_uint64_t" = "yes" ; then echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint fi if test "$ac_cv_type_u_int64_t" = "yes" ; then echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* which type model has been detected */" >>$ac_stdint if test "_$ac_cv_char_data_model" != "_" ; then echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint else echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* whether int_least types were detected */" >>$ac_stdint if test "$ac_cv_type_int_least32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint fi echo "/* whether int_fast types were detected */" >>$ac_stdint if test "$ac_cv_type_int_fast32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint fi echo "/* whether intmax_t type was detected */" >>$ac_stdint if test "$ac_cv_type_intmax_t" = "yes"; then echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint fi echo "" >>$ac_stdint cat >>$ac_stdint <= 199901L #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #elif !defined __STRICT_ANSI__ #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ #define _HAVE_UINT64_T typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ /* note: all ELF-systems seem to have loff-support which needs 64-bit */ #if !defined _NO_LONGLONG #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #endif #elif defined __alpha || (defined __mips && defined _ABIN32) #if !defined _NO_LONGLONG typedef long int64_t; typedef unsigned long uint64_t; #endif /* compiler/cpu type to define int64_t */ #endif #endif #endif #if defined _STDINT_HAVE_U_INT_TYPES /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; /* glibc compatibility */ #ifndef __int8_t_defined #define __int8_t_defined #endif #endif #ifdef _STDINT_NEED_INT_MODEL_T /* we must guess all the basic types. Apart from byte-adressable system, */ /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ /* (btw, those nibble-addressable systems are way off, or so we assume) */ dnl /* have a look at "64bit and data size neutrality" at */ dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ dnl /* (the shorthand "ILP" types always have a "P" part) */ #if defined _STDINT_BYTE_MODEL #if _STDINT_LONG_MODEL+0 == 242 /* 2:4:2 = IP16 = a normal 16-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef long int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 /* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ /* 4:4:4 = ILP32 = a normal 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 /* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ /* 4:8:8 = LP64 = a normal 64-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* this system has a "long" of 64bit */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T typedef unsigned long uint64_t; typedef long int64_t; #endif #elif _STDINT_LONG_MODEL+0 == 448 /* LLP64 a 64-bit system derived from a 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* assuming the system has a "long long" */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef unsigned long long uint64_t; typedef long long int64_t; #endif #else #define _STDINT_NO_INT32_T #endif #else #define _STDINT_NO_INT8_T #define _STDINT_NO_INT32_T #endif #endif /* * quote from SunOS-5.8 sys/inttypes.h: * Use at your own risk. As of February 1996, the committee is squarely * behind the fixed sized types; the "least" and "fast" types are still being * discussed. The probability that the "fast" types may be removed before * the standard is finalized is high enough that they are not currently * implemented. */ #if defined _STDINT_NEED_INT_LEAST_T typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_least64_t; #endif typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_least64_t; #endif /* least types */ #endif #if defined _STDINT_NEED_INT_FAST_T typedef int8_t int_fast8_t; typedef int int_fast16_t; typedef int32_t int_fast32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_fast64_t; #endif typedef uint8_t uint_fast8_t; typedef unsigned uint_fast16_t; typedef uint32_t uint_fast32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_fast64_t; #endif /* fast types */ #endif #ifdef _STDINT_NEED_INTMAX_T #ifdef _HAVE_UINT64_T typedef int64_t intmax_t; typedef uint64_t uintmax_t; #else typedef long intmax_t; typedef unsigned long uintmax_t; #endif #endif #ifdef _STDINT_NEED_INTPTR_T #ifndef __intptr_t_defined #define __intptr_t_defined /* we encourage using "long" to store pointer values, never use "int" ! */ #if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 typedef unsinged int uintptr_t; typedef int intptr_t; #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 typedef unsigned long uintptr_t; typedef long intptr_t; #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T typedef uint64_t uintptr_t; typedef int64_t intptr_t; #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ typedef unsigned long uintptr_t; typedef long intptr_t; #endif #endif #endif /* The ISO C99 standard specifies that in C++ implementations these should only be defined if explicitly requested. */ #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS #ifndef UINT32_C /* Signed. */ # define INT8_C(c) c # define INT16_C(c) c # define INT32_C(c) c # ifdef _HAVE_LONGLONG_UINT64_T # define INT64_C(c) c ## L # else # define INT64_C(c) c ## LL # endif /* Unsigned. */ # define UINT8_C(c) c ## U # define UINT16_C(c) c ## U # define UINT32_C(c) c ## U # ifdef _HAVE_LONGLONG_UINT64_T # define UINT64_C(c) c ## UL # else # define UINT64_C(c) c ## ULL # endif /* Maximal type. */ # ifdef _HAVE_LONGLONG_UINT64_T # define INTMAX_C(c) c ## L # define UINTMAX_C(c) c ## UL # else # define INTMAX_C(c) c ## LL # define UINTMAX_C(c) c ## ULL # endif /* literalnumbers */ #endif #endif /* These limits are merily those of a two complement byte-oriented system */ /* Minimum of signed integral types. */ # define INT8_MIN (-128) # define INT16_MIN (-32767-1) # define INT32_MIN (-2147483647-1) # define INT64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of signed integral types. */ # define INT8_MAX (127) # define INT16_MAX (32767) # define INT32_MAX (2147483647) # define INT64_MAX (__INT64_C(9223372036854775807)) /* Maximum of unsigned integral types. */ # define UINT8_MAX (255) # define UINT16_MAX (65535) # define UINT32_MAX (4294967295U) # define UINT64_MAX (__UINT64_C(18446744073709551615)) /* Minimum of signed integral types having a minimum size. */ # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST64_MIN INT64_MIN /* Maximum of signed integral types having a minimum size. */ # define INT_LEAST8_MAX INT8_MAX # define INT_LEAST16_MAX INT16_MAX # define INT_LEAST32_MAX INT32_MAX # define INT_LEAST64_MAX INT64_MAX /* Maximum of unsigned integral types having a minimum size. */ # define UINT_LEAST8_MAX UINT8_MAX # define UINT_LEAST16_MAX UINT16_MAX # define UINT_LEAST32_MAX UINT32_MAX # define UINT_LEAST64_MAX UINT64_MAX /* shortcircuit*/ #endif /* once */ #endif #endif STDINT_EOF fi if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then AC_MSG_NOTICE([$ac_stdint_h is unchanged]) else ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` AS_MKDIR_P(["$ac_dir"]) rm -f $ac_stdint_h mv $ac_stdint $ac_stdint_h fi ],[# variables for create stdint.h replacement PACKAGE="$PACKAGE" VERSION="$VERSION" ac_stdint_h="$ac_stdint_h" _ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) ac_cv_stdint_message="$ac_cv_stdint_message" ac_cv_header_stdint_t="$ac_cv_header_stdint_t" ac_cv_header_stdint_x="$ac_cv_header_stdint_x" ac_cv_header_stdint_o="$ac_cv_header_stdint_o" ac_cv_header_stdint_u="$ac_cv_header_stdint_u" ac_cv_type_uint64_t="$ac_cv_type_uint64_t" ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" ac_cv_char_data_model="$ac_cv_char_data_model" ac_cv_long_data_model="$ac_cv_long_data_model" ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" ac_cv_type_intmax_t="$ac_cv_type_intmax_t" ]) ]) exif-exif-0_6_22-release/po/000077500000000000000000000000001366114026400156665ustar00rootroot00000000000000exif-exif-0_6_22-release/po/.gitignore000066400000000000000000000003441366114026400176570ustar00rootroot00000000000000ChangeLog *.gmo *.pot Makevars Makevars.template Makefile Makefile.in Makefile.in.in POTFILES Rules-quot boldquot.sed en@boldquot.header en@quot.header insert-header.sin quot.sed remove-potcdate.sed remove-potcdate.sin stamp-po exif-exif-0_6_22-release/po/POTFILES.in000066400000000000000000000000571366114026400174450ustar00rootroot00000000000000exif/actions.c exif/main.c libjpeg/jpeg-data.c exif-exif-0_6_22-release/po/ast.po000066400000000000000000000172731366114026400170270ustar00rootroot00000000000000# Asturian translation for exif # Copyright (C) 2012 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # enolp , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: exif-0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2019-04-10 12:38+0200\n" "Last-Translator: enolp \n" "Language-Team: Asturian \n" "Language: ast\n" "X-Bugs: Report translation errors to the Language-Team address.\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 18.12.3\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nun hai abonda memoria" #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "¡Entá nun se sofita l'afitar un valor pa esta etiqueta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Especificáronse perpocos componentes (precísense %d, alcontráronse %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Esperábase un valor numbéricu\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Fallu internu. Contauta con <%s>, por favor." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "¡Entá nun s'implementó!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Alvertencia: ¡Especificáronse milenta componentes!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Milenta datos EXIF (%i bytes). Namái se permiten %i bytes." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Escribióse'l ficheru «%s»" #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrada EXIF «%s»" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, «%s») " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "esiste nel IFD «%s»:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Amestando la entrada..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "¡L'IFD «%s» nun contién una etiqueta «%s»!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "¡Nun pue abrise «%s» (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nun pue lleese «%s» (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "L'IFD «%s» nun contién la etiqueta «%s»." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "«%s» nun contién la etiqueta «%s»." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "¡«%s» nun contién una miniatura!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "¡Nun pue abrise «%s» pa la escritura (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etiquetes EXIF en «%s»:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Desconozse'l formatu o MakerNote nun esiste.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote nun contién dengún valor.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contién %i valor:\n" msgstr[1] "MakerNote contién %i valores:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Desconozse la etiqueta" #: exif/actions.c:509 msgid "Unknown value" msgstr "Desconozse'l valor" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etiquetes EXIF en «%s» (orde de «%s»)" #: exif/actions.c:539 msgid "Tag" msgstr "Etiqueta" #: exif/actions.c:545 msgid "Value" msgstr "Valor" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Los datos EXIF contienen una miniatura (%i bytes)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "ThumbnailSize\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Amuesa la versión del software" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Amuesa IDs en cuentes de nomes d'etiquetes" #: exif/main.c:198 msgid "Select tag" msgstr "Esbilla la etiqueta" #: exif/main.c:198 msgid "tag" msgstr "etiqueta" #: exif/main.c:200 msgid "Select IFD" msgstr "Esbilla'l IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Llista toles etiquetes EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Amuesa'l conteníu de la etiqueta MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Desanicia la etiqueta o IFD" #: exif/main.c:208 msgid "Show description of tag" msgstr "Amuesa la descripción de la etiqueta" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Estrái la miniatura" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Desanicia la miniatura" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Inxerta FICHERU como miniatura" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FICHERU" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Nun igua les etiquetes esistentes nos ficheros" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Escribe datos a FICHERU" #: exif/main.c:220 msgid "Value of tag" msgstr "Valor de la etiqueta" #: exif/main.c:220 msgid "STRING" msgstr "CADENA" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Crea los datos EXIF si nun esisten" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Amuesa la salida nun formatu llexible por máquines (llendáu per tabuladores)" #: exif/main.c:227 msgid "Width of output" msgstr "Anchor de la salida" #: exif/main.c:227 msgid "WIDTH" msgstr "ANCHOR" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Amuesa la salida en formatu XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Amuesa mensaxes de depuración" #: exif/main.c:238 msgid "Help options:" msgstr "Opciones d'ayuda:" #: exif/main.c:239 msgid "Show this help message" msgstr "Amuesa esti mensaxe d'ayuda" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Amuesa un mensaxe breve d'usu" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPCIÓN...] ficheru" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "El IFD «%s» nun ye válidu. Los IFDs válidos son «0», «1», «EXIF», «GPS», ya «Interoperability»." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "¡La etiqueta «%s» nun ye válida!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "!Precises especificar una etiqueta¡" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "¡Precises especificar una IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Etiqueta «%s»" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, «%s»): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Especifica'l ficheru d'entrada o --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "¡«%s» nun ye lleible o nun contién datos EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "El formatu XML nun ta disponible pa Maker Notes" exif-exif-0_6_22-release/po/cs.po000066400000000000000000000172771366114026400166510ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 2011 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Marek Černocký , 2011. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-11-25 11:41+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "Language: cs\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nedostatek paměti." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Nastavení hodnoty u tohoto štítku není podporováno!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Zadáno příliš málo součástí (zapotřebí %d, nalezeno %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Očekávána číselná hodnota\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Interní chyba. Kontaktujte prosím <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Zatím není implementováno!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Varování: Zadáno příliš mnoho součástí!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Příliš mnoho dat EXIF (%i bajtů). Povoleno je jen %i bajtů." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Zapsán soubor „%s“." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Záznam EXIF „%s“ " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, „%s“) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existuje v IFD „%s“:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Přidává se záznam…" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD „%s“ neobsahuje štítek „%s“!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Nelze otevřít „%s“ (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nelze číst „%s“ (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD „%s“ neobsahuje štítek „%s“." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "„%s“ neobsahuje štítek „%s“." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "„%s“ neobsahuje náhled!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Nelze otevřít „%s“ pro zápis (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Štítky EXIF v „%s“:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Neznámý formát nebo neexistující Popisná poznámka.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Popisná poznámka neobsahuje žádnou hodnotu.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "Popisná poznámka obsahuje %i hodnotu:\n" msgstr[1] "Popisná poznámka obsahuje %i hodnoty:\n" msgstr[2] "Popisná poznámka obsahuje %i hodnot:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Neznámý štítek" #: exif/actions.c:506 msgid "Unknown value" msgstr "Neznámá hodnota" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Štítky EXIF v „%s“ (pořadí bajtů „%s“):" #: exif/actions.c:536 msgid "Tag" msgstr "Štítek" #: exif/actions.c:542 msgid "Value" msgstr "Hodnota" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Data EXIF obsahují náhled (%i bajtů)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Velikost náhledu\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Zobrazit verzi softwaru" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Místo názvů štítků zobrazovat jejich ID" #: exif/main.c:200 msgid "Select tag" msgstr "Vybrat štítek" #: exif/main.c:200 msgid "tag" msgstr "štítek" #: exif/main.c:202 msgid "Select IFD" msgstr "Vybrat IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Vypsat všechny štítky EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Zobrazit obsah štítku Popisná poznámka" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Odstranit štítek nebo IFD" #: exif/main.c:210 msgid "Show description of tag" msgstr "Zobrazit popis štítku" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Vybalit náhled" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Odstranit náhled" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Vložit SOUBOR jako náhled" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "SOUBOR" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Neopravovat stávající štítky v souboru" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Zapsat data do SOUBORu" #: exif/main.c:222 msgid "Value of tag" msgstr "Hodnota štítku" #: exif/main.c:222 msgid "STRING" msgstr "ŘETĚZEC" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Vytvořit data EXIF, pokud neexistují" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Výstup ve strojově čitelném (oddělovaném tabulátory) formátu" #: exif/main.c:229 msgid "Width of output" msgstr "Šířka výstupu" #: exif/main.c:229 msgid "WIDTH" msgstr "ŠÍŘKA" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Výstup ve formátu XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Zobrazovat ladicí zprávy" #: exif/main.c:240 msgid "Help options:" msgstr "Přepínače nápovědy:" #: exif/main.c:241 msgid "Show this help message" msgstr "Zobrazit tuto nápovědu" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Zobrazit stručné informace o používání" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[PŘEPÍNAČE…] soubor" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Neplatný IFD „%s“. Platné IFD jsou „0“, „1“, „EXIF“, „GPS“ a „Interoperability“." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Neplatný štítek „%s“!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Musíte zadat štítek!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Musíte zadat IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Štítek „%s“" #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, „%s“): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Zadejte vstupní soubor nebo --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "„%s“ nelze přečíst nebo neobsahuje data EXIF!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Formát XML není k dispozici pro Popisné poznámky" exif-exif-0_6_22-release/po/da.po000066400000000000000000000201231366114026400166100ustar00rootroot00000000000000# Danish translation of exif. # Copyright (C) 2010 exif og nedenstående oversættere. # This file is distributed under the same license as the exif package. # Joe Hansen , 2009, 2010. # # Konventioner # har bevaret ' ' som de fremgår af engelsk tekst (kunne også være »« eller "") # entry -> post # tag -> mærke # thumbnail -> miniature (en miniature; Xfce har denne oversættelse) # msgid "" msgstr "" "Project-Id-Version: exif-0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-19 00:00+0000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Ikke nok hukommelse." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Indstilling af en værdi for dette mærke er ikke understøttet!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "For få komponenter angivet (skal bruge %d, fandt %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Forventede en numerisk værdi\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Intern fejl. Kontakt venligst <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ikke implementeret endnu!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Advarsel; for mange komponenter angivet!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "For megen EXIF-data (%i byte). Kun %i byte er tilladt." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Skrev fil '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF-post '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "eksisterer i IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Tilføjer post..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' indeholder ikke et mærke '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Kunne ikke åbne '%s' (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Kunne ikke læse '%s' (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' indeholder ikke mærke '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' indeholder ikke mærke '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' indeholder ikke en miniature!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Ikke ikke åbne '%s' til skrivning (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-mærker i '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Ukendt format eller ikkeeksisterende MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote indeholder ingen værdier.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote indeholder %i værdi:\n" msgstr[1] "MakerNote indeholder %i værdier:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Ukendt mærke" #: exif/actions.c:506 msgid "Unknown value" msgstr "Ukendt værdi" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-mærke i '%s' ('%s' byte orden):" #: exif/actions.c:536 msgid "Tag" msgstr "Mærke" #: exif/actions.c:542 msgid "Value" msgstr "Værdi" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-data indeholder en miniature (%i byte)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "MiniatureStørrelse\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Vis softwareversion" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Vis ID'er i steden for mærkenavne" #: exif/main.c:200 msgid "Select tag" msgstr "Vælg mærke" #: exif/main.c:200 msgid "tag" msgstr "mærke" #: exif/main.c:202 msgid "Select IFD" msgstr "Vælg IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Vis alle EXIF-mærker" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Vis indhold af mærke MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Fjern mærke eller ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Vis beskrivelse af mærke" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Udtræk miniature" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Fjern miniature" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Indæst FIl som miniature" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "FIL" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Ret ikke eksisterende mærker i filer" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Skriv data til FIL" #: exif/main.c:222 msgid "Value of tag" msgstr "Værdi af mærke" #: exif/main.c:222 msgid "STRING" msgstr "STRENG" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Opret EXIF-data hvis de ikke eksisterer" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Uddata i maskinlæsbart format (faneblad afgrænset)" #: exif/main.c:229 msgid "Width of output" msgstr "Bredde på uddata" #: exif/main.c:229 msgid "WIDTH" msgstr "BREDDE" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Uddata i XML-format" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Vis fejlsøgningsbeskeder" #: exif/main.c:240 msgid "Help options:" msgstr "Hjælpindstillinger:" #: exif/main.c:241 msgid "Show this help message" msgstr "Vis denne hjælpebesked" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Vis kort anvendelsesbesked" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[INDSTILLING...] fil" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Ugyldig IFD '%s'. Gyldige IFD'er er '0', '1', 'EXIF', 'GPS', og 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Ugyldig mærke '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Du skal angive et mærke!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Du skal angive en IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Mærke '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Angiv inddatafil eller --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' kan ikke læses eller indeholder ikke EXIF-data!" # http://wiki.photoolsweb.com/index.php?title=EXIF_Maker_Notes # Maker Notes er propritære data som kan tilføjes af producenten. # har ikke kunnet finde et dansk udtryk. #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML-format er ikke tilgængeligt for Maker Notes" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Kunne ikke åbne '%s' (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Kunne ikke læse '%s' (%m)." #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Kunne ikke åbne '%s' til skrivning (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Ukendt MakerNote-format.\n" #~ msgid "Please specify a tag!" #~ msgstr "Vælg venligst et mærke!" exif-exif-0_6_22-release/po/de.po000066400000000000000000000201311366114026400166130ustar00rootroot00000000000000# German translation for exif. # This file is distributed under the same license as the exif package. # Copyright © 2002, 2008, 2009 Free Software Foundation, Inc. # # Lutz Müller , 2002. # Marcus Meissner , 2005, 2008, 2009. # Wolfgang Stöggl , 2011. # Mario Blättermann , 2011. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-10-29 07:36+0200\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "Language: de\n" "X-Bugs: Report translation errors to the Language-Team address.\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" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nicht genügend Speicher." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Das Setzen eines Wertes für diese Markierung wird nicht unterstützt!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Zu wenig Komponenten angegeben (%d benötigt, %d gefunden)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Numerischer Wert wurde erwartet\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Interner Fehler. Bitte nehmen Sie Kontakt mit <%s> auf." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Noch nicht implementiert!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Warnung: Zu viele Komponenten angegeben!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Zu viele EXIF-Daten (%i Bytes). Das Maximum ist %i Bytes." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Datei »%s« wurde geschrieben." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF-Eintrag »%s« " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, »%s«) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existiert in IFD »%s«:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Eintrag wird hinzugefügt …" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD »%s« enthält keine »%s«-Markierung!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "»%s« konnte nicht geöffnet werden (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "»%s« konnte nicht gelesen werden (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD »%s« enthält keine »%s«-Markierung." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "»%s« enthält keine »%s«-Markierung." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "»%s« enthält keine Vorschau!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "»%s« konnte nicht zum Schreiben geöffnet werden (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-Markierungen in »%s«:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Unbekanntes Format oder nicht existierende Anmerkung des Herstellers.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Anmerkung des Herstellers enthält keinen Wert.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "Anmerkung des Herstellers enthält %i Wert:\n" msgstr[1] "Anmerkung des Herstellers enthält %i Werte:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Unbekannte Markierung" #: exif/actions.c:506 msgid "Unknown value" msgstr "Unbekannter Wert" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-Markierungen in »%s« (Byte-Reihenfolge »%s«):" #: exif/actions.c:536 msgid "Tag" msgstr "Markierung" #: exif/actions.c:542 msgid "Value" msgstr "Wert" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-Daten enthalten eine Vorschau (%i Bytes)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Vorschaugröße\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Software-Version anzeigen" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Kennungen (IDs) anstelle der Namen der Markierungen anzeigen" #: exif/main.c:200 msgid "Select tag" msgstr "Markierung wählen" #: exif/main.c:200 msgid "tag" msgstr "Markierung" #: exif/main.c:202 msgid "Select IFD" msgstr "IFD wählen" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Alle EXIF-Markierungen auflisten" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Inhalt der Anmerkung des Herstellers anzeigen" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Markierung oder IFD entfernen" #: exif/main.c:210 msgid "Show description of tag" msgstr "Beschreibung der Markierung anzeigen" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Vorschaubild entpacken" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Vorschaubild entfernen" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "DATEI als Vorschaubild einfügen" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "DATEI" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Vorhandene Markierungen in Dateien nicht korrigieren" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Daten in DATEI schreiben" #: exif/main.c:222 msgid "Value of tag" msgstr "Wert der Markierung" #: exif/main.c:222 msgid "STRING" msgstr "ZEICHENKETTE" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "EXIF-Daten erzeugen, falls noch nicht vorhanden" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "In maschinenlesbarem Format ausgeben (durch Tabulatoren getrennt)" #: exif/main.c:229 msgid "Width of output" msgstr "Breite der Textausgabe" #: exif/main.c:229 msgid "WIDTH" msgstr "BREITE" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Ausgabe in einem XML-Format" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Meldungen der Fehlerdiagnose anzeigen" #: exif/main.c:240 msgid "Help options:" msgstr "Hilfeoptionen:" #: exif/main.c:241 msgid "Show this help message" msgstr "Diese Hilfemeldung anzeigen" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Kurze Hilfemeldung anzeigen" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPTION...] Datei" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Unzulässiger IFD »%s«. Zulässige IFDs sind »0«, »1«, »EXIF«, »GPS« und »Interoperability«." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Ungültige Markierung »%s«!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Bitte geben Sie eine Markierung an!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Bitte geben Sie einen IFD an!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Markierung »%s« " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, »%s«): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Eingabedatei oder --create-exif angeben" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "»%s« ist nicht lesbar oder enthält keine EXIF-Daten!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Für Anmerkungen ist das XML-Format nicht verfügbar" exif-exif-0_6_22-release/po/eo.po000066400000000000000000000166221366114026400166400ustar00rootroot00000000000000# Esperanto translation # Copyright (C) 2011 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Felipe Castro , 2011. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-03-02 20:15-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" "Language: eo\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Ne sufiĉe da memoro." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Agordo de valoro por tiu ĉi etikedo ne estas subtenata!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Tro malmultaj elementoj indikitaj (bezonate %d, trovite %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Cifera valoro atendate\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Interna eraro. Bonvolu kontakti <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ankoraŭ ne realigita!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Averto; Tro multaj elementoj indikitaj!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Tro multe da datumaro EXIF (%i bajtoj). Nur %i bajtoj estas permesate." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Ni skribis dosieron '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Enigaĵo EXIF '%s'" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "ekzistas en IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Aldonado de enigaĵo..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' ne enhavas etikedon '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Ni ne povis malfermi '%s' (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Ni ne povis legi '%s' (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' ne enhavas la etikedon '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' ne enhavas la etikedon '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' ne enhavas miniaturon!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Ni ne povis malfermi '%s' por skribi (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Etikedoj EXIF en '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Nekonata formo aŭ neekzistanta MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote enhavas neniun valoron.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote enhavas %i valoron:\n" msgstr[1] "MakerNote enhavas %i valorojn:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Nekonata Etikedo" #: exif/actions.c:506 msgid "Unknown value" msgstr "Nekonata valoro" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etikedoj EXIF en '%s' ('%s' bajt-ordo):" #: exif/actions.c:536 msgid "Tag" msgstr "Etikedo" #: exif/actions.c:542 msgid "Value" msgstr "Valoro" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Datumaro EXIF enhavas miniaturon (%i bajtoj)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "MiniaturGrando\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Montrigi program-version" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Montri ID anstataŭ etiked-nomojn" #: exif/main.c:200 msgid "Select tag" msgstr "Elekti etikedon" #: exif/main.c:200 msgid "tag" msgstr "etikedo" #: exif/main.c:202 msgid "Select IFD" msgstr "Elekti IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Listigi ĉiujn etikedojn EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Montri enhavon de etikedo MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Forigi etikedon aŭ ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Montri priskribo de etikedo" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Elpreni miniaturon " #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Forigi miniaturon" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Enmeti DOSIERON kiel miniaturon" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "DOSIERON" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Ne ripari ekzistantajn etikedojn en dosieroj" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Skribi datumaron al DOSIERO" #: exif/main.c:222 msgid "Value of tag" msgstr "Valoro de etikedo" #: exif/main.c:222 msgid "STRING" msgstr "ĈENO" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Krei datumaron EXIF se ne ekzistanta" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Eligi laŭ maŝin-legebla (tab-apartita) formo" #: exif/main.c:229 msgid "Width of output" msgstr "Larĝo de eligo" #: exif/main.c:229 msgid "WIDTH" msgstr "LARĜO" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Eligo laŭ formo XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Montri rafinigajn mesaĝojn" #: exif/main.c:240 msgid "Help options:" msgstr "Help-elektebloj:" #: exif/main.c:241 msgid "Show this help message" msgstr "Montri tiun ĉi help-mesaĝon" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Montrigi resuman uzad-mesaĝon" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[ELEKTEBLO...] dosiero" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Malvalida IFD '%s'. Validaj IFD estas '0', '1', 'EXIF', 'GPS' kaj 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Malvalida etikedo '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Vi devas indiki etikedon!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Vi devas indiki IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Etikedo '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Indiku enig-dosieron aŭ --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' ne estas legebla aŭ ne enhavas datumaron EXIF!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Formo XML ne estas disponebla por MakerNote" exif-exif-0_6_22-release/po/es.po000066400000000000000000000233131366114026400166370ustar00rootroot00000000000000# Spanish translation for exif. # This file is distributed under the same license as the exif package. # Copyright © 2002-2013 Free Software Foundation, Inc. # Fabian Mandelbaum , 2002 # Antonio Ceballos , 2013 # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2013-11-24 18:52+0200\n" "Last-Translator: Antonio Ceballos \n" "Language-Team: Spanish \n" "Language: es\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "No hay memoria suficiente." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "¡No se puede asignar valor a esta etiqueta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Se ha especificado un número insuficiente de componentes (%d necesarios, %d encontrados).\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Se requiere un valor numérico.\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Error interno. Por favor, contacte con <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "¡Todavía no está implementado!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "¡Atención: se ha especificado un número insuficiente de componentes!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Demasiados datos EXIF (%i bytes). Solo se admiten %i bytes." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Se escribió el fichero '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrada EXIF '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existe en IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Añadiendo entrada..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' no contiene una etiqueta '%s'." #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "¡No se pudo abrir '%s' (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "No se pudo leer '%s' (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' no contiene la etiqueta '%s'." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' no contiene la etiqueta '%s'." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "¡'%s' no contiene una miniatura!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "¡No se pudo abrir '%s' para escritura (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etiquetas EXIF en '%s':" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formato desconocido o NotaAutor inexistente.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "NotaAutor no contiene ningún valor.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "NotaAutor contiene %i valor:\n" msgstr[1] "NotaAutor contiene %i valores:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Etiqueta desconocida" #: exif/actions.c:509 msgid "Unknown value" msgstr "Valor desconocido" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etiquetas EXIF en '%s' ('%s' es el orden de bytes):" #: exif/actions.c:539 msgid "Tag" msgstr "Etiqueta" #: exif/actions.c:545 msgid "Value" msgstr "Valor" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Los datos EXIF contienen una miniatura (%i bytes)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "TamañoMiniatura\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Mostrar la versión del software" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Mostrar IDs en vez de nombres de etiqueta" #: exif/main.c:198 msgid "Select tag" msgstr "Seleccionar etiqueta" #: exif/main.c:198 msgid "tag" msgstr "etiqueta" #: exif/main.c:200 msgid "Select IFD" msgstr "Seleccionar IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Listar todas las etiquetas EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Mostrar el contenido de AutorNota de la etiqueta" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Eliminar etiqueta o «ifd»" #: exif/main.c:208 msgid "Show description of tag" msgstr "Mostrar descripción de la etiqueta" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Extraer miniatura" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Eliminar miniatura" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Insertar FICHERO como miniatura" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FICHERO" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "No corregir etiquetas existentes en los ficheros" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Escribir datos en FICHERO" #: exif/main.c:220 msgid "Value of tag" msgstr "Valor de la etiqueta" #: exif/main.c:220 msgid "STRING" msgstr "CADENA" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Crear datos EXIF si no existen" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Salida en formato legible para una máquina (delimitado por tabuladores)" #: exif/main.c:227 msgid "Width of output" msgstr "Anchura de la salida" #: exif/main.c:227 msgid "WIDTH" msgstr "ANCHURA" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Salida en un formato XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Mostrar mensajes de depuración" #: exif/main.c:238 msgid "Help options:" msgstr "Opciones de ayuda:" #: exif/main.c:239 msgid "Show this help message" msgstr "Mostrar este mensaje de ayuda" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Mostrar resumen del modo de empleo" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPCIÓN...] fichero" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD '%s' no válido. Los IFD válidos son '0', '1', 'EXIF', 'GPS', e 'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "¡Etiqueta '%s' no válida!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "¡Debe especificar una etiqueta!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "¡Debe especificar un IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Etiqueta '%s' " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Especificar fichero de entrada o --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "¡'%s' es ilegible o no contiene datos EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "El formato XML no está disponible para Notas del Autor" #~ msgid "Please specify a tag!" #~ msgstr "¡Especifique una etiqueta por favor!" #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "¡No se pudo abrir '%s' para escribir (%m)!" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "¡No se pudo abrir '%s' (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "No se pudo leer '%s' (%m)." #~ msgid "EXIF entry '%s' (0x%x, '%s') exists in IFD '%s':" #~ msgstr "La entrada EXIF '%s' (0x%x, '%s') existe en IFD '%s':" #~ msgid "Could not parse JPEG file '%s'." #~ msgstr "No se pudo analizar archivo JPEG '%s'." #~ msgid "Could not allocate %i byte(s)." #~ msgstr "No se pudo asignar %i byte(s)." #, fuzzy #~ msgid "EXIF MakerNote tags in '%s' ('%s' byte order):" #~ msgstr "Etiquetas EXIF en '%s' ('%s' es el orden de bytes):" #, fuzzy #~ msgid "MakerNote entry '%s' (0x%x, '%s'):" #~ msgstr "Etiqueta '%s' (0x%04x, '%s'): %s" #, fuzzy #~ msgid "Select MakerNote tag" #~ msgstr "Seleccionar etiqueta" #, fuzzy #~ msgid "ntag" #~ msgstr "etiqueta" #, fuzzy #~ msgid "List all EXIF MakerNote tags" #~ msgstr "Listar todas las etiquetas EXIF" #, fuzzy #~ msgid "'%s' does not contain EXIF MakerNote data!" #~ msgstr "¡'%s' no contiene datos EXIF!" #, fuzzy #~ msgid "Invalid MakerNote tag '%s'!" #~ msgstr "¡Etiqueta '%s' no válida!" #, fuzzy #~ msgid "Please specify a MakerNote tag!" #~ msgstr "¡Especifique una etiqueta por favor!" #~ msgid "Could not parse data of tag '%s'." #~ msgstr "No se pueden analizar los datos de la etiqueta '%s'." #~ msgid "Tag '%s' does not contain known information." #~ msgstr "La etiqueta '%s' no contiene información conocida." #~ msgid "Tag '%s' contains one piece of information:" #~ msgstr "La etiqueta '%s' contiene información:" #~ msgid "Tag '%s' contains the following information:" #~ msgstr "La etiqueta '%s' contiene la información siguiente:" #~ msgid " Format: '%s'" #~ msgstr " Formato: '%s'" #~ msgid " Components: %i" #~ msgstr " Componentes: %i" #~ msgid " Value: '%s'" #~ msgstr " Valor: '%s'" #~ msgid " Data:" #~ msgstr " Datos:" exif-exif-0_6_22-release/po/fi.po000066400000000000000000000177261366114026400166410ustar00rootroot00000000000000# Finnish messages for exif. # Copyright © 2009 Free Software Foundation, Inc. # Copyright © 2009 Lutz Müller and others # This file is distributed under the same license as the exif package. # Jorma Karvonen , 2009-2010. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-16 21:20+0200\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Ei kylliksi muistia." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Arvon asettamista tähän tunnisteeseen ei tueta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Liian harvoja komponentteja määritelty (tarvitsee %d, löytyi %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Numeerista arvoa odotettiin\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Sisäinen virhe: Ota yhteys osoitteeseen <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ei vielä toteutettu!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Varoitus: Liian monia komponentteja määritelty!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Liian paljon EXIF-dataa (%i tavua). Vain %i tavua sallitaan." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Kirjoitettiin tiedosto ’%s’." # Kolme seuraavaa muodostaa yhden lauseen #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF-tulokohta '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, ’%s’) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "on olemassa IFD:ssä ’%s’:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Lisätään tulokohta..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD ’%s’ ei sisällä tunnistetta ’%s’!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Ei voitu avata pienoiskuvaa ’%s’ (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Ei voitu lukea pienoiskuvaa ’%s’ (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD ’%s’ ei sisällä tunnistetta ’%s’." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "’%s’-parametri ei sisällä tunnistetta ’%s’." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "’%s’-parametri ei sisällä pienoiskuvaa!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Ei voitu avata tiedostoa ’%s’ virheilmoituksen (%s) kirjoittamista varten!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-tunnisteet parametrissa ’%s’:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Tuntematon muoto tai ei-olemassaoleva MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote ei sisällä mitään arvoa.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote sisältää %i arvon:\n" msgstr[1] "MakerNote sisältää %i arvoa:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Tuntematon tunniste" #: exif/actions.c:506 msgid "Unknown value" msgstr "Tuntematon arvo" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-tunnisteet parametrissa ’%s’ (’%s’ tavujärjestys):" #: exif/actions.c:536 msgid "Tag" msgstr "Tunniste" #: exif/actions.c:542 msgid "Value" msgstr "Arvo" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-data sisältää pienoiskuvan (%i tavua)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "PienoiskuvaKoko\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Näytä ohjelmiston versio" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Näytä tunnisteet tunnistenimien sijasta" #: exif/main.c:200 msgid "Select tag" msgstr "Valitse tunniste" #: exif/main.c:200 msgid "tag" msgstr "tunniste" #: exif/main.c:202 msgid "Select IFD" msgstr "Valitse IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Luettele kaikki EXIF-tunnisteet" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Näytä MakerNote-tunnisteen sisältö" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Poista tunniste tai ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Näytä tunnisteen kuvaus" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Poimi pienoiskuva" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Poista pienoiskuva" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Lisää TIEDOSTO pienoiskuvana" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "TIEDOSTO" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Älä korjaa olemassa olevia tunnisteita tiedostoissa" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Kirjoita data TIEDOSTOon" #: exif/main.c:222 msgid "Value of tag" msgstr "Tunnisteen arvo" #: exif/main.c:222 msgid "STRING" msgstr "MERKKIJONO" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Luo EXIF-dataa, jos sitä ei ole olemassa" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Tulosta koneluettavassa (sarkaimella rajoitetussa) muodossa" #: exif/main.c:229 msgid "Width of output" msgstr "Tulosteen leveys" #: exif/main.c:229 msgid "WIDTH" msgstr "LEVEYS" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Tulosta XML-muodossa" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Näytä vianjäljitystiedot" #: exif/main.c:240 msgid "Help options:" msgstr "Opastevalitsimet:" #: exif/main.c:241 msgid "Show this help message" msgstr "Näytä tämä opastesanoma" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Näytä lyhyt käyttösanoma" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[VALITSIN...] tiedosto" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Virheellinen IFD ’%s’. Lailliset IFD-arvot ovat ’0’, ’1’, ’EXIF’, ’GPS’, ja ’Interoperability’." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Virheellinen tunniste ’%s’!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Sinun tarvitsee määritellä tunniste!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Sinun tarvitsee määritellä IFD!" # Kolme seuraavaa kuuluvat samaan lauseeseen #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Tunniste ’%s’ " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, ’%s’): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Määritä syötetiedosto tai valitsin --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "’%s’ ei ole luettava tai ei sisällä EXIF-dataa!" # Tässä oli ilmeisesti aiemmin mainittujenMakerNote-tunnisteiden monikko. #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML-muoto ei ole saatavissa MakerNote-tunnisteille" exif-exif-0_6_22-release/po/fr.po000066400000000000000000000223511366114026400166400ustar00rootroot00000000000000# French translation for exif. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the exif package. # # Arnaud Launay , 2002. # Frédéric Marchal , 2012. msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2012-07-26 09:31+0200\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Pas assez de mémoire." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "L'assignation d'une valeur à ce descripteur n'est pas supportée !" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Pas assez de composants spécifiés (%d requis, %d trouvés)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Valeur numérique attendue\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Erreur interne. Veuillez contacter <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Pas encore implémenté !" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Attention: Trop de composants spécifiés !" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Trop de données EXIF (%i octets). Seuls %i octets sont autorisés." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Écrit le fichier « %s »." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrée EXIF « %s » " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, « %s ») " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existe dans IFD « %s »:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Ajout de l'entrée..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "L'IFD « %s » ne contient pas de marqueur « %s » !" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Ne peut ouvrir « %s » (%s) !" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Ne peut lire « %s » (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "L'IFD « %s » ne contient pas de marqueur « %s »." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "« %s » ne contient pas de marqueur « %s »." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "« %s » ne contient pas de vignette !" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Ne peut ouvrir « %s » pour l'écriture (%s) !" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Marqueurs EXIF dans « %s » :" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Format inconnu ou MakerNote inexistante.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Aucune valeur dans la MakerNote.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contient %i valeur:\n" msgstr[1] "MakerNote contient %i valeurs:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Marqueur inconnu" #: exif/actions.c:506 msgid "Unknown value" msgstr "Valeur inconnue" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Marqueurs EXIF dans « %s » (ordre des octets « %s ») :" #: exif/actions.c:536 msgid "Tag" msgstr "Marqueur" #: exif/actions.c:542 msgid "Value" msgstr "Valeur" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Les données EXIF contiennent une vignette (%i octets)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "ThumbnailSize\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Version du logiciel d'affichage" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Montre les ID plutôt que les noms des marqueurs" #: exif/main.c:200 msgid "Select tag" msgstr "Sélection du marqueur" #: exif/main.c:200 msgid "tag" msgstr "marqueur" #: exif/main.c:202 msgid "Select IFD" msgstr "Sélection de l'IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Liste tous les marqueurs EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Afficher le contenu du marqueur MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Supprime le marqueur ou l'ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Montre la description du marqueur" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Extrait la vignette" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Supprime la vignette" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Insère le FICHIER comme vignette" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "FICHIER" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Ne pas corriger les marqueurs existants dans les fichiers" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Écrire les données dans FICHIER" #: exif/main.c:222 msgid "Value of tag" msgstr "Valeur du marqueur" #: exif/main.c:222 msgid "STRING" msgstr "CHAÎNE" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Créer la donnée EXIF si elle n'existe pas" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Sortie dans un format lisible par une machine (délimité pas des tab)" #: exif/main.c:229 msgid "Width of output" msgstr "Largeur de la sortie" #: exif/main.c:229 msgid "WIDTH" msgstr "LARGEUR" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Sortie au format XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Montrer les messages de déboguage" #: exif/main.c:240 msgid "Help options:" msgstr "Options d'aide :" #: exif/main.c:241 msgid "Show this help message" msgstr "Montrer ce message d'aide" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Afficher une brève note d'utilisation" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPTION...] fichier" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD « %s » invalide. Les IFDs valides sont « 0 », « 1 », « EXIF », « GPS », et « Interoperability »." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Marqueur « %s » invalide !" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Vous devez spécifier un marqueur !" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Vous devez spécifier un IFD !" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Marqueur « %s » " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, « %s »): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Spécifiez le fichier d'entrée ou --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "« %s » est illisible ou ne contient pas de données EXIF !" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Le format XML n'est pas disponible pour les notes du créateur" #~ msgid "Please specify a tag!" #~ msgstr "Veuillez spécifier un marqueur !" #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Ne peut ouvrir '%s' pour l'écriture (%m) !" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Ne peut ouvrir '%s' (%m) !" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Ne peut lire '%s' (%m)." #~ msgid "EXIF entry '%s' (0x%x, '%s') exists in IFD '%s':" #~ msgstr "L'entrée EXIF '%s' (0x%x, '%s') existe dans l'IFD '%s' :" #~ msgid "Could not parse JPEG file '%s'." #~ msgstr "Ne peut parcourir le fichier JPEG '%s'." #~ msgid "Could not allocate %i byte(s)." #~ msgstr "Ne peut allouer %i octet(s)." #~ msgid "EXIF MakerNote tags in '%s' ('%s' byte order):" #~ msgstr "Marqueurs EXIF MakerNote dans '%s' (ordre des octets '%s') :" #~ msgid "MakerNote entry '%s' (0x%x, '%s'):" #~ msgstr "Entrée MakerNote '%s' (0x%x, '%s') :" #~ msgid "Select MakerNote tag" #~ msgstr "Sélection du marqueur MakerNote" #~ msgid "ntag" #~ msgstr "ntag" #~ msgid "List all EXIF MakerNote tags" #~ msgstr "Liste tous les marqueurs EXIF MakerNote" #~ msgid "'%s' does not contain EXIF MakerNote data!" #~ msgstr "'%s' ne contient pas de données EXIF MakerNote !" #~ msgid "Invalid MakerNote tag '%s'!" #~ msgstr "Marqueur MakerNote '%s' invalide !" #~ msgid "Please specify a MakerNote tag!" #~ msgstr "Veuillez spécifier un marqueur MakerNote !" exif-exif-0_6_22-release/po/fur.po000066400000000000000000000167771366114026400170440ustar00rootroot00000000000000# FRIULIAN TRANSLATION OF EXIF-0.6.21 # Copyright (C) 2016 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Fabio Tomat , 2016. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2016-12-08 23:05+0100\n" "Last-Translator: Fabio Tomat \n" "Language-Team: Friulian \n" "Language: fur\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "No vonde memorie." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Il meti un valôr par cheste etichete nol è supuartât!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Masse pôcs components specificâts (necessaris %d, cjatâts %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Si spietave un valôr numeric\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Erôr interni. Contatâ <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "No ancjemò implementât!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Atenzion: Masse components specificâts!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Masse dâts EXIF (%i byte). Nome %i byte a son permetûts." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Il file '%s' al è stât scrit." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Vôs EXIF '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "al esist in IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Daûr a zontâ la vôs..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' nol conten une etichete '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Impussibil vierzi '%s' (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Impussibil lei '%s' (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' nol conten une etichete '%s'." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' nol conten une etichete '%s'." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' nol conten une miniature!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Impussibil vierzi '%s' pe scriture (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etichetis EXIF in '%s':" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formât no cognossût o MakerNote inesistent.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote nol conten nissun valôr.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote al conten %i valôr:\n" msgstr[1] "MakerNote al conten %i valôrs:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Etichete no cognossude" #: exif/actions.c:509 msgid "Unknown value" msgstr "Valôr no cognossût" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etichetis EXIF in '%s' (ordenât par byte '%s'):" #: exif/actions.c:539 msgid "Tag" msgstr "Etichete" #: exif/actions.c:545 msgid "Value" msgstr "Valôr" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Il dât EXIF al conten une miniature (%i byte)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "DimensionMiniature\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Mostre la version dal software" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Mostre i ID invezit dai nons des etichetis" #: exif/main.c:198 msgid "Select tag" msgstr "Selezione etichete" #: exif/main.c:198 msgid "tag" msgstr "etichete" #: exif/main.c:200 msgid "Select IFD" msgstr "Selezione IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Liste dutis lis etichetis EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Mostre contignûts di MakerNote de etichete" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Gjave etichete o ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Mostre descrizion de etichete" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Tire fûr miniature" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Gjave miniature" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Inserìs il FILE come miniature" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FILE" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "No stâ justâ lis etichetis esistentis intai file" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Scrîf i dâts tal FILE" #: exif/main.c:220 msgid "Value of tag" msgstr "Valôr de etichete" #: exif/main.c:220 msgid "STRING" msgstr "STRINGHE" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Cree i dâts EXIF se a mancjin" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Output in formât machine (delimitât di tabuladôr)" #: exif/main.c:227 msgid "Width of output" msgstr "Largjece dal output" #: exif/main.c:227 msgid "WIDTH" msgstr "LARGJECE" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Output intun formât XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Mostre messaçs di debug" #: exif/main.c:238 msgid "Help options:" msgstr "Opzions di jutori:" #: exif/main.c:239 msgid "Show this help message" msgstr "Mostre chest messaç di aiût" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Mostre un curt messaç di ûs" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPZION...] file" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD '%s' no valit. I IFD valits a son '0', '1', 'EXIF', 'GPS' e 'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Etichete '%s' no valide!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Tu scugnis specificâ une etichete!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Tu scugnis specificâ un IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Etichete '%s' " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Specificâ il file di input o --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' nol è leibil o nol à dâts EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Il formât XML nol è disponibil par Maker Notes" exif-exif-0_6_22-release/po/gl.po000066400000000000000000000176261366114026400166440ustar00rootroot00000000000000# Galician translations for exif package. # Copyright (C) 2010 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # fran , 2010. # Fran Diéguez , 2010. # Leandro Regueiro , 2014. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://www.trasno.net # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2014-05-10 19:30+0100\n" "Last-Translator: Leandro Regueiro \n" "Language-Team: Galician \n" "Language: gl\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Non hai memoria dabondo." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Non se admite a configuración do valor para esta etiqueta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Especificáronse poucos compoñentes (precisábanse %d, atopáronse %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Agardábase un valor numérico\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Erro interno. Contacte con <%s>" #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Aínda non implementado!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Aviso: especificáronse demasiados compoñentes!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Demasiados datos EXIF (%i bytes). Só se permiten %i bytes." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Escribiuse o ficheiro «%s»." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrada EXIF «%s»." #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existen en IFD «%s»:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Engadindo entrada..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD «%s» non contén unha etiqueta «%s»!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Non foi posíbel abrir «%s» (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Non foi posíbel ler «%s» (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "O IFD «%s» non contén a etiqueta «%s»." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "«%s» non contén a etiqueta «%s»." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "«%s» non contén unha miniatura!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Non foi posíbel abrir «%s» para escritura (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etiquetas EXIF en «%s»:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formato descoñecido ou MakerNote inexistente.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote non contén ningún valor.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contén %i valor:\n" msgstr[1] "MakerNote contén %i valores:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Etiqueta descoñecida" #: exif/actions.c:509 msgid "Unknown value" msgstr "Valor descoñecido" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etiquetas EXIF en «%s» («%s» orde de bytes)" #: exif/actions.c:539 msgid "Tag" msgstr "Etiqueta" #: exif/actions.c:545 msgid "Value" msgstr "Valor" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Os datos EXIF conteñen unha miniatura (%i bytes)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Tamañominiatura\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Mostrar a versión do software" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Mostrar os ID no lugar dos nomes das etiquetas" #: exif/main.c:198 msgid "Select tag" msgstr "Seleccionar etiqueta" #: exif/main.c:198 msgid "tag" msgstr "etiqueta" #: exif/main.c:200 msgid "Select IFD" msgstr "Seleccionar IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Lista todas as etiquetas EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Mostra os contidos da etiqueta MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Eliminar a etiqueta ou ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Mostra a definición da etiqueta" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Extrae a miniatura" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Elimina a miniatura" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Insire o FICHEIRO como miniatura" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FICHEIRO" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Non arranxar as etiquetas existentes nos ficheiros" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Escribir os datos ao FICHEIRO" #: exif/main.c:220 msgid "Value of tag" msgstr "Valor da etieuqta" #: exif/main.c:220 msgid "STRING" msgstr "CADEA" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Crear datos EXIF se non existen" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Imprimir nun formato lexíbel polo computador (delimitado por tabulacións)" #: exif/main.c:227 msgid "Width of output" msgstr "Ancho da saída" #: exif/main.c:227 msgid "WIDTH" msgstr "ANCHO" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Imprime en formato XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Mostrar as mensaxes de depuración" #: exif/main.c:238 msgid "Help options:" msgstr "Opcións de axuda:" #: exif/main.c:239 msgid "Show this help message" msgstr "Mostrar esta mensaxe de axuda" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Mostra unha breve mensaxe de axuda" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPCIÓN...] ficheiro" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD non válido «%s». Os valores válidos de IFD son '0', '1', 'EXIF', 'GPS', e 'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Etiquetas non válidas «%s»!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Debe especificar unha etiqueta!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Debe especificar un IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Etiqueta «%s»!" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, «%s»): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Especifique o ficheiro de entrada ou --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "«%s» non é lexíbel ou non contén datos EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "O formato XML non está dispoñíbel para Maker Notes" exif-exif-0_6_22-release/po/hr.po000066400000000000000000000171611366114026400166450ustar00rootroot00000000000000# Translation of exif to Croatian. # Copyright (C) 2012 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Tomislav Krznar , 2012. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2012-04-16 01:56+0200\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "Language: hr\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nema dovoljno memorije." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Postavljanje vrijednosti ove oznake nije podržano!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Navedeno premalo komponenata (potrebno %d, nađeno %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Očekujem numeričku vrijednost\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Interna greška. Molim kontaktirajte <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Nije još implementirano!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Upozorenje: Navedeno previše komponenata!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Previše EXIF podataka (%i bajtova). Dozvoljeno je samo %i bajtova." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Zapisao datoteku „%s”." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF stavka „%s” " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, „%s”) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "postoji u IFD-u „%s”:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Dodajem stavku..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD „%s” ne sadrži oznaku „%s”!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Ne mogu otvoriti „%s” (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Ne mogu čitati „%s” (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD „%s” ne sadrži oznaku „%s”." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "„%s” ne sadrži oznaku „%s”." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "„%s” ne sadrži sličicu!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Ne mogu otvoriti „%s” za pisanje (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF oznake u „%s”:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Nepoznat oblik ili nepostojeći MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote ne sadrži nikakvu vrijednost.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote sadrži %i vrijednost:\n" msgstr[1] "MakerNote sadrži %i vrijednosti:\n" msgstr[2] "MakerNote sadrži %i vrijednosti:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Nepoznata oznaka" #: exif/actions.c:506 msgid "Unknown value" msgstr "Nepoznata vrijednost" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF oznake u „%s” („%s” redoslijed bajtova):" #: exif/actions.c:536 msgid "Tag" msgstr "Oznaka" #: exif/actions.c:542 msgid "Value" msgstr "Vrijednost" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF podaci sadrže sličicu (%i bajtova)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "VeličinaSličice\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Prikaži inačicu softvera" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Prikaži ID umjesto imena oznaka" #: exif/main.c:200 msgid "Select tag" msgstr "Odaberi oznaku" #: exif/main.c:200 msgid "tag" msgstr "oznaka" #: exif/main.c:202 msgid "Select IFD" msgstr "Odaberi IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Ispiši sve EXIF oznake" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Prikaži sadržaj oznake MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Ukloni oznaku ili ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Prikaži opis oznake" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Izdvoji sličicu" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Ukloni sličicu" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Ubaci DATOTEKU kao sličicu" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "DATOTEKA" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Ne popravljaj postojeće oznake u datotekama" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Spremi podatke u DATOTEKU" #: exif/main.c:222 msgid "Value of tag" msgstr "Vrijednost oznake" #: exif/main.c:222 msgid "STRING" msgstr "NIZ" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Napravi EXIF podatke ako ne postoje" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Stvori izlaz u strojno čitljivom obliku (odvojenom tabulatorima)" #: exif/main.c:229 msgid "Width of output" msgstr "Širina izlaza" #: exif/main.c:229 msgid "WIDTH" msgstr "ŠIRINA" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Stvori izlaz u XML obliku" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Prikaži poruke za debugiranje" #: exif/main.c:240 msgid "Help options:" msgstr "Opcije pomoći:" #: exif/main.c:241 msgid "Show this help message" msgstr "Prikaži ovu poruku pomoći" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Prikaži kratke upute za uporabu" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPCIJA...] datoteka" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Neispravan IFD „%s”. Ispravni IFD-ovi su „0”, „1”, „EXIF”, „GPS” i „Interoperability”." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Neispravna oznaka „%s”!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Morate navesti oznaku!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Morate navesti IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Oznaka „%s” " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, „%s”): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Navedite ulaznu datoteku ili --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "„%s” nije čitljiv ili ne sadrži EXIF podatke!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML oblik nije dostupan za Maker Notes" exif-exif-0_6_22-release/po/id.po000066400000000000000000000173411366114026400166300ustar00rootroot00000000000000# Indonesian translations for exif package. # Copyright (C) 2008 Lutz Müller and others # This file is distributed under the same license as the exif package. # Andhika Padmawan , 2009-2012. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2012-05-18 18:10+0700\n" "Last-Translator: Andhika Padmawan \n" "Language-Team: Indonesian \n" "Language: id\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Tak cukup memori." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Mengatur nilai untuk tag ini tak didukung!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Terlalu sedikit komponen yang ditentukan (butuh %d, ditemukan %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "nilai numerik diharapkan\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Galat internal. Silakan hubungi <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Belum diimplementasikan!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Peringatan; Terlalu banyak komponen yang ditentukan!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Terlalu banyak data EXIF (%i bita). Hanya %i bita yang diizinkan." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Menulis berkas '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Lema EXIF '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "ada di IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Menambahkan entri..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' tak berisi tag '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Tak dapat membuka '%s' (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Tak dapat membaca '%s' (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' tak berisi tag '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' tak berisi tag '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' tak berisi gambar kecil!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Tak dapat membuka '%s' untuk ditulis (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Tag EXIF di '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Format tak diketahui atau MakerNote tak ada.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote tak berisi nilai apapun.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote berisi %i nilai:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Tag Tak Diketahui" #: exif/actions.c:506 msgid "Unknown value" msgstr "Nilai tak diketahui" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Tag EXIF di '%s' (urutan bita '%s'):" #: exif/actions.c:536 msgid "Tag" msgstr "Tag" #: exif/actions.c:542 msgid "Value" msgstr "Nilai" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Data EXIF berisi gambar kecil (%i bita)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "UkuranGambarKecil\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Menampilkan versi peranti lunak" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Menampilkan ID ketimbang nama tag" #: exif/main.c:200 msgid "Select tag" msgstr "Pilih tag" #: exif/main.c:200 msgid "tag" msgstr "tag" #: exif/main.c:202 msgid "Select IFD" msgstr "Pilih IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Tampilkan semua tag EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Tampilkan isi dari tag MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Hapus tag atau ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Tampilkan keterangan tag" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Ekstrak gambar kecil" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Hapus gambar kecil" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Masukkan BERKAS sebagai gambar kecil" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "BERKAS" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Jangan perbaiki tag yang telah ada di berkas" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Tulis data ke BERKAS" #: exif/main.c:222 msgid "Value of tag" msgstr "Nilai tag" #: exif/main.c:222 msgid "STRING" msgstr "BENANG" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Membuat data EXIF jika tidak ada" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Keluaran dalam format dapat-dibaca-mesin (pembatasan tab)" #: exif/main.c:229 msgid "Width of output" msgstr "Lebar keluaran" #: exif/main.c:229 msgid "WIDTH" msgstr "LEBAR" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Keluaran dalam format XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Tampilkan pesan awakutu" #: exif/main.c:240 msgid "Help options:" msgstr "Opsi bantuan:" #: exif/main.c:241 msgid "Show this help message" msgstr "Tampilkan pesan bantuan ini" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Tampilkan pesan singkat penggunaan" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPSI...] berkas" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD '%s' tak sah. IFD sah adalah '0', '1', 'EXIF', 'GPS', dan 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Tag tak sah '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Anda harus menentukan tag!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Anda harus menentukan IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Tag '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Tentukan berkas masukan atau --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' tidak dapat dibaca atau tidak berisi data EXIF!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Format XML tidak tersedia untuk Maker Notes" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Tak dapat membuka '%s' (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Tak dapat membaca '%s' (%m)." #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Tak dapat membuka '%s' untuk ditulis (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Format MakerNote tak diketahui.\n" #~ msgid "Please specify a tag!" #~ msgstr "Silakan tentukan tag!" exif-exif-0_6_22-release/po/is.po000066400000000000000000000167301366114026400166500ustar00rootroot00000000000000# translation of exif-0.6.20.po to Icelandic # Copyright (C) 2009 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Sveinn í Felli , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: exif-0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-05-11 22:59+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" "Language: is\n" "X-Bugs: Report translation errors to the Language-Team address.\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: KBabel 1.11.4\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Ekki nægt minni!" #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Ekki er stutt að setja gildi fyrir þetta merki!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Of fáar einingar tilgreindar (þarf %d, fann %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Bjóst við tölugildi\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Innri villa. Hafðu samband við <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ekki útfært ennþá!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Aðvörun; of margar einingar tilgreindar!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Of mikið af EXIF gögnum (%i bæti). Aðeins %i bæti eru leyfileg." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Skrifaði skrá '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF færsla '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "er til í IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Bæti við færslu..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' inniheldur ekki merkið '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Gat ekki opnað '%s' (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Gat ekki lesið '%s' (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' inniheldur ekki merkið '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' inniheldur ekki merkið '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' inniheldur ekki smámynd!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Gat ekki opnað '%s' til skrifunar (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF merki í '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Óþekkt snið MakerNote merkja eða að þau eru ekki fyrir hendi.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote inniheldur engin gildi.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote inniheldur %i gildi:\n" msgstr[1] "MakerNote inniheldur %i gildi:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Óþekkt merki" #: exif/actions.c:506 msgid "Unknown value" msgstr "Óþekkt gildi" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF merki í '%s' ('%s' í bætaröð):" #: exif/actions.c:536 msgid "Tag" msgstr "Merki" #: exif/actions.c:542 msgid "Value" msgstr "Gildi" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-gögnin innihalda smámynd (%i bæti)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "SmámyndarStærð\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Sýna útgáfu hugbúnaðar" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Sýna auðkenni (ID) í stað heita á merkjum" #: exif/main.c:200 msgid "Select tag" msgstr "Veldu merki" #: exif/main.c:200 msgid "tag" msgstr "merki" #: exif/main.c:202 msgid "Select IFD" msgstr "Veldu IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Birta öll EXIF merki" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Sýna innihald MakerNote merkis" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Fjarlægja merki eða IFD" #: exif/main.c:210 msgid "Show description of tag" msgstr "Sýna lýsingu merkis" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Taka út smámynd" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Fjarlægja smámynd" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Setja SKRÁ inn sem smámynd" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "SKRÁ" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Ekki laga þau merki sem þegar eru í skrám" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Skrifa gögn í SKRÁ" #: exif/main.c:222 msgid "Value of tag" msgstr "Gildi merkis" #: exif/main.c:222 msgid "STRING" msgstr "STRENGUR" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Búa til EXIF gögn ef þau eru ekki til" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Skrifa út á véltæku sniði (machine-readable - tab delimited)" #: exif/main.c:229 msgid "Width of output" msgstr "Breidd úttaks" #: exif/main.c:229 msgid "WIDTH" msgstr "BREIDD" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Skrifa út á XML-sniði" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Sýna aflúsunarúttak" #: exif/main.c:240 msgid "Help options:" msgstr "Hjálparmöguleikar:" #: exif/main.c:241 msgid "Show this help message" msgstr "Sýna þessi hjálparskilaboð" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Sýna stuttar notkunarleiðbeiningar" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[ROFI...] skrá" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Ógilt IFD '%s'. VGild IFD eru '0', '1', 'EXIF', 'GPS', og 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Ógilt merki '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Þú þarft að tilgreina merki!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Þú þarft að tilgreina IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Merki '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Tilgreindu inntaksskrá eða --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' er ekki lesanlegt eða inniheldur ekki EXIF gögn!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML snið er ekki tiltækt fyrir MakerNotes" exif-exif-0_6_22-release/po/it.po000066400000000000000000000175761366114026400166620ustar00rootroot00000000000000# ITALIAN TRANSLATION OF EXIF-0.6.20 # Copyright (C) 2008, 2010 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Vincenzo Campanella , 2008, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-18 08:21+0100\n" "Last-Translator: Vincenzo Campanella \n" "Language-Team: Italian \n" "X-Bugs: Report translation errors to the Language-Team address.\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: KBabel 1.11.4\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Memoria insufficiente." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "L'impostazione di un valore per questo tag non è supportata." #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Troppo pochi componenti specificati (necessari %d, trovati %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Atteso un valore numerico\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Errore interno. Contattare <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Non ancora implementato." #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Attenzione: sono stati specificati troppi componenti." #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Troppi dati EXIF (%i byte). Solo %i byte sono ammessi." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Il file «%s» è stato scritto." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Voce EXIF «%s» " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "esiste in IFD «%s»:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Aggiunta della voce in corso" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD «%s» non contiene un tag «%s»." #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Impossibile aprire «%s» (%s)." #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Impossibile leggere «%s» (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD «%s» non contiene un tag «%s»." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "«%s» non contiene un tag «%s»." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "«%s» non contiene un'anteprima." #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Impossibile aprire «%s» per la lettura (%s)." #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Tag EXIF in «%s»:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formato di MakerNote sconosciuto o inesistente.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote non contiene alcun valore.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contiene %i valore:\n" msgstr[1] "MakerNote contiene %i valori:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Tag sconosciuto" #: exif/actions.c:506 msgid "Unknown value" msgstr "Valore sconosciuto" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Tag EXIF in «%s» (ordinato per byte «%s»):" #: exif/actions.c:536 msgid "Tag" msgstr "Tag" #: exif/actions.c:542 msgid "Value" msgstr "Valore" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Il dato EXIF contiene un'anteprima (%i byte)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "DimensioneAnteprima\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Mostra la versione del software" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Mostra gli ID anziché i nomi dei tag" #: exif/main.c:200 msgid "Select tag" msgstr "Seleziona il tag" #: exif/main.c:200 msgid "tag" msgstr "tag" #: exif/main.c:202 msgid "Select IFD" msgstr "Seleziona l'IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Elenca tutti i tag EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Mostra il contenuto del tag MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Rimuove il tag o l'IFD" #: exif/main.c:210 msgid "Show description of tag" msgstr "Mostra la descrizione del tag" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Estrae l'anteprima" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Rimuove l'anteprima" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Inserisce il FILE come anteprima" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "FILE" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Non correggere i tag esistenti nei file" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Scrive i dati nel FILE" #: exif/main.c:222 msgid "Value of tag" msgstr "Valore del tag" #: exif/main.c:222 msgid "STRING" msgstr "STRINGA" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Crea i dati EXIF se mancanti" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Output in formato leggibile (delimitato da tabulatori)" #: exif/main.c:229 msgid "Width of output" msgstr "Larghezza dell'output" #: exif/main.c:229 msgid "WIDTH" msgstr "LARGHEZZA" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Output in formato XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Mostra i messaggi di debug" #: exif/main.c:240 msgid "Help options:" msgstr "Opzioni di aiuto:" #: exif/main.c:241 msgid "Show this help message" msgstr "Mostra questo messaggio di aiuto" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Mostra breve messaggio d'uso" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPZIONE...] file" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD «%s» non valido. IFD validi sono «0», «1», «EXIF», «GPS» e «Interoperability»." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Tag «%s» non valido." #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "È necessario specificare un tag." #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "È necessario specificare un IFD." #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Tag «%s» " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Specificare il file di input oppure «--create-exif»" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "«%s» non è leggibile oppure non contiene dati EXIF." #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Il formato XML non è disponibile per Maker Notes" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Impossibile aprire «%s» (%m)." #~ msgid "Could not read '%s' (%m)." #~ msgstr "Impossibile leggere «%s» (%m)." #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Impossibile aprire «%s» per la lettura (%m)." #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Formato MakerNote sconosciuto.\n" exif-exif-0_6_22-release/po/ja.po000066400000000000000000000201141366114026400166160ustar00rootroot00000000000000# Japanese translation for exif. # Copyright (C) 2009 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Tadashi Jokagi , 2009, 2013. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2013-11-28 06:29+0900\n" "Last-Translator: Tadashi Jokagi \n" "Language-Team: Japanese \n" "Language: ja\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "メモリーが足りません。" #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "このタグへの値の設定はサポートしていません!" #: exif/actions.c:94 #, c-format #| msgid "Too few components specified!" msgid "Too few components specified (need %d, found %d)\n" msgstr "コンポーネントの指定が足りません! (%1$d 個見つかりましたが %2$d 個必要です)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "数値を期待しました\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "内部エラー。<%s> に連絡してください。" #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "まだ実装していません!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "警告: コンポーネントの指定が多すぎます!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "あまりにたくさんの EXIF データです(%i バイト)。 %i バイトのみ確保しました。" #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "ファイル「%s」へ書き込みました。" #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF エントリー「%s」" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x、'%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "は IFD 「%s」に存在します:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "エントリーを追加しています..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD「%s」はタグ「%s」に含まれません!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "「%s」を開けません (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "「%s」を読み込めません (%s)。" #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD「%s」はタグ「%s」に含まれません。" #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "「%s」はタグ「%s」に含まれません。" #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "「%s」はサムネイルに含まれません!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "書き込むために「%s」を開けません (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "「%s」内の EXIF タグ:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "不明な形式か、MakerNote が存在しません。\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote はいくつかの値を含んでいません。\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote は %i の値を含みます:\n" #: exif/actions.c:497 exif/main.c:320 #| msgid "Unknown tag" msgid "Unknown Tag" msgstr "不明なタグ" #: exif/actions.c:509 msgid "Unknown value" msgstr "不明な値" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "%s の EXIF タグ (%s バイトオーダー):" #: exif/actions.c:539 msgid "Tag" msgstr "タグ" #: exif/actions.c:545 msgid "Value" msgstr "値" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF データはサムネイルを含みます (%i バイト)。" #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "サムネイルの大きさ\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "ソフトウェア バージョンの表示" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "タグ名の代わりに ID の表示" #: exif/main.c:198 msgid "Select tag" msgstr "タグの選択" #: exif/main.c:198 msgid "tag" msgstr "タグ" #: exif/main.c:200 msgid "Select IFD" msgstr "IFD の選択" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "すべての EXIF タグの表示" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "タグ MakerNote の内容の表示" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "ifd のタグの削除" #: exif/main.c:208 msgid "Show description of tag" msgstr "タグの説明の表示" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "サムネイルの展開" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "サムネイルの削除" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "サムネイルとして FILE を挿入する" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FILE" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "ファイル内の依存タグを修正しない" #: exif/main.c:218 msgid "Write data to FILE" msgstr "FILE へのデータ書き込み" #: exif/main.c:220 msgid "Value of tag" msgstr "タグの値" #: exif/main.c:220 msgid "STRING" msgstr "STRING" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "EXIF データが存在しない場合に作成する" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "可読性のある形式(タブ区切り)の出力" #: exif/main.c:227 msgid "Width of output" msgstr "出力の幅" #: exif/main.c:227 msgid "WIDTH" msgstr "WIDTH" #: exif/main.c:229 msgid "Output in a XML format" msgstr "XML 形式の出力" #: exif/main.c:232 msgid "Show debugging messages" msgstr "デバッグメッセージの表示" #: exif/main.c:238 msgid "Help options:" msgstr "ヘルプ オプション:" #: exif/main.c:239 msgid "Show this help message" msgstr "このヘルプメッセージの表示" #: exif/main.c:240 msgid "Display brief usage message" msgstr "短い使い方のメッセージの表示" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPTION...] ファイル" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD「%s」が正しくありません。有効な IFD は「0」、「1」、「EXIF」、「GPS」、「Interoperability」です。" #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "タグ「%s」が正しくありません!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "タグを指定する必要があります!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "IFD を指定する必要があります!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "タグ「%s」" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x、'%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "入力ファイルか --create-exif の指定" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "「%s」は読み込めないか、EXIF データを含みません!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Maker Notes 用の XML 形式は利用できません" exif-exif-0_6_22-release/po/ko.po000066400000000000000000000174531366114026400166510ustar00rootroot00000000000000# Korean translation for the exif package. # This file is distributed under the same license as the exif package. # Seong-ho Cho , 2016. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2016-03-18 16:53+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" "Language: ko\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "메모리가 부족합니다." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "이 태그 값 설정을 지원하지 않습니다!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "지정 구성요소가 너무 적습니다(%d개 필요, %d개 발견)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "숫자 값이 필요합니다\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "내부 오류. <%s>에게 문의하십시오." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "아직 구현하지 않았습니다!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "경고; 너무 많은 구성요소를 지정했습니다!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "EXIF 데이터가 너무 큽니다(%i 바이트). %i 바이트만 허용합니다." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "‘%s’ 파일을 기록했습니다." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "‘%s’ EXIF 항목 " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, ‘%s’) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "‘%s’ IFD에 존재합니다:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "항목 추가 중..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "‘%s’ IFD에 ‘%s’ 태그가 없습니다!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "‘%s’을(를) 열 수 없습니다(%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "‘%s’을(를) 읽을 수 없습니다(%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "‘%s’ IFD에 ‘%s’ 태그가 없습니다." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "‘%s’에 ‘%s’ 태그가 없습니다." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "‘%s’에 미리 보기 그림이 없습니다!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "‘%s’을(를) 기록 용도로 열 수 없습니다(%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "‘%s’의 EXIF 태그:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "알 수 없는 형식이거나 MakerNote가 없습니다.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNode에 어떤 값도 없습니다.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNode에 %i 값이 있습니다:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "알 수 없는 태그" #: exif/actions.c:509 msgid "Unknown value" msgstr "알 수 없는 값" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "‘%s’의 EXIF 태그(‘%s’ 바이트 순):" #: exif/actions.c:539 msgid "Tag" msgstr "태그" #: exif/actions.c:545 msgid "Value" msgstr "값" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF 데이터에 미리 보기 그림이 있습니다(%i 바이트)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "ThumbnailSize\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "프로그램 버전 표시" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "태그 이름 대신 ID 표시" #: exif/main.c:198 msgid "Select tag" msgstr "태그 선택" #: exif/main.c:198 msgid "tag" msgstr "태그" #: exif/main.c:200 msgid "Select IFD" msgstr "IFD 선택" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "모든 EXIF 태그 나타내기" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "태그 MakerNode의 내용 표시" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "태그 또는 IFD 제거" #: exif/main.c:208 msgid "Show description of tag" msgstr "태그 설명 표시" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "미리 보기 그림 추출" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "미리 보기 그림 제거" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "<파일>을 미리 보기 그림으로 삽입" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "<파일>" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "파일의 기존 태그 수정하지 않음" #: exif/main.c:218 msgid "Write data to FILE" msgstr "<파일>에 데이터 기록" #: exif/main.c:220 msgid "Value of tag" msgstr "태그 값" #: exif/main.c:220 msgid "STRING" msgstr "<문자열>" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "EXIF 데이터가 없으면 만들기" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "(탭으로 구분한) 기계 해독 가능 형식으로 출력" #: exif/main.c:227 msgid "Width of output" msgstr "출력 너비" #: exif/main.c:227 msgid "WIDTH" msgstr "<너비>" #: exif/main.c:229 msgid "Output in a XML format" msgstr "XML 형식으로 출력" #: exif/main.c:232 msgid "Show debugging messages" msgstr "디버깅 메시지 표시" #: exif/main.c:238 msgid "Help options:" msgstr "도움말 옵션:" #: exif/main.c:239 msgid "Show this help message" msgstr "이 도움말 메시지 표시" #: exif/main.c:240 msgid "Display brief usage message" msgstr "사용법 메시지 요약 나타내기" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[<옵션>…] <파일>" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "잘못된 ‘%s’ IFD 입니다. 유효한 IFD는 '0', '1', 'EXIF', 'GPS', ’Interoperability' 입니다." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "잘못된 ‘%s’ 태그입니다!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "태그를 지정해야 합니다!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "IFD를 지정해야 합니다!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "‘%s’ 태그" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, ‘%s’): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "입력 파일을 지정하거나 —create-exit 옵션을 사용하십시오" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "‘%s’을(를) 읽을 수 없거나 EXIF 데이터가 없습니다!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Maker Notes에서 XML 형식을 사용할 수 없습니다" exif-exif-0_6_22-release/po/lv.po000066400000000000000000000202161366114026400166500ustar00rootroot00000000000000# translation of exif to Latvian # Copyright (C) 2009 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Rihards Prieditis , 2009. # Rihards Prieditis , 2010. # Rihards Prieditis , 2011. # Rūdolfs Mazurs , 2014. msgid "" msgstr "" "Project-Id-Version: exif-0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2014-04-20 15:37+0300\n" "Last-Translator: Rihards Prieditis \n" "Language-Team: Latvian \n" "Language: lv\n" "X-Bugs: Report translation errors to the Language-Team address.\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nepietiek atmiņas." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Vērtības iestatīšanai šai atzīmei netiek atbalstīta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Norādīti pārāk maz komponenti (nepieciešami %d, atrasti %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Pieņem tikai skaitlisku vērtību\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Iekšējā kļūda. Lūdzu, sazinieties ar <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Vēl nav ieviests!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Brīdinājums: Norādīti pārāk daudz komponenti!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Pārāk daudz EXIF datu (%i baitu). Atļauti tikai %i baiti." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Rakstīts datnē “%s”." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF ieraksts “%s”" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, “%s”) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "eksistē iekš IFD “%s”:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Pievieno ierakstu..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD “%s” nesatur iezīmi “%s”!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Nevarēja atvērt “%s” (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nevarēja lasīt “%s” (%s)!" #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD “%s” nesatur iezīmi “%s”." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "“%s” nesatur iezīmi “%s”." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "“%s” nesatur sīktēlu!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Nevar atvērt “%s” rakstīšanai (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF iezīmes iekš “%s”:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Nezināms formāts vai neeksistējoša MakerNote.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote nesatur nevienu vērtību.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote satur %i vērtību:\n" msgstr[1] "MakerNote satur %i vērtības:\n" msgstr[2] "MakerNote satur %i vērtību:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Nezināma iezīme" #: exif/actions.c:509 msgid "Unknown value" msgstr "Nezināma vērtība" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF iezīmes iekš “%s” (“%s” baitu secība):" #: exif/actions.c:539 msgid "Tag" msgstr "Iezīme" #: exif/actions.c:545 msgid "Value" msgstr "Vērtība" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF dati satur sīktēlu (%i baitus)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Sīktēla izmērs\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Attēlo programmatūras versiju" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Rāda identifikatorus, nevis iezīmes nosaukumus" #: exif/main.c:198 msgid "Select tag" msgstr "Atlasiet iezīmi" #: exif/main.c:198 msgid "tag" msgstr "iezīme" #: exif/main.c:200 msgid "Select IFD" msgstr "Atlasiet IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Visu EXIF iezīmju saraksts" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Rādīt MakerNote iezīmes saturu" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Izņemt iezīmi vai ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Rādīt apraksta iezīmi" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Izvilkt sīktēlu" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Izņemt sīktēlu" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Ievietot DATNI, kā sīktēlu" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "DATNE" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Nelabot esošās iezīmes datnē" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Rakstīt datus uz DATNI" #: exif/main.c:220 msgid "Value of tag" msgstr "Iezīmes vērtība" #: exif/main.c:220 msgid "STRING" msgstr "VIRKNE" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Izveidot EXIF, ja dati neeksistē" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Izvadīt māšīnlasāma (tab atdalītā) formātā" #: exif/main.c:227 msgid "Width of output" msgstr "Izvades platums" #: exif/main.c:227 msgid "WIDTH" msgstr "PLATUMS" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Izvadīt XML formātā" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Rādīt atkļūdošanas ziņojumus" #: exif/main.c:238 msgid "Help options:" msgstr "Palīdzības opcijas:" #: exif/main.c:239 msgid "Show this help message" msgstr "Rādīt šo palīdzības ziņojumu" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Attēlot īsu lietošanas ziņojumu" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPCIJA...] datne" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Nederīgs IFD “%s”. Derīgi IFD ir “0”, “1”, “EXIF”, “GPS” un “Interoperability”." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Nederīga iezīme “%s”!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Jums jānorāda iezīme!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Jums jānorāda IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Iezīme “%s”" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, “%s”): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Norādiet ievades datni vai --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "“%s” nav lasāms vai nesatur EXIF datus!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "XML formāts nav pieejams priekš Maker Notes" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Nevarēja atvērt \"%s\" (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Nevarēja nolasīt \"%s\" (%m)!" #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Nevar atvērt \"%s\" rakstīšanai (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Nezināms MakerNote formāts.\n" exif-exif-0_6_22-release/po/ms.po000066400000000000000000000152521366114026400166520ustar00rootroot00000000000000# exif Bahasa Melayu (Malay) (ms) # Copyright (C) 2015, 2018, 2019, 2020 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Sharuzzaman Ahmat Raslan , 2015, 2018, 2019, 2020. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2020-04-25 07:53+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan \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-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.3\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Tidak cukup memori." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Penetapan nilai untuk tag ini tidak disokong!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Nilai numerik dijangka\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "" #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Belum lagi dilaksanakan!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "" #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Menulis fail '%s'." #: exif/actions.c:206 #, fuzzy, c-format msgid "EXIF entry '%s' " msgstr "kemasukan `%s' usang. Diabaikan" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, fuzzy, c-format msgid "exists in IFD '%s':\n" msgstr "%s wujud tapi ianya bukan direktori" #: exif/actions.c:224 #, fuzzy msgid "Adding entry..." msgstr "Menambah jurnal ke peranti %s:" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Tidak dapat membuka '%s' (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Tidak dapat membaca '%s' (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "" #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' tidak mengandungi tag '%s'." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' tidak mengandungi lakaran kenit!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Tidak dapat membuka '%s' untuk menulis (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Tag EXIF dalam '%s':" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Format tidak diketahui atau MakerNote tidak wujud.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Tag Tidak Diketahui" #: exif/actions.c:509 msgid "Unknown value" msgstr "Nilai tidak diketahui" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "" #: exif/actions.c:539 msgid "Tag" msgstr "Tag" #: exif/actions.c:545 msgid "Value" msgstr "Nilai" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "" #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Saiz Thumbnail\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Papar versi perisian" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "" #: exif/main.c:198 msgid "Select tag" msgstr "Pilih tag" #: exif/main.c:198 msgid "tag" msgstr "tag" #: exif/main.c:200 msgid "Select IFD" msgstr "Pilih IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Senaraikan semua tag EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Papar kandungan bagi tag MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Buang tag atau ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Papar huraian bagi tag" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Dapatkan gambar kecil" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Buang gambar kecil" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Masukkan FAIL sebagai gambar kecil" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FAIL" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Tulis data ke FAIL" #: exif/main.c:220 msgid "Value of tag" msgstr "Nilai tag" #: exif/main.c:220 msgid "STRING" msgstr "RENTETAN" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "" #: exif/main.c:227 msgid "Width of output" msgstr "Lebar keluaran" #: exif/main.c:227 msgid "WIDTH" msgstr "LEBAR" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Keluaran dalam format XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Papar mesej nyahpepijat" #: exif/main.c:238 msgid "Help options:" msgstr "Pilihan bantuan:" #: exif/main.c:239 msgid "Show this help message" msgstr "Papar mesej bantuan ini" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Papar mesej pendek penggunaan" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[PILIHAN...] fail" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "" #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Tag '%s' tidak sah!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Anda mesti nyatakan satu tag!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Anda mesti nyatakan sebuah IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Tag '%s' " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "" exif-exif-0_6_22-release/po/nl.po000066400000000000000000000174261366114026400166510ustar00rootroot00000000000000# translation of nl.po to Dutch # Copyright (C) 2009 Lutz Müller and others # This file is distributed under the same license as the exif package. # # Erwin Poeze , 2008, 2010 msgid "" msgstr "" "Project-Id-Version: exif-0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-16 15:40+0100\n" "Last-Translator: Erwin Poeze \n" "Language-Team: Dutch \n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Onvoldoende geheugen." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Een waarde kiezen voor dit label wordt niet ondersteund!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Te weinig componenten opgegeven(%d nodig, %d gevonden)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Numerieke waarde verwacht\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Interne fout. Neem contact op met <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Nog niet geïmplementeerd!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Waarschuwing; te weinig componenten opgegeven!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Te veel EXIF-gegevens (%i bytes). Slechts %i bytes toegestaan." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Bestand '%s' is aangemaakt." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF-invoer '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "bestaat in IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Invoer toevoegen..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' bevat geen label '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Kon '%s' niet openen (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Kon '%s' niet lezen (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' bevat geen label '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' bevat geen label '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' bevat geen miniatuur!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Kon '%s' niet openen om naar te schrijven (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-labels in '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "MakerNote bestaat niet of is ongeldig.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote bevat geen waarde.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote bevat één waarde:\n" msgstr[1] "MakerNote bevat %i waarden:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Onbekend label" #: exif/actions.c:506 msgid "Unknown value" msgstr "Onbekende waarde" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-labels in '%s' ('%s' byte-volgorde):" #: exif/actions.c:536 msgid "Tag" msgstr "Label" #: exif/actions.c:542 msgid "Value" msgstr "waarde" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-gegevens bevatten een miniatuur (%i bytes)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Miniatuurgrootte\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "programmaversie tonen" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "ID's in plaats van labelnamen tonen" #: exif/main.c:200 msgid "Select tag" msgstr "dit label selecteren" #: exif/main.c:200 msgid "tag" msgstr "label" #: exif/main.c:202 msgid "Select IFD" msgstr "deze IFD selecteren" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Alle EXIF-labels tonen" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "inhoud van het label MakerNote tonen" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "label of IFD verwijderen" #: exif/main.c:210 msgid "Show description of tag" msgstr "beschrijving van label tonen" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "miniatuur uitlezen" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "miniatuur verwijderen" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "BESTAND als miniatuur toevoegen" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "BESTAND" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Huidige labels in bestanden niet repareren" #: exif/main.c:220 msgid "Write data to FILE" msgstr "gegevens naar BESTAND schrijven" #: exif/main.c:222 msgid "Value of tag" msgstr "Labelwaarde" #: exif/main.c:222 msgid "STRING" msgstr "TEKENREEKS" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "EXIF-gegevens aanmaken als ze ontbreken" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "machineleesbare uitvoer produceren (tabgescheiden)" #: exif/main.c:229 msgid "Width of output" msgstr "Breedte van de uitvoer" #: exif/main.c:229 msgid "WIDTH" msgstr "BREEDTE" #: exif/main.c:231 msgid "Output in a XML format" msgstr "XML-uitvoer produceren" #: exif/main.c:234 msgid "Show debugging messages" msgstr "debugmeldingen tonen" #: exif/main.c:240 msgid "Help options:" msgstr "Hulpopties:" #: exif/main.c:241 msgid "Show this help message" msgstr "Deze hulptekst tonen" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Korte gebruikstekst tonen" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPTIE...] bestand" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Ongeldige IFD '%s'. Geldige IFD's zijn '0', '1', 'EXIF', 'GPS' en 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Ongeldig label '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Het is nodig een label op te geven." #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Het is nodig een IFD op te geven." #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Label '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Invoerbestand of --create-exif opgeven" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' is niet leesbaar of bevat geen EXIF-gegevens!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML kan niet worden gebruikt voor MakerNote" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Kon '%s' niet openen (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Kon '%s' niet lezen (%m)!" #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Kon '%s' niet openen om naar te schrijven (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Onbekend formaat van MakerNote.\n" #~ msgid "Please specify a tag!" #~ msgstr "Geef alstublieft een tag op." exif-exif-0_6_22-release/po/pl.po000066400000000000000000000171641366114026400166520ustar00rootroot00000000000000# Polish translation for exif. # This file is distributed under the same license as the exif package. # Jakub Bogusz , 2005-2010. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-16 19:30+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Za mało pamięci." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Ustawianie wartości tego znacznika nie jest obsługiwane!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Podano za mało składowych (wymagane %d, znaleziono %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Oczekiwano wartości liczbowej\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Błąd wewnętrzny. Proszę skontaktować się z <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Jeszcze nie zaimplementowane!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Uwaga: podano za dużo składowych!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Zbyt dużo danych EXIF (%i bajtów). Dozwolone jest tylko %i bajtów." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Zapisano plik '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Znacznik EXIF '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "istnieje w IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Dodawanie wpisu..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' nie zawiera znacznika '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Nie można otworzyć '%s' (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nie można odczytać '%s' (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' nie zawiera znacznika '%s'." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' nie zawiera znacznika '%s'." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' nie zawiera miniaturki!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Nie można otworzyć '%s' do zapisu (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Znaczniki EXIF w '%s':" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Nieznany format lub nieistniejący znacznik MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote nie zawiera żadnej wartości.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote zawiera %i wartość:\n" msgstr[1] "MakerNote zawiera %i wartości:\n" msgstr[2] "MakerNote zawiera %i wartości:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Nieznany znacznik" #: exif/actions.c:506 msgid "Unknown value" msgstr "Nieznana wartość" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Znaczniki EXIF w '%s' (kolejność bajtów '%s'):" #: exif/actions.c:536 msgid "Tag" msgstr "Znacznik" #: exif/actions.c:542 msgid "Value" msgstr "Wartość" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Dane EXIF zawierają miniaturkę (%i bajtów)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "ThumbnailSize\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Wyświetlenie wersji programu" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Pokazywanie ID zamiast nazw znaczników" #: exif/main.c:200 msgid "Select tag" msgstr "Wybór znacznika" #: exif/main.c:200 msgid "tag" msgstr "znacznik" #: exif/main.c:202 msgid "Select IFD" msgstr "Wybór IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Wypisanie wszystkich znaczników EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Pokazanie zawartości znacznika MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Usunięcie znacznika lub IFD" #: exif/main.c:210 msgid "Show description of tag" msgstr "Pokazanie opisu znacznika" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Wyciągnięcie miniaturki" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Usunięcie miniaturki" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Wstawienie PLIKU jako miniaturki" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "PLIK" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Bez poprawiania istniejących w plikach znaczników" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Zapis danych do PLIKU" #: exif/main.c:222 msgid "Value of tag" msgstr "Wartość znacznika" #: exif/main.c:222 msgid "STRING" msgstr "ŁAŃCUCH" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Utworzenie danych EXIF jeśli nie istnieją" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Wyjście w formacie czytelnym dla maszyny (ograniczonym tabulacjami)" #: exif/main.c:229 msgid "Width of output" msgstr "Szerokość wyjścia" #: exif/main.c:229 msgid "WIDTH" msgstr "SZEROKOŚĆ" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Wyjście w formacie XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Pokazywanie komunikatów diagnostycznych" #: exif/main.c:240 msgid "Help options:" msgstr "Opcje pomocy:" #: exif/main.c:241 msgid "Show this help message" msgstr "Wyświetlenie tego opisu" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Wyświetlenie krótkiego opisu użycia" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[OPCJA...] plik" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Błędny IFD '%s'. Poprawne IFD to '0', '1', 'EXIF', 'GPS' oraz 'Interoperability'." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Błędny znacznik '%s'!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Trzeba podać znacznik!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Trzeba podać IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Znacznik '%s' " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Należy podać plik wejściowy lub --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' nie może być odczytany lub nie zawiera danych EXIF!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Format XML nie jest dostępny dla znaczników MakerNote" exif-exif-0_6_22-release/po/pt.po000066400000000000000000000171371366114026400166620ustar00rootroot00000000000000# Portuguese (Portugal) translations for the exif package # Copyright (C) 2018 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Pedro Albuquerque , 2018. # msgid "" msgstr "" "Project-Id-Version: exif-0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2018-11-14 07:37+0000\n" "Last-Translator: Pedro Albuquerque \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.7\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Memória insuficiente." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Definir um valor para esta etiqueta não é suportado!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Componentes a menos especificados (necessários %d, obtidos %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Valor numérico esperado\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Erro interno. Por favor, contacte <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ainda não implementado!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Aviso: demasiados componentes especificados!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Demasiados dados EXIF (%i bytes). Só são permitidos %i bytes." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Ficheiro \"%s\" escrito." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrada EXIF \"%s\" " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existe em IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "A adicionar entrada..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' não contém uma etiqueta '%s'!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Impossível abrir '%s' (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Impossível ler '%s' (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' não contém a etiqueta '%s'." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' não contém a etiqueta '%s'." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "\"%s\" não contém uma miniatura!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Impossível abrir '%s' para escrita (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etiquetas EXIF em '%s':" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formato desconhecido ou MakerNote não existente.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "O MakerNote não contém valores.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "O MakerNote contém %i valor:\n" msgstr[1] "O MakerNote contém %i valores:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Etiqueta desconhecida" #: exif/actions.c:509 msgid "Unknown value" msgstr "Valor desconhecido" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Etiquetas EXIF em '%s' (ordem de bte '%s'):" #: exif/actions.c:539 msgid "Tag" msgstr "Etiqueta" #: exif/actions.c:545 msgid "Value" msgstr "Valor" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Os dados EXIF contêm uma miniatura (%i bytes)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Miniatura\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Mostrar versão do programa" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Mostrar IDs em vez de nomes de etiqueta" #: exif/main.c:198 msgid "Select tag" msgstr "Seleccionar etiqueta" #: exif/main.c:198 msgid "tag" msgstr "etiqueta" #: exif/main.c:200 msgid "Select IFD" msgstr "Seleccionar IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Listar todas as etiquetas EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Mostrar conteúdo da etiqueta MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Remover etiqueta ou ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Mostrar descrição da etiqueta" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Extrair miniatura" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Remover miniatura" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Inserir FICHEIRO como miniatura" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FICHEIRO" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Não fixar etiquetas existentes em ficheiros" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Escrever dados em FICHEIRO" #: exif/main.c:220 msgid "Value of tag" msgstr "Valor da etiqueta" #: exif/main.c:220 msgid "STRING" msgstr "CADEIA" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Criar dados EXIF se não existirem" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Imprimir (entre tabulações) um formato legível pela máquina" #: exif/main.c:227 msgid "Width of output" msgstr "Largura da saída" #: exif/main.c:227 msgid "WIDTH" msgstr "LARGURA" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Imprimir em formato XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Mostrar mensagens de depuração" #: exif/main.c:238 msgid "Help options:" msgstr "Opções de ajuda:" #: exif/main.c:239 msgid "Show this help message" msgstr "Mostrar esta mensagem" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Mostrar breve mensagem de utilização" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPÇÃO...] ficheiro" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD '%s' inválido. IFDs válidos são '0', '1', 'EXIF', 'GPS', e 'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Etiqueta \"%s\" inválida!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Tem de especificar uma etiqueta!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Tem de especificar um IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Etiqueta '%s' " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Especifique o ficheiro de entrada ou --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' não é legível ou não contém dados EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Formato XML indisponível para Maker Notes" exif-exif-0_6_22-release/po/pt_BR.po000066400000000000000000000172261366114026400172440ustar00rootroot00000000000000# Brazilian Portuguese translation for exif. # Copyright (C) 2013 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Rafael Ferreira , 2013. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2013-03-13 00:35-0300\n" "Last-Translator: Rafael Ferreira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Memória insuficiente." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Não há suporte à definição de um valor para esta etiqueta!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Muito poucos componentes especificados (precisa de %d, encontrou %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Valor numérico esperado\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Erro interno. Por favor, contate <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Não implementado ainda!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Aviso; Especificados componentes demais!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Dados EXIF demais (%i bytes). Apenas %i bytes são permitidos." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Escrever arquivo \"%s\"." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Entrada EXIF \"%s\"" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, \"%s\") " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existe em IFD \"%s\":\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Adicionando entrada..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD \"%s\" não contém uma etiqueta \"%s\"!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Não foi possível abrir \"%s\" (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Não foi possível ler \"%s\" (%s)!" #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD \"%s\" não contém uma etiqueta \"%s\"." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "\"%s\" não contém uma etiqueta \"%s\"!" #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "IFD \"%s\" não contém uma miniatura!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Não foi possível abrir \"%s\" para escrita (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Etiquetas EXIF em \"%s\":" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Formato desconhecido ou MakerNote inexistente.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote não contém qualquer valor.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contém %i valor:\n" msgstr[1] "MakerNote contém %i valores:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Etiqueta desconhecida" #: exif/actions.c:509 msgid "Unknown value" msgstr "Valor desconhecido" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Tags EXIF em \"%s\" (ordem de \"%s\" byte):" #: exif/actions.c:539 msgid "Tag" msgstr "Etiqueta" #: exif/actions.c:545 msgid "Value" msgstr "Valor" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Dados EXIF contêm uma miniatura (%i bytes)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "TamanhoMiniatura\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Exiba a versão do software" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Mostra IDs em vez de nomes de etiquetas" #: exif/main.c:198 msgid "Select tag" msgstr "Seleciona uma etiqeuta" #: exif/main.c:198 msgid "tag" msgstr "etiqueta" #: exif/main.c:200 msgid "Select IFD" msgstr "Seleciona IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Lista todas as etiquetas EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Mostra conteúdos " #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Remove etiqueta ou ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Mostra descrição de etiqueta" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Extrai miniatura" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Remove miniatura" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Insere ARQUIVO como miniatura" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "ARQUIVO" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Não fixa etiquetas existentes em arquivos" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Escreve dados para ARQUIVO" #: exif/main.c:220 msgid "Value of tag" msgstr "Valor de uma etiqueta" #: exif/main.c:220 msgid "STRING" msgstr "STRING" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Cria dados EXIF, se não existentes" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Saída em um formato legível por máquina (delimitado por \"tab\")" #: exif/main.c:227 msgid "Width of output" msgstr "Largura da saída" #: exif/main.c:227 msgid "WIDTH" msgstr "LARGURA" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Saída em um formato XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Mostra mensagens de depuração" #: exif/main.c:238 msgid "Help options:" msgstr "Opções de ajuda:" #: exif/main.c:239 msgid "Show this help message" msgstr "Mostra esta mensagem de ajuda" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Exibe uma breve mensagem de uso" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[OPÇÃO...] arquivo" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD inválido \"%s\". IFDs válidos são \"0\", \"1\", \"EXIF\", \"GPS\" e \"Interoperability\"." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Etiqueta inválida \"%s\"!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Você precisa especificar uma etiqueta!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Você precisa especificar um IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Tag \"%s\"" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, \"%s\"): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Especifique um arquivo de entrada ou --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "\"%s\" não é legível ou não contém dados EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Formato XML não está disponível para Maker Notes" exif-exif-0_6_22-release/po/ro.po000066400000000000000000000152271366114026400166550ustar00rootroot00000000000000# Romanian translation for exif. # Copyright (C) 2010 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Sergiu Bivol , 2010. msgid "" msgstr "" "Project-Id-Version: exif 0.6.18\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-08 18:05-0700\n" "PO-Revision-Date: 2010-01-24 18:05+0200\n" "Last-Translator: Sergiu Bivol \n" "Language-Team: Romanian \n" "X-Bugs: Report translation errors to the Language-Team address.\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: Lokalize 1.0\n" #: exif/actions.c:57 #, c-format msgid "Not enough memory." msgstr "Nu există memorie suficientă." #: exif/actions.c:75 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Stabilirea unei valori pentru acest marcaj nu este susținută!" #: exif/actions.c:92 #, c-format msgid "Too few components specified!" msgstr "Prea puține componente specificate!" #: exif/actions.c:107 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Eroare internă. Contactați <%s>." #: exif/actions.c:146 #, c-format msgid "Not yet implemented!" msgstr "Nu este implementat încă!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Atenție: Prea multe componente specificate!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Prea multe date EXIF (%i octeți). Sînt permiși numai %i octeți." #: exif/actions.c:186 exif/actions.c:357 #, c-format msgid "Wrote file '%s'." msgstr "S-a scris fișierul „%s”." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Înregistrare EXIF „%s” " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, „%s”) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "" #: exif/actions.c:262 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "" #: exif/actions.c:292 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Nu s-a putut deschide „%s” (%s)!" #: exif/actions.c:301 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nu s-a putut citi „%s” (%s)." #: exif/actions.c:320 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "" #: exif/actions.c:326 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "„%s” nu conține marcajul „%s”." #: exif/actions.c:344 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "„%s” nu conține o miniatură!" #: exif/actions.c:352 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Nu s-a putut deschide „%s” pentru citire (%s)!" #: exif/actions.c:374 #, c-format msgid "EXIF tags in '%s':" msgstr "Marcaje EXIF în „%s”:" #: exif/actions.c:470 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "" #: exif/actions.c:477 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "" #: exif/actions.c:480 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: exif/actions.c:490 msgid "Unknown tag" msgstr "Marcaj necunoscut" #: exif/actions.c:499 msgid "Unknown value" msgstr "Valoare necunoscută" #: exif/actions.c:523 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "" #: exif/actions.c:529 msgid "Tag" msgstr "Marcaj" #: exif/actions.c:535 msgid "Value" msgstr "Valoare" #: exif/actions.c:550 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Datele EXIF conțin o miniatură (%i octeți)." #: exif/actions.c:592 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "DimensiuneMiniatură\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Afișează versiunea programului" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Arată ID-uri în locul denumirii marcajelor" #: exif/main.c:200 msgid "Select tag" msgstr "Alege marcajul" #: exif/main.c:200 msgid "tag" msgstr "marcaj" #: exif/main.c:202 msgid "Select IFD" msgstr "" #: exif/main.c:202 msgid "IFD" msgstr "" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Enumeră toate marcajele EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "" #: exif/main.c:210 msgid "Show description of tag" msgstr "Arată descrierea marcajului" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Extrage miniatura" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Elimină miniatura" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Inserează FIȘIER ca miniatură" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "FIȘIER" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Nu repara marcajele existente în fișiere" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Scrie date în FIȘIER" #: exif/main.c:222 msgid "Value of tag" msgstr "Valoarea marcajului" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Creează date EXIF dacă nu există" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Scoate în format optimizat pentru mașină (delimitat de tabulatori)" #: exif/main.c:229 msgid "Width of output" msgstr "Lățimea rezultatului" #: exif/main.c:229 msgid "WIDTH" msgstr "LĂȚIME" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Scoate în format XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Arată mesaje de depanare" #: exif/main.c:240 msgid "Help options:" msgstr "Opțiuni de ajutor:" #: exif/main.c:241 msgid "Show this help message" msgstr "Arată acest mesaj de ajutor" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Afișează mesaj de utilizare succint" #: exif/main.c:262 msgid "[OPTION...] file" msgstr "[OPȚIUNE...] fișier" #: exif/main.c:277 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "" #: exif/main.c:286 #, c-format msgid "Invalid tag '%s'!" msgstr "Marcaj nevalid „%s”!" #: exif/main.c:294 msgid "You need to specify a tag!" msgstr "Trebuie să specificați un marcaj!" #: exif/main.c:299 msgid "You need to specify an IFD!" msgstr "You need to specify an IFD!" #: exif/main.c:322 #, c-format msgid "Tag '%s' " msgstr "Marcaj „%s” " #: exif/main.c:324 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, „%s”): " #: exif/main.c:388 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "„%s” nu poate fi citit sau nu conține date EXIF!" exif-exif-0_6_22-release/po/ru.po000066400000000000000000000216161366114026400166620ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 2015 Lutz Mueller and others # This file is distributed under the same license as the exif package. # Andrej Solonenko , 2015. # Pavel Maryanov , 2015. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2015-04-20 21:12+0200\n" "Last-Translator: Pavel Maryanov \n" "Language-Team: Russian \n" "Language: ru\n" "X-Bugs: Report translation errors to the Language-Team address.\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.7.6\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Недостаточно памяти." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Установка значения для этого тега не поддерживается." #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Указано слишком мало компонентов (необходимо %d, найдено %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Ожидалось числовое значение\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Внутренняя ошибка. Сообщите о ней по адресу <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ещё не реализовано." #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Предупреждение: указано слишком много компонентов." #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Слишком много EXIF-данных (%i байт). Объём добавляемых данных не должен превышать %i байт." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Записан файл '%s'." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Запись EXIF '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "существует в IFD '%s':\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Добавление записи..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s' не содержит тег '%s'." #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Не удалось открыть '%s' (%s)." #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Не удалось прочитать '%s' (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s' не содержит тег '%s'." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s' не содержит тег '%s'." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' не содержит эскиз." #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Не удалось открыть '%s' для записи (%s)." #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Теги EXIF в '%s':" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Неизвестный формат либо отсутствует MakerNote.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote не содержит никакого значения.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote содержит %i значение:\n" msgstr[1] "MakerNote содержит %i значения:\n" msgstr[2] "MakerNote содержит %i значений:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Неизвестный тег" #: exif/actions.c:509 msgid "Unknown value" msgstr "Неизвестное значение" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Теги EXIF в '%s' (порядок байтов '%s'):" #: exif/actions.c:539 msgid "Tag" msgstr "Тег" #: exif/actions.c:545 msgid "Value" msgstr "Значение" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "В EXIF-данных есть эскиз (%i байтов)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Размер эскиза\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Показать информацию о версии программного обеспечения" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Показывать идентификаторы вместо названий тегов" #: exif/main.c:198 msgid "Select tag" msgstr "Выберите тег" #: exif/main.c:198 msgid "tag" msgstr "тег" #: exif/main.c:200 msgid "Select IFD" msgstr "Выберите IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Показать список всех тегов EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Показать содержимое тега MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Удалить тег или ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "Показать описание тега" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Извлечь эскиз" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Удалить эскиз" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Вставить ФАЙЛ как эскиз" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "ФАЙЛ" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Не исправлять существующие теги в файлах" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Записать данные в ФАЙЛ" #: exif/main.c:220 msgid "Value of tag" msgstr "Значение тега" #: exif/main.c:220 msgid "STRING" msgstr "СТРОКА" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Создать EXIF-данные, если они не существуют" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Вывести в машиночитаемом формате (с табуляторами-разделителями)" #: exif/main.c:227 msgid "Width of output" msgstr "Ширина вывода" #: exif/main.c:227 msgid "WIDTH" msgstr "ШИРИНА" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Вывести в XML-формате" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Показать отладочные сообщения" #: exif/main.c:238 msgid "Help options:" msgstr "Параметры справки:" #: exif/main.c:239 msgid "Show this help message" msgstr "Показать эту справку" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Показать информацию об использовании" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[ПАРАМЕТР...] файл" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Недопустимый IFD '%s'. Допустимые значения IFD — '0', '1', 'EXIF', 'GPS' и 'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Недопустимый тег '%s'." #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Укажите тег." #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Укажите IFD." #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Тег '%s' " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Укажите входной файл или параметр --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' нельзя прочитать или он не содержит EXIF-данные." #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "XML-формат недоступен для Maker Notes" exif-exif-0_6_22-release/po/sk.po000066400000000000000000000202711366114026400166450ustar00rootroot00000000000000# Slovak translation of exif # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the exif package. # Ivan Masár , 2008, 2009, 2011. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-03-25 02:06+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" "Language: sk\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Nedostatok pamäte." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Nastavenie hodnoty tejto značky nie je podporované!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Bolo uvedených príliš málo zložiek (treba %d, nájdených %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Očakáva sa číselná hodnota\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Vnútorná chyba. Prosím, kontaktujte <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Funkcia zatiaľ nie je implementovaná!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Upozornenie - bolo uvedených príliš veľa zložiek." #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Príliš mnoho EXIF údajov (%i bajtov). Je povolených iba %i bajtov." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Zapísaný súbor „%s“." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF záznam „%s“" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, „%s“) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "existuje v IFD „%s“:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Pridáva sa záznam..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD „%s“ neobsahuje značku „%s“!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Nebolo možné otvoriť „%s“ (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Nebolo možné prečítať „%s“ (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD „%s“ neobsahuje značku „%s“." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "IFD „%s“ neobsahuje značku „%s“." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "„%s“ neobsahuje náhľad!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Nebolo možné otvoriť „%s“ na zápis (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF značky v „%s“:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Neznámy formát alebo neexistujúca MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Poznámka výrobcu neobsahuje žiadnu hodnotu.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "Poznámka výrobcu obsahuje %i hodnotu.\n" msgstr[1] "Poznámka výrobcu obsahuje %i hodnoty.\n" msgstr[2] "Poznámka výrobcu obsahuje %i hodnôt.\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Neznáma značka" #: exif/actions.c:506 msgid "Unknown value" msgstr "Neznáma hodnota" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF značky v „%s“ (poradie bajtov „%s“):" #: exif/actions.c:536 msgid "Tag" msgstr "Značka" #: exif/actions.c:542 msgid "Value" msgstr "Hodnota" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF údaje obsahujú náhľad (%i bajtov)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Veľkosť náhľadu\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Zobraziť verziu softvéru" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Zobraziť ID namiesto názvov značiek" #: exif/main.c:200 msgid "Select tag" msgstr "Vybrať značku" #: exif/main.c:200 msgid "tag" msgstr "značka" #: exif/main.c:202 msgid "Select IFD" msgstr "Vybrať IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Zoznam všetkých EXIF značiek" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Zobraziť obsah značky Poznámka výrobcu" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Odstrániť značku alebo IFD" #: exif/main.c:210 msgid "Show description of tag" msgstr "Zobraziť popis značky" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Extrahovať náhľad" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Odstrániť náhľad" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Vložiť SÚBOR ako náhľad" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "SÚBOR" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Neopravovať existujúce značky v súboroch." #: exif/main.c:220 msgid "Write data to FILE" msgstr "Zapísať údaje do SÚBORu" #: exif/main.c:222 msgid "Value of tag" msgstr "Hodnota značky" #: exif/main.c:222 msgid "STRING" msgstr "REŤAZEC" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Vytvoriť EXIF údaje ak neexistujú" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Výstup v strojovo čitateľnom formáte (oddeľovač je tabulátor)" #: exif/main.c:229 msgid "Width of output" msgstr "Šírka výstupu" #: exif/main.c:229 msgid "WIDTH" msgstr "ŠÍRKA" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Výstup vo formáte XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Zobraziť ladiace správy" #: exif/main.c:240 msgid "Help options:" msgstr "Možnosti Pomocníka" #: exif/main.c:241 msgid "Show this help message" msgstr "Zobraziť túto správu Pomocníka" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Zobraziť stručnú správu o použití" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[VOĽBA...] súbor" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Neplatný IFD „%s“. Platné IFD sú „0“, „1“, „EXIF“, „GPS“ a „Interoperability“." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Neplatná značka „%s“!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Musíte zadať značku!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Musíte zadať IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Značka „%s“" #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, „%s“): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Zadajte vstupný súbor alebo --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "„%s“ nie je čitateľný alebo neobsahuje EXIF údaje!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Formát XML nie je dostupný pre Poznámky tvorcu" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Nebolo možné otvoriť „%s“ (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Nebolo možné prečítať „%s“ (%m)." #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Nebolo možné otvoriť „%s“ na zápis (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Neznámy formát Poznámky výrobcu.\n" #~ msgid "Please specify a tag!" #~ msgstr "Prosím, zadajte štítok!" exif-exif-0_6_22-release/po/sr.po000066400000000000000000000221461366114026400166570ustar00rootroot00000000000000# Serbian translation of exif. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the exif package. # Мирослав Николић , 2011. msgid "" msgstr "" "Project-Id-Version: exif-0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-12-24 22:38+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Нема довољно меморије." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Постављање вредности за ову ознаку није подржано!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Наведено је премало компоненти (потребно је %d, нађено је %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Очекивана је бројна вредност\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Унутрашња грешка. Ступите у везу са <%s>. " #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Још увек није уграђено!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Упозорење; Наведено је превише компоненти!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Превише ЕХИФ подтака (%i бајтова). Само %i бајтова је допуштено." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Записујем датотеку „%s“." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "ЕХИФ ставка „%s“ " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, „%s“) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "постоје у ИФД „%s“:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Додајем ставку..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "ИФД „%s“ не садржи ознаку „%s“!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Не могу да отворим „%s“ (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Не могу да прочитам „%s“ (%s)!" #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "ИФД „%s“ не садржи ознаку „%s“." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "„%s“ не садржи ознаку „%s“." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "„%s“ не садржи минијатуру!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Не могу да отворим „%s“ ради уписа (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "ЕХИФ ознаке у „%s“:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Непознат формат или непостојећи Творац белешке.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Творац белешке не садржи никакву вредност.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "Творац белешке садржи %i вредност:\n" msgstr[1] "Творац белешке садржи %i вредности:\n" msgstr[2] "Творац белешке садржи %i вредности:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Непозната ознака" #: exif/actions.c:506 msgid "Unknown value" msgstr "Непозната вредност" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "ЕХИФ ознаке у „%s“ („%s“ ред бајта):" #: exif/actions.c:536 msgid "Tag" msgstr "Ознака" #: exif/actions.c:542 msgid "Value" msgstr "Вредност" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Подаци ЕХИФ-а садрже минијатуру (%i бајтова)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Величина минијатуре\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Приказује издање програма" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Приказује ИБ-ове уместо назива ознака" #: exif/main.c:200 msgid "Select tag" msgstr "Бира ознаку" #: exif/main.c:200 msgid "tag" msgstr "ознака" #: exif/main.c:202 msgid "Select IFD" msgstr "Бира ИФД" #: exif/main.c:202 msgid "IFD" msgstr "ИФД" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Исписује све ознаке ЕХИФ-а" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Приказује садржај ознаке Творца белешке" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Уклања ознаку или ифд" #: exif/main.c:210 msgid "Show description of tag" msgstr "Приказује опис ознаке" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Извлачи минијатуру" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Уклања минијатуру" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Умеће ДАТОТЕКУ као минијатуру" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "ДАТОТЕКА" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Не поправља постојеће ознаке у датотекама" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Уписује податке у ДАТОТЕКУ" #: exif/main.c:222 msgid "Value of tag" msgstr "Вредност ознаке" #: exif/main.c:222 msgid "STRING" msgstr "НИСКА" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Ствара ЕХИФ податке ако не постоје" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Исписује у машинама читљивом (табулатором ограниченом) облику" #: exif/main.c:229 msgid "Width of output" msgstr "Ширина исписа" #: exif/main.c:229 msgid "WIDTH" msgstr "ШИРИНА" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Исписује у ХМЛ облику" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Приказује поруке за исправљање грешака" #: exif/main.c:240 msgid "Help options:" msgstr "Опције помоћи:" #: exif/main.c:241 msgid "Show this help message" msgstr "Приказује ову поруку помоћи" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Приказује кратку поруку о коришћењу" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[ОПЦИЈА...] датотека" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Неисправан ИФД „%s“. Важећи ИФД-ови су „0“, „1“, „EXIF“, „GPS“, и „Interoperability“." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Неисправна ознака „%s“!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Морате да наведете ознаку!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Морате да наведете ИФД!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Ознака „%s“" #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%x, „%s“): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Наведите улазну датотеку или „--create-exif“" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "„%s“ није читљиво или не садржи ЕХИФ податке!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "ХМЛ формат није доступан за Творца белешки" exif-exif-0_6_22-release/po/sv.po000066400000000000000000000204441366114026400166620ustar00rootroot00000000000000# Swedish translation for exif # Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the exif package. # Daniel Nylander , 2007, 2008, 2009. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2011-01-05 12:19+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Inte tillräckligt med minne." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Inställning av ett värde för denna tagg stöds inte!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "För få komponenter angivna (behöver %d, hittade %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Numeriskt värde förväntas\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Internt fel. Kontakta <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ännu inte implementerat!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Varning: För många komponenter angivna!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "För mycket EXIF-data (%i byte). Endast %i byte tillåts." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Skrev filen \"%s\"." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF-posten \"%s\" " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, \"%s\") " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "finns i IFD \"%s\":\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Lägger till post..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD:n \"%s\" innehåller inte taggen \"%s\"!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Kunde inte öppna \"%s\" (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Kunde inte läsa \"%s\" (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD:n \"%s\" innehåller inte taggen \"%s\"." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "\"%s\" innehåller inte taggen \"%s\"." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "\"%s\" innehåller inte en miniatyrbild!" #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Kunde inte öppna \"%s\" för skrivning (%s)!" #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-taggar i \"%s\":" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Okänt format eller icke-existerande MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote innehåller inget värde.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote innehåller %i värde:\n" msgstr[1] "MakerNote innehåller %i värden:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Okänd tagg" #: exif/actions.c:506 msgid "Unknown value" msgstr "Okänt värde" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-taggar i \"%s\" (\"%s\" byteordning):" #: exif/actions.c:536 msgid "Tag" msgstr "Tagg" #: exif/actions.c:542 msgid "Value" msgstr "Värde" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-data innehåller en miniatyrbild (%i byte)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Miniatyrbildsstorlek\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Visa programvaruversion" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Visa id:n istället för taggnamn" #: exif/main.c:200 msgid "Select tag" msgstr "Välj tagg" #: exif/main.c:200 msgid "tag" msgstr "tagg" #: exif/main.c:202 msgid "Select IFD" msgstr "Välj IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Lista alla EXIF-taggar" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Visa innehållet i taggen MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Ta bort tagg eller ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Visa beskrivning av tagg" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Extrahera miniatyrbild" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Ta bort miniatyrbild" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Infoga FIL som miniatyrbild" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "FIL" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Rätta inte till befintliga taggar i filer" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Skriv data till FIL" #: exif/main.c:222 msgid "Value of tag" msgstr "Värde för tagg" #: exif/main.c:222 msgid "STRING" msgstr "STRÄNG" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Skapa EXIF-data om den inte finns" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Skriv ut i ett läsbart format (tabulatoravgränsat)" #: exif/main.c:229 msgid "Width of output" msgstr "Bredd för utdata" #: exif/main.c:229 msgid "WIDTH" msgstr "BREDD" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Skriv ut i ett XML-format" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Visa felsökningsmeddelanden" #: exif/main.c:240 msgid "Help options:" msgstr "Hjälpflaggor:" #: exif/main.c:241 msgid "Show this help message" msgstr "Visa detta hjälpmeddelande" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Visa ett kort användningsmeddelande" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[FLAGGA...] fil" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Ogiltig IFD \"%s\". Giltiga IFD:er är \"0\", \"1\", \"EXIF\", \"GPS\" och \"Interoperability\"." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Ogiltig tagg \"%s\"!" #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Du måste ange en tagg!" #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Du måste ange en IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Tagg \"%s\" " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, \"%s\"): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Ange inmatningsfil eller --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "\"%s\" är inte läsbar eller innehåller inget EXIF-data!" #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "XML-formatet är inte tillgängligt för Maker Notes" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "Kunde inte öppna \"%s\" (%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "Kunde inte läsa \"%s\" (%m)." #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "Kunde inte öppna \"%s\" för skrivning (%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "Okänt MakerNote-format.\n" #~ msgid "Please specify a tag!" #~ msgstr "Ange en tagg!" #~ msgid "MakerNote contains 1 value:\n" #~ msgstr "MakerNote innehåller ett värde:\n" #~ msgid "EXIF entry '%s' (0x%x, '%s') exists in IFD '%s':" #~ msgstr "EXIF-posten \"%s\" (0x%x, \"%s\") finns i IFD \"%s\":" #~ msgid "Data does not follow JPEG specification." #~ msgstr "Data följer inte JPEG-specifikationen." #~ msgid "Path '%s' invalid." #~ msgstr "Sökvägen \"%s\" är ogiltig." #~ msgid "Could not read '%s'." #~ msgstr "Kunde inte läsa \"%s\"." exif-exif-0_6_22-release/po/tr.po000066400000000000000000000167201366114026400166610ustar00rootroot00000000000000# Turkish translation for exif. # Copyright (C) 2013 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Volkan Gezer , 2013. msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2013-03-17 18:41+0100\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" "Language: tr\n" "X-Bugs: Report translation errors to the Language-Team address.\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: Lokalize 1.5\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Yetersiz bellek." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Bu etiket için bir değer atamak desteklenmiyor!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Çok az bileşen belirtildi (gereken %d, verilen %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Sayısal değer gerekli\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Dahili hata. Lütfen iletişime geçin: <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Henüz geliştirilmedi!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Uyarı; çok fazla bileşen belirtildi!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Çok fazla EXIF ​​verileri (% i bayt). Sadece %i bayta izin verilir." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "'%s' dosyası yazıldı." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF girdisi '%s' " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "IFD '%s' içinde mevcut:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Girdi ekleniyor..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD '%s', '%s' etiketini içermiyor!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "'%s' açılamadı (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "'%s' okunamadı (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD '%s', '%s' etiketini içermiyor." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "'%s', '%s' etiketini içermiyor." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "'%s' bir küçük resim içermiyor!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "'%s' yazmak için açılamadı (%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "'%s' içindeki EXIF etiketleri:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Bilinmeyen biçim veya mevcut olmayan MakerNote.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote bir değer içermiyor.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote %i değer içeriyor:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Bilinmeyen Etiket" #: exif/actions.c:509 msgid "Unknown value" msgstr "Bilinmeyen değer" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "'%s' içindeki EXIF etiketleri ('%s' bayt sırası):" #: exif/actions.c:539 msgid "Tag" msgstr "Etiket" #: exif/actions.c:545 msgid "Value" msgstr "Değer" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF verisi bir küçük resim içeriyor (%i bayt)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "ThumbnailSize\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Yazılım sürümünü görüntüle" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Etiket isimleri yerine kimlikleri göster" #: exif/main.c:198 msgid "Select tag" msgstr "Etiket seç" #: exif/main.c:198 msgid "tag" msgstr "etiket" #: exif/main.c:200 msgid "Select IFD" msgstr "IFD seç" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Tüm EXIF etiketlerini listele" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "MakerNote etiketi içeriklerini göster" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Etiket veya ifd'yi kaldır" #: exif/main.c:208 msgid "Show description of tag" msgstr "Etiket açıklamasını göster" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Küçük resmi çıkart" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Küçük resmi kaldır" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Küçük resim olarak DOSYA ekle" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "DOSYA" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Dosyalardaki mevcut etiketleri düzeltme" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Veriyi DOSYAya yaz" #: exif/main.c:220 msgid "Value of tag" msgstr "Etiket değeri" #: exif/main.c:220 msgid "STRING" msgstr "DİZGE" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Mevcut değilse EXIF verisi oluştur" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Bir makinede okunabilir (sekmeyle ayrılmış) biçimde göster" #: exif/main.c:227 msgid "Width of output" msgstr "Çıktı genişliği" #: exif/main.c:227 msgid "WIDTH" msgstr "GENİŞLİK" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Bir XML biçiminde göster" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Hata ayıklama iletilerini göster" #: exif/main.c:238 msgid "Help options:" msgstr "Yardım seçenekleri:" #: exif/main.c:239 msgid "Show this help message" msgstr "Bu yardım iletisini göster" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Özet kullanım iletisini göster" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[SEÇENEK...] dosya" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Geçersiz IFD '%s'. Geçerli IFD'ler '0', '1', 'EXIF', 'GPS' ve'Interoperability'." #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Geçersiz etiket '%s'!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Bir etiket belirtmeniz gerekir!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Bir IFD belirtmeniz gerekir!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "'%s' etiketi " #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Girdi dosyasını belirtin veya --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "'%s' okunamıyor veya EXIF verisi içermiyor!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Üretici Notları XML biçiminde kullanılamaz" exif-exif-0_6_22-release/po/uk.po000066400000000000000000000225201366114026400166460ustar00rootroot00000000000000# Ukrainian translation for exif. # Copyright (C) 2010 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Yuri Chornoivan , 2010. msgid "" msgstr "" "Project-Id-Version: exif 0.6.20\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2010-10-14 20:41-0700\n" "PO-Revision-Date: 2010-12-16 18:58+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "X-Bugs: Report translation errors to the Language-Team address.\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-Generator: Lokalize 1.2\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Не вистачає пам'яті." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Підтримки встановлення значення цієї мітки не передбачено." #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Вказано замало компонентів (потрібно %d, знайдено %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Мало бути вказано числове значення\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Внутрішня помилка. Будь ласка, повідомте про неї за адресою <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Ще не реалізовано." #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Попередження: вказано забагато компонентів." #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Забагато даних EXIF (%i байтів). Можна додавати дані, що не перевищують з об’ємом %i байтів." #: exif/actions.c:186 exif/actions.c:359 #, c-format msgid "Wrote file '%s'." msgstr "Записано файл «%s»." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Запис EXIF «%s» " #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, «%s») " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "існує у IFD «%s»:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Додавання запису…" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "У IFD «%s» не міститься мітки «%s»." #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Не вдалося відкрити «%s» (%s)!" #: exif/actions.c:303 #, c-format msgid "Could not read '%s' (%s)." msgstr "Не вдалося виконати читання «%s» (%s)." #: exif/actions.c:322 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "У IFD «%s» не міститься мітки «%s»." #: exif/actions.c:328 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "«%s» не міститься мітки «%s»." #: exif/actions.c:346 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "У «%s» не міститься мініатюри." #: exif/actions.c:354 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Не вдалося відкрити «%s» для запису (%s)." #: exif/actions.c:376 #, c-format msgid "EXIF tags in '%s':" msgstr "Мітки EXIF у «%s»:" #: exif/actions.c:472 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Невідомий формат або немає MakerNote.\n" #: exif/actions.c:480 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "У MakerNote не міститься жодного значення.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "У MakerNote міститься %i значення:\n" msgstr[1] "У MakerNote міститься %i значення:\n" msgstr[2] "У MakerNote міститься %i значень:\n" msgstr[3] "У MakerNote міститься одне значення:\n" #: exif/actions.c:494 exif/main.c:322 msgid "Unknown Tag" msgstr "Невідома мітка" #: exif/actions.c:506 msgid "Unknown value" msgstr "Невідоме значення" #: exif/actions.c:530 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Мітки EXIF у «%s» (порядок байтів «%s»):" #: exif/actions.c:536 msgid "Tag" msgstr "Мітка" #: exif/actions.c:542 msgid "Value" msgstr "Значення" #: exif/actions.c:557 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "У даних EXIF міститься мініатюра (%i байтів)." #: exif/actions.c:599 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Розмір мініатюри\t%i\n" #: exif/main.c:196 msgid "Display software version" msgstr "Показати дані щодо версії програмного забезпечення" #: exif/main.c:198 msgid "Show IDs instead of tag names" msgstr "Показати ідентифікатори замість назв міток" #: exif/main.c:200 msgid "Select tag" msgstr "Вибрати мітку" #: exif/main.c:200 msgid "tag" msgstr "мітка" #: exif/main.c:202 msgid "Select IFD" msgstr "Вибрати IFD" #: exif/main.c:202 msgid "IFD" msgstr "IFD" #: exif/main.c:204 msgid "List all EXIF tags" msgstr "Показати список всіх міток EXIF" #: exif/main.c:206 msgid "Show contents of tag MakerNote" msgstr "Показати вміст мітки MakerNote" #: exif/main.c:208 msgid "Remove tag or ifd" msgstr "Вилучити мітку або ifd" #: exif/main.c:210 msgid "Show description of tag" msgstr "Показати опис мітки" #: exif/main.c:212 msgid "Extract thumbnail" msgstr "Видобути мініатюру" #: exif/main.c:214 msgid "Remove thumbnail" msgstr "Вилучити мініатюру" #: exif/main.c:216 msgid "Insert FILE as thumbnail" msgstr "Вставити ФАЙЛ як мініатюру" #: exif/main.c:216 exif/main.c:220 msgid "FILE" msgstr "ФАЙЛ" #: exif/main.c:218 msgid "Do not fix existing tags in files" msgstr "Не виправляти поточні мітки у файлах" #: exif/main.c:220 msgid "Write data to FILE" msgstr "Записати дані до ФАЙЛа" #: exif/main.c:222 msgid "Value of tag" msgstr "Значення мітки" #: exif/main.c:222 msgid "STRING" msgstr "РЯДОК" #: exif/main.c:224 msgid "Create EXIF data if not existing" msgstr "Створити записи даних EXIF, якщо їх ще не існує" #: exif/main.c:226 msgid "Output in a machine-readable (tab delimited) format" msgstr "Вивести дані у придатному до читання комп’ютером (форматованому табуляціями) форматі" #: exif/main.c:229 msgid "Width of output" msgstr "Довжина рядка виведених даних" #: exif/main.c:229 msgid "WIDTH" msgstr "ШИРИНА" #: exif/main.c:231 msgid "Output in a XML format" msgstr "Вивести дані у форматі XML" #: exif/main.c:234 msgid "Show debugging messages" msgstr "Показати діагностичні повідомлення" #: exif/main.c:240 msgid "Help options:" msgstr "Пункти довідки:" #: exif/main.c:241 msgid "Show this help message" msgstr "Показати цю довідку" #: exif/main.c:242 msgid "Display brief usage message" msgstr "Показати коротке повідомлення про користування" #: exif/main.c:263 msgid "[OPTION...] file" msgstr "[ПАРАМЕТР...] файл" #: exif/main.c:278 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Некоректне значення IFD «%s». Коректними значеннями IFD є «0», «1», «EXIF», «GPS» і «Interoperability»." #: exif/main.c:287 #, c-format msgid "Invalid tag '%s'!" msgstr "Некоректна мітка «%s»." #: exif/main.c:295 msgid "You need to specify a tag!" msgstr "Вам слід вказати мітку." #: exif/main.c:300 msgid "You need to specify an IFD!" msgstr "Вам слід вказати IFD!" #: exif/main.c:337 #, c-format msgid "Tag '%s' " msgstr "Мітка «%s» " #: exif/main.c:339 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, «%s»): " #: exif/main.c:353 msgid "Specify input file or --create-exif" msgstr "Вкажіть файл вхідних даних або параметр --create-exif" #: exif/main.c:419 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "«%s» непридатний до читання або не містить даних EXIF." #: exif/main.c:446 msgid "XML format is not available for Maker Notes" msgstr "Формат XML не можна використовувати для MakerNotes (приміток виробника)" exif-exif-0_6_22-release/po/vi.po000066400000000000000000000177361366114026400166620ustar00rootroot00000000000000# Vietnamese translation for EXIF. # Copyright © 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the exif package. # Clytie Siddall , 2008-2009. # Trần Ngọc Quân , 2012. # msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2012-07-29 14:17+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "X-Bugs: Report translation errors to the Language-Team address.\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" "X-Poedit-Language: Vietnamese\n" "X-Poedit-Country: VIET NAM\n" "X-Poedit-SourceCharset: utf-8\n" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "Không đủ bộ nhớ." #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "Không hỗ trợ chức năng tạo một giá trị cho thẻ này!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "Chỉ định quá ít thành phần (cần %d, tìm thấy %d)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "Mong đợi một giá trị bằng số\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Lỗi nội bộ. Hãy liên lạc với <%s>." #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "Vẫn chưa được thực hiện!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "Cảnh báo: ghi rõ quá ít thành phần!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Quá nhiều dữ liệu EXIF (%i byte). Chỉ cho phép %i byte." #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "Đã ghi tập tin \"%s\"." #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "Mục nhập EXIF \"%s\"" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x, '%s') " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "đã tồn tại trong IFD \"%s\":\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "Thêm mục..." #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD \"%s\" không chứa một thẻ \"%s\"!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Không thể mở \"%s\" (%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "Không thể đọc \"%s\" (%s)." #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD \"%s\" không chứa thẻ \"%s\"." #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "\"%s\" không chứa thẻ \"%s\"." #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "IFD \"%s\" không chứa ảnh mẫu." #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Không thể mở \"%s\" để ghi (%s)." #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "Thể EXIF trong \"%s\":" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "Không rõ định dạng hoặc không có MakerNote.\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote không chứa giá trị.\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote chứa %i giá trị:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "Không rõ Thẻ" #: exif/actions.c:509 msgid "Unknown value" msgstr "Giá trị lạ" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Thẻ EXIF trong \"%s\" (thứ tự byte \"%s\"):" #: exif/actions.c:539 msgid "Tag" msgstr "Thẻ" #: exif/actions.c:545 msgid "Value" msgstr "Giá trị" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Dữ liệu EXIF chứa một ảnh mẫu (%i byte)." #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "Kích cỡ ảnh mẫu\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "Hiển thị phiên bản phần mềm" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "Hiển thị mã số thay cho tên thẻ" #: exif/main.c:198 msgid "Select tag" msgstr "Chọn thẻ" #: exif/main.c:198 msgid "tag" msgstr "thẻ" #: exif/main.c:200 msgid "Select IFD" msgstr "Chọn IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "Liệt kê mọi thể EXIF" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "Hiện nội dung của thẻ MakerNote" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "Bỏ thẻ hoặc IFD" #: exif/main.c:208 msgid "Show description of tag" msgstr "Hiện mô tả của thẻ" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "Trích ảnh thu nhỏ" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "Bỏ ảnh thu nhỏ" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "Chèn TẬP TIN dạng ảnh mẫu" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "TẬP TIN" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "Đừng sửa chữa thẻ đã có trong tập tin" #: exif/main.c:218 msgid "Write data to FILE" msgstr "Ghi dữ liệu vào TẬP TIN" #: exif/main.c:220 msgid "Value of tag" msgstr "Giá trị của thẻ" #: exif/main.c:220 msgid "STRING" msgstr "CHUỖI" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "Táo dữ liệu EXIF nếu không có" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "Xuất ra một định dạng cho máy đọc được (định giới bằng khoảng tab)" #: exif/main.c:227 msgid "Width of output" msgstr "Chiều rộng kết xuất" #: exif/main.c:227 msgid "WIDTH" msgstr "RỘNG" #: exif/main.c:229 msgid "Output in a XML format" msgstr "Xuất ra định dạng XML" #: exif/main.c:232 msgid "Show debugging messages" msgstr "Hiện thông điệp gỡ lỗi" #: exif/main.c:238 msgid "Help options:" msgstr "Tuỳ chọn trợ giúp:" #: exif/main.c:239 msgid "Show this help message" msgstr "Hiển thị trợ giúp này" #: exif/main.c:240 msgid "Display brief usage message" msgstr "Hiển thị trợ giúp ngắn" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[TÙY_CHỌN...] tập_tin" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "" "IFD không hợp lệ \"%s\". Các IFD hợp lệ là:\n" " • 0\n" " • 1\n" " • EXIF\n" " • GPS\n" " • Interoperability\t\tTương hành" #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "Thẻ không hợp lệ \"%s\"!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "Bạn cần phải ghi rõ một thẻ!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "Bạn cần phải ghi rõ một IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "Thẻ \"%s\"" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "Chỉ định tệp tin đầu vào hay --create-exif" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "\"%s\" không đọc được hoặc không chứa dữ liệu EXIF!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Định dạng XML không sẵn dùng cho Maker Notes" exif-exif-0_6_22-release/po/zh_CN.po000066400000000000000000000175511366114026400172400ustar00rootroot00000000000000# Chinese translations for exif package # exif 软件包的简体中文翻译. # Copyright (C) 2008 Lutz Müller and others # This file is distributed under the same license as the exif package. # Ji ZhengYu , 2008, 2009, 2010, 2011, 2012, 2013 msgid "" msgstr "" "Project-Id-Version: exif 0.6.21\n" "Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2012-07-12 20:42+0200\n" "PO-Revision-Date: 2013-03-08 09:35+0800\n" "Last-Translator: Ji ZhengYu \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "X-Bugs: Report translation errors to the Language-Team address.\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" #: exif/actions.c:60 #, c-format msgid "Not enough memory." msgstr "没有足够的内存。" #: exif/actions.c:79 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "不支持设定此标识的值!" #: exif/actions.c:94 #, c-format msgid "Too few components specified (need %d, found %d)\n" msgstr "指定参数太少(需要 %d 个,找到 %d 个)\n" #: exif/actions.c:99 #, c-format msgid "Numeric value expected\n" msgstr "要求填数值\n" #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "内部错误。请联系 <%s>。" #: exif/actions.c:145 #, c-format msgid "Not yet implemented!" msgstr "不支持的功能!" #: exif/actions.c:153 #, c-format msgid "Warning; Too many components specified!" msgstr "警告:指定了太多参数!" #: exif/actions.c:175 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "EXIF 数据太多(%i 个字节)。只允许 %i 个字节。" #: exif/actions.c:186 exif/actions.c:362 #, c-format msgid "Wrote file '%s'." msgstr "写入文件‘%s’。" #: exif/actions.c:206 #, c-format msgid "EXIF entry '%s' " msgstr "EXIF 记录‘%s’" #: exif/actions.c:208 #, c-format msgid "(0x%x, '%s') " msgstr "(0x%x,‘%s’) " #: exif/actions.c:211 #, c-format msgid "exists in IFD '%s':\n" msgstr "存在于 IFD‘%s’中:\n" #: exif/actions.c:224 msgid "Adding entry..." msgstr "正在添加记录……" #: exif/actions.c:264 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD‘%s’中没有 EXIF 信息标识‘%s’!" #: exif/actions.c:294 #, c-format msgid "Could not open '%s' (%s)!" msgstr "无法打开‘%s’(%s)!" #: exif/actions.c:306 #, c-format msgid "Could not read '%s' (%s)." msgstr "无法读取‘%s’(%s)。" #: exif/actions.c:325 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD ‘%s’中不含 EXIF 信息标识‘%s’。" #: exif/actions.c:331 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "‘%s’中不含标识‘%s’。" #: exif/actions.c:349 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "‘%s’中不含缩略图!" #: exif/actions.c:357 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "无法以写方式打开‘%s’(%s)!" #: exif/actions.c:379 #, c-format msgid "EXIF tags in '%s':" msgstr "‘%s’中的 EXIF 信息标识为:" #: exif/actions.c:475 #, c-format msgid "Unknown format or nonexistent MakerNote.\n" msgstr "未知格式或者 MakerNote 不存在。\n" #: exif/actions.c:483 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote 没有任何内容。\n" #: exif/actions.c:486 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote 含有 %i 个值:\n" #: exif/actions.c:497 exif/main.c:320 msgid "Unknown Tag" msgstr "未知的信息标识" #: exif/actions.c:509 msgid "Unknown value" msgstr "未知值" #: exif/actions.c:533 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "‘%s’中的EXIF 信息标识(‘%s’字节顺序):" #: exif/actions.c:539 msgid "Tag" msgstr "信息标识" #: exif/actions.c:545 msgid "Value" msgstr "值" #: exif/actions.c:560 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF 数据中含有缩略图(%i 个字节)。" #: exif/actions.c:602 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "缩略图尺寸\t%i\n" #: exif/main.c:194 msgid "Display software version" msgstr "显示软件版本" #: exif/main.c:196 msgid "Show IDs instead of tag names" msgstr "显示 IDs,以代替信息标识名称" #: exif/main.c:198 msgid "Select tag" msgstr "选择信息标识" #: exif/main.c:198 msgid "tag" msgstr "信息标识" #: exif/main.c:200 msgid "Select IFD" msgstr "选择 IFD" #: exif/main.c:200 msgid "IFD" msgstr "IFD" #: exif/main.c:202 msgid "List all EXIF tags" msgstr "列出所有 EXIF 信息标识" #: exif/main.c:204 msgid "Show contents of tag MakerNote" msgstr "显示 MakerNote 的内容" #: exif/main.c:206 msgid "Remove tag or ifd" msgstr "删除信息标识或是 ifd" #: exif/main.c:208 msgid "Show description of tag" msgstr "显示信息标识说明" #: exif/main.c:210 msgid "Extract thumbnail" msgstr "解出缩略图" #: exif/main.c:212 msgid "Remove thumbnail" msgstr "删除缩略图" #: exif/main.c:214 msgid "Insert FILE as thumbnail" msgstr "将 FILE 作为缩略图插入" #: exif/main.c:214 exif/main.c:218 msgid "FILE" msgstr "FILE" #: exif/main.c:216 msgid "Do not fix existing tags in files" msgstr "不修复文件中存在的标识信息" #: exif/main.c:218 msgid "Write data to FILE" msgstr "将数据写入 FILE" #: exif/main.c:220 msgid "Value of tag" msgstr "tag 值" #: exif/main.c:220 msgid "STRING" msgstr "STRING" #: exif/main.c:222 msgid "Create EXIF data if not existing" msgstr "如果 EXIF 数据不存在就创建它" #: exif/main.c:224 msgid "Output in a machine-readable (tab delimited) format" msgstr "以机器可读的格式(tab 分隔)输出" #: exif/main.c:227 msgid "Width of output" msgstr "输出宽度" #: exif/main.c:227 msgid "WIDTH" msgstr "宽度" #: exif/main.c:229 msgid "Output in a XML format" msgstr "以 XML 格式输出" #: exif/main.c:232 msgid "Show debugging messages" msgstr "显示调示信息" #: exif/main.c:238 msgid "Help options:" msgstr "帮助选项:" #: exif/main.c:239 msgid "Show this help message" msgstr "显示此帮助信息" #: exif/main.c:240 msgid "Display brief usage message" msgstr "显示简短的使用信息" #: exif/main.c:261 msgid "[OPTION...] file" msgstr "[选项...] 文件" #: exif/main.c:276 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "无效的 IFD‘%s’。有效的 IFDs 是‘0’,‘1’,‘EXIF’,‘GPS’,以及‘Interoperability’。" #: exif/main.c:285 #, c-format msgid "Invalid tag '%s'!" msgstr "无效的 EXIF 信息标识‘%s’!" #: exif/main.c:293 msgid "You need to specify a tag!" msgstr "您需要指定一个 EXIF 信息标识!" #: exif/main.c:298 msgid "You need to specify an IFD!" msgstr "您需要指定一个IFD!" #: exif/main.c:335 #, c-format msgid "Tag '%s' " msgstr "信息标识‘%s’" #: exif/main.c:337 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x,‘%s’): " #: exif/main.c:351 msgid "Specify input file or --create-exif" msgstr "请指定输入文件或使用 --create-exif 选项" #: exif/main.c:417 #, c-format msgid "'%s' is not readable or does not contain EXIF data!" msgstr "‘%s’不可读或者是没有 EXIF 数据!" #: exif/main.c:444 msgid "XML format is not available for Maker Notes" msgstr "Maker NOtes 无法使用XML 格式" #~ msgid "Could not open '%s' (%m)!" #~ msgstr "无法打开‘%s’(%m)!" #~ msgid "Could not read '%s' (%m)." #~ msgstr "无法读取‘%s’(%m)。" #~ msgid "Could not open '%s' for writing (%m)!" #~ msgstr "无法以写方式打开‘%s’(%m)!" #~ msgid "Unknown MakerNote format.\n" #~ msgstr "未知的 MakerNote 格式。\n" #~ msgid "Please specify a tag!" #~ msgstr "请指定一个 EXIF 信息标识!" exif-exif-0_6_22-release/test/000077500000000000000000000000001366114026400162275ustar00rootroot00000000000000exif-exif-0_6_22-release/test/.gitignore000066400000000000000000000000431366114026400202140ustar00rootroot00000000000000Makefile.in Makefile check-vars.sh exif-exif-0_6_22-release/test/Makefile.am000066400000000000000000000015351366114026400202670ustar00rootroot00000000000000# "exif" test scripts # Only tests that work without image files should be found here. # More complicated tests should be put into the libexif-testsuite module. # check-vars.sh.in is automatically included EXTRA_DIST = \ check-add-tags.sh \ check-create-tags.sh \ check-help.sh \ check-init-mandatory-tags.sh \ check-no-seek.sh \ check-param-validity.sh \ check-required-file.sh \ check-show-description.sh \ check-show-tag.sh \ check-tag-description.sh \ check-thumbnail.sh \ check-version.sh \ testdata/no-exif.jpg check_SCRIPTS = \ check-add-tags.sh \ check-create-tags.sh \ check-help.sh \ check-init-mandatory-tags.sh \ check-no-seek.sh \ check-param-validity.sh \ check-required-file.sh \ check-show-description.sh \ check-show-tag.sh \ check-tag-description.sh \ check-thumbnail.sh \ check-version.sh TESTS = $(check_SCRIPTS) exif-exif-0_6_22-release/test/check-add-tags.sh000077500000000000000000000116621366114026400213330ustar00rootroot00000000000000#!/bin/sh # Adds tags to an exiting EXIF file. Checks that the tag data is interpreted # correctly from the command line. Tags representative of as many different # data types as possible are included. Data inputs with extra spaces, # plus and minus signs are tested. . ./check-vars.sh readonly srcimg="add-tag-src.out.jpg" readonly dstimg="add-tag.out.jpg" readonly tmpfile="add-tag.tmp" # Run this in the C locale so the messages and decimals are known LANG=C; export LANG LANGUAGE=C; export LANGUAGE LC_NUMERIC=C; export LC_NUMERIC error=0 check_result () { s="$?" if test "$s" -ne 0; then echo " FAILED (${s})." error=1 fi } append_image () { if [ -e "$dstimg" ] ; then mv -f "$dstimg" "$srcimg" fi } echo Create an empty EXIF tag block $EXIFEXE --create-exif --no-fixup -o "$srcimg" "$SRCDIR/testdata/no-exif.jpg" check_result echo Create SHORT value $EXIFEXE --no-fixup --ifd=EXIF --tag=FocalLengthIn35mmFilm --set-value='12345' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create SHORT value array $EXIFEXE --no-fixup --ifd=0 --tag=YCbCrSubSampling --set-value='2 2' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo 'Create SHORT value (enum)' $EXIFEXE --no-fixup --ifd=EXIF --tag=SceneCaptureType --set-value='3' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo 'Create SHORT value (hex tag)' $EXIFEXE --no-fixup --ifd=EXIF --tag=0xa401 --set-value='2' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo 'Create SHORT value (decimal tag)' $EXIFEXE --no-fixup --ifd=EXIF --tag=41986 --set-value=1 -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo 'Create SHORT value (tag title)' $EXIFEXE --no-fixup --ifd=EXIF --tag='White Balance' --set-value=1 -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create LONG value $EXIFEXE --no-fixup --ifd=EXIF --tag=PixelXDimension --set-value=64 -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create RATIONAL value $EXIFEXE --no-fixup --ifd=0 --tag=XResolution --set-value=' 99 1' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create RATIONAL value array $EXIFEXE --no-fixup --ifd=0 --tag=WhitePoint --set-value='+9 2 19 3 ' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create SRATIONAL value $EXIFEXE --no-fixup --ifd=EXIF --tag=ExposureBiasValue --set-value='-3 2' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create UNDEFINED value $EXIFEXE --no-fixup --ifd=EXIF --tag=SceneType --set-value=1 -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create UNDEFINED value array $EXIFEXE --no-fixup --ifd=EXIF --tag=FlashPixVersion --set-value='49 50 51 52' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create ASCII value $EXIFEXE --no-fixup --ifd=0 --tag=ImageDescription --set-value='The image description' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo 'Create ASCII value (User Comment)' $EXIFEXE --no-fixup --ifd=EXIF --tag=UserComment --set-value='The user comment' -o "$dstimg" "$srcimg" >/dev/null check_result append_image # Count the number of tags numtags=`$EXIFEXE --no-fixup -m -i "$srcimg" | wc -l` echo Must be 14 tags: $numtags test "$numtags" -eq 14 check_result # The remaining tests are failure mode tests echo Test invalid RATIONAL--not enough components $EXIFEXE --no-fixup --ifd=0 --tag=XResolution --set-value=99 -o "$dstimg" "$srcimg" >/dev/null || test "$?" -eq 1 check_result append_image echo Test invalid RATIONAL--not digits $EXIFEXE --no-fixup --ifd=0 --tag=YResolution --set-value='9 b' -o "$dstimg" "$srcimg" >/dev/null test "$?" -eq 1 check_result append_image echo Test invalid SHORT--no value $EXIFEXE --no-fixup --ifd=0 --tag=FocalLengthIn35mmFilm --set-value='' -o "$dstimg" "$srcimg" >/dev/null test "$?" -eq 1 check_result append_image echo Test invalid SHORT--invalid tag $EXIFEXE --no-fixup --ifd=0 --tag=0xbbbb --set-value=1 -o "$dstimg" "$srcimg" >/dev/null test "$?" -eq 1 check_result append_image echo Test invalid RATIONAL--too many components # exif treats this as a warning and doesn't report an error code $EXIFEXE --no-fixup --ifd=0 --tag=XResolution --set-value='12 2 3' -o "$dstimg" "$srcimg" >/dev/null check_result append_image echo Create invalid ASCII--too large $EXIFEXE --no-fixup --ifd=0 --tag=ImageDescription --set-value="`printf '%66000s' foo`" -o "$dstimg" "$srcimg" >/dev/null test "$?" -eq 1 check_result append_image # Check the resulting EXIF file $EXIFEXE -m -i "$srcimg" >"$tmpfile" "$DIFFEXE" - "$tmpfile" </dev/null test $? -eq 0 || exit 1 $EXIFEXE -\? | grep '^ -r, --remove-thumbnail Remove thumbnail$' >/dev/null test $? -eq 0 || exit 1 $EXIFEXE | grep '^ -r, --remove-thumbnail Remove thumbnail$' >/dev/null test $? -eq 0 || exit 1 echo PASSED exif-exif-0_6_22-release/test/check-init-mandatory-tags.sh000077500000000000000000000073161366114026400235430ustar00rootroot00000000000000#!/bin/sh # Ensure that all mandatory tags can be created with --set-value # TODO: add the other mandatory values for all image types . ./check-vars.sh readonly dstimg="init-mandatory.out.jpg" readonly srcimg="$SRCDIR/testdata/no-exif.jpg" error=0 check_result () { s="$?" if test "$s" -ne 0; then echo " FAILED (${s})." error=1 fi } # IFD 0 mandatory entries echo Create XResolution $EXIFEXE --create-exif --no-fixup --ifd=0 --tag=XResolution --set-value=' 99 1' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create YResolution $EXIFEXE --create-exif --no-fixup --ifd=0 --tag=YResolution --set-value='123 2' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create ResolutionUnit $EXIFEXE --create-exif --no-fixup --ifd=0 --tag=ResolutionUnit --set-value='3' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create DateTime $EXIFEXE --create-exif --no-fixup --ifd=0 --tag=DateTime --set-value='2010:01:22 03:44:55' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create YCbCrPositioning $EXIFEXE --create-exif --no-fixup --ifd=0 --tag=YCbCrPositioning --set-value='2' -o "$dstimg" "$srcimg" >/dev/null check_result # IFD EXIF mandatory entries echo Create ExifVersion $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=ExifVersion --set-value='48 50 50 49' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create ComponentsConfiguration $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=ComponentsConfiguration --set-value='2 3 1 0' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create FlashPixVersion $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=FlashPixVersion --set-value='48 49 48 48' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create ColorSpace $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=ColorSpace --set-value='2' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create PixelXDimension $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=PixelXDimension --set-value='64' -o "$dstimg" "$srcimg" >/dev/null check_result echo Create PixelYDimension $EXIFEXE --create-exif --no-fixup --ifd=EXIF --tag=PixelYDimension --set-value='32' -o "$dstimg" "$srcimg" >/dev/null check_result rm -f "$dstimg" echo Test complete: status $error exit "$error" Here are the default values created by exif for the mandatory tags for which it is able to create default values. EXIF tags in '(EXIF)' ('Motorola' byte order): ------+------------------------------------------------------------------------ Tag |Value ------+------------------------------------------------------------------------ 0x011a|72.00 0x011b|72.00 0x0128|Inch 0x0213|Centred 0x0132|2010:09:25 23:58:21 0x9000|Exif Version 2.1 0x9101|Y Cb Cr - 0xa000|FlashPix Version 1.0 0xa001|Uncalibrated 0xa002|0 0xa003|0 ------+------------------------------------------------------------------------ EXIF tags in '(EXIF)': 0 1 EXIF GPS Interop 0x011a X-Resolution * - - - - 0x011b Y-Resolution * - - - - 0x0128 Resolution Unit * - - - - 0x0132 Date and Time * - - - - 0x0213 YCbCr Positioning * - - - - 0x9000 Exif Version - - * - - 0x9101 Components Configuration - - * - - 0xa000 FlashPixVersion - - * - - 0xa001 Colour Space - - * - - 0xa002 Pixel X Dimension - - * - - 0xa003 Pixel Y Dimension - - * - - exif-exif-0_6_22-release/test/check-no-seek.sh000077500000000000000000000050641366114026400212070ustar00rootroot00000000000000#!/bin/sh # Check that operations on files that can't seek are cleanly handled. . ./check-vars.sh readonly tmpfifo="check-no-seek-fifo.tmp" readonly srcimg="$SRCDIR/testdata/no-exif.jpg" readonly tmpfile="check-no-seek.tmp" rm -f "${tmpfifo}" mkfifo "${tmpfifo}" || { echo "Could not create FIFO; skipping test"; exit 0; } echo Check that write to FIFO succeeds # Throw away any data written to the FIFO cat ${tmpfifo} > /dev/null & $EXIFEXE --create-exif -o "${tmpfifo}" >/dev/null test $? -eq 0 || { echo Incorrect return code, expected 0; exit 1; } # Kill the cat and wait for it to exit kill $! wait $! 2>/dev/null echo Check that write to FIFO with early close fails cleanly # Throw away the first byte of data written to the FIFO then close the FIFO, # triggering a write error in exif. A FIFO in all tested OSes buffers up to # 1MiB of data, so the write needs to be larger than that to invoke a write # failure everywhere. This is done by writing a large image, created by # appending some dummy JPEG APP15 sections to a small JPEG file. $EXIFEXE --create-exif "${srcimg}" -o "${tmpfile}" for n in $(seq 16); do printf '\xff\xef\xff\xff%65531s' filler >>"${tmpfile}"; done dd if="${tmpfifo}" of=/dev/null bs=1 count=1 2>/dev/null & $EXIFEXE -r -o "${tmpfifo}" "${tmpfile}" >/dev/null test $? -eq 1 || { echo Incorrect return code, expected 1; exit 1; } # Make sure dd is killed and wait for it to exit kill $! wait $! 2>/dev/null echo Check that read of image from unseekable FIFO fails cleanly # Reading from an image requires its size which can't be determined from a # FIFO. exif should detect this and cleanly exit. It should really be # fixed so it doesn't need the size in advance. # Write the source image to the FIFO twice, since exif reads it twice. # The sleep is to allow the EOF to be read the first time before it's written # the second time. (cat "${srcimg}" >"${tmpfifo}"; sleep 1; cat "${srcimg}" >"${tmpfifo}") & $EXIFEXE --create-exif -o /dev/null "${tmpfifo}" >/dev/null test $? -eq 1 || { echo Incorrect return code, expected 1; exit 1; } # Kill cat and wait for it to exit kill $! wait $! 2>/dev/null echo Check that read of thumbnail from unseekable FIFO fails cleanly # Same situation as the previous test, but on the thumbnail read path. (cat "${srcimg}" >"${tmpfifo}"; sleep 1; cat "${srcimg}" >"${tmpfifo}") & $EXIFEXE --create-exif --insert-thumbnail="${tmpfifo}" -o /dev/null "${srcimg}" test $? -eq 1 || { echo Incorrect return code, expected 1; exit 1; } # Kill the cat and wait for it to exit kill $! wait $! 2>/dev/null echo PASSED rm -f "${tmpfifo}" "${tmpfile}" exif-exif-0_6_22-release/test/check-param-validity.sh000077500000000000000000000011611366114026400225630ustar00rootroot00000000000000#!/bin/sh # Test handling of some basic command-line parameters . ./check-vars.sh error=0 echo -n "Running \`${EXIFEXE} --help'..." if ${EXIFEXE} --help > /dev/null; then echo " good (return code 0)" else echo " bad (return code != 0)" error="$(expr "$error" + 1)" fi echo -n "Running \`${EXIFEXE} --thisparameterdoesnotexist'..." if ${EXIFEXE} --thisparameterdoesnotexist > /dev/null; then echo " bad (return code 0)" error="$(expr "$error" + 1)" else echo " good (return code != 0)" fi if test "$error" = "0"; then echo PASSED exit 0 else echo "FAILED $error checks." exit 1 fi exif-exif-0_6_22-release/test/check-required-file.sh000077500000000000000000000032711366114026400224010ustar00rootroot00000000000000#!/bin/sh # Test that operations requiring a file return an error message . ./check-vars.sh readonly tmpfile="check-missing-file.tmp" readonly srcimg="$SRCDIR/testdata/no-exif.jpg" echo Test that setting a tag requires a file $EXIFEXE --ifd=0 --tag=Model --set-value="TEST" > "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <. The version is given as 2.0.0.0. This tag is mandatory when tag is present. (Note: The tag is given in bytes, unlike the tag. When the version is 2.0.0.0, the tag value is 02000000.H). EOF test $? -eq 0 || exit 1 echo Test --machine-readable using hexadecimal tag $EXIFEXE --ifd=1 --tag=0x103 --show-description --machine-readable > "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < 65535" $EXIFEXE --ifd=GPS --tag=65537 --show-description > "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } # TODO: exif shouldn't really be writing (null) here $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <&1 > "$tmpfile" test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <>"$tmpfile" done done echo Test --machine-readable, using first mandatory tag $EXIFEXE --tag=0x11a --ifd=0 -m -s >>"$tmpfile" "$DIFFEXE" - "$tmpfile" <. The version is given as 2.0.0.0. This tag is mandatory when tag is present. (Note: The tag is given in bytes, unlike the tag. When the version is 2.0.0.0, the tag value is 02000000.H). Tag 'North or South Latitude' (0x0001, 'GPSLatitudeRef'): Indicates whether the latitude is north or south latitude. The ASCII value 'N' indicates north latitude, and 'S' is south latitude. Tag 'Interoperability Index' (0x0001, 'InteroperabilityIndex'): Indicates the identification of the Interoperability rule. Use "R98" for stating ExifR98 Rules. Four bytes used including the termination code (NULL). see the separate volume of Recommended Exif Interoperability Rules (ExifR98) for other tags used for ExifR98. Tag 'Image Width' (0x0100, 'ImageWidth'): The number of columns of image data, equal to the number of pixels per row. In JPEG compressed data a JPEG marker is used instead of this tag. Tag 'New Subfile Type' (0x00fe, 'NewSubfileType'): A general indication of the kind of data contained in this subfile. Tag 'JPEG Interchange Format' (0x0201, 'JPEGInterchangeFormat'): The offset to the start byte (SOI) of JPEG compressed thumbnail data. This is not used for primary image JPEG data. Tag 'Image Unique ID' (0xa420, 'ImageUniqueID'): This tag indicates an identifier assigned uniquely to each image. It is recorded as an ASCII string equivalent to hexadecimal notation and 128-bit fixed length. Tag 'Padding' (0xea1c, 'Padding'): This tag reserves space that can be reclaimed later when additional metadata are added. New metadata can be written in place by replacing this tag with a smaller data element and using the reclaimed space to store the new or expanded metadata tags. 0x011a XResolution X-Resolution The number of pixels per in the direction. When the image resolution is unknown, 72 [dpi] is designated. EOF error="$?" rm -f "$tmpfile" echo Test complete: status $error exit "$error" exif-exif-0_6_22-release/test/check-thumbnail.sh000077500000000000000000000210621366114026400216250ustar00rootroot00000000000000#!/bin/sh # Test thumbnail operations . ./check-vars.sh readonly tmpfile="check-thumbnail-out.tmp" readonly tmpimg="check-thumbnail-image.jpg" readonly tmpimg2="check-thumbnail-image2.jpg" readonly srcimg="$SRCDIR/testdata/no-exif.jpg" # Run this in the C locale so the messages are known LANG=C; export LANG LANGUAGE=C; export LANGUAGE echo Create EXIF with thumbnail cp "$srcimg" "$tmpimg" # Add image to itself as its own thumbnail $EXIFEXE --create-exif --insert-thumbnail="$tmpimg" --output="$tmpimg" "$tmpimg" > "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" $DIFFEXE - "$tmpfile" <&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 1 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" < "$tmpfile" 2>&1 test $? -eq 0 || { echo Incorrect return code; exit 1; } $EXIFEXE --no-fixup "$tmpimg" 2>&1 | sed -e "/Date and Time/s/|.*$/|/" > "$tmpfile" $DIFFEXE - "$tmpfile" <&1 > "$tmpfile" test $? -eq 0 || { echo Incorrect return code; exit 1; } $DIFFEXE - "$tmpfile" <:z+-㯟 Hq0{ d8_}FlI3_Q|,Bp|mE,[Ѵܣ A.J+A6ƑJ $fEZ2ZbW}pyJ UYNzǔ.t B;0 _59ns-@hgo5RL er:ZM&sA[r֢sn6B@Y =pۄ)l@B;?<"A_ (REqnم[@%G$yHS)'AT qɒ}tu'U<8E\<@@TOA>OZ-m(q!I$A]?dYa$HɟjK׬69nP:Doeq%XrR£rFK8.2[@܍>zvAQ1 4ۗ,ͺ<$it!-(JBR@)o'dĀ)P$lGԒxB  'N'm`nTq[Ҿs8rO*%%'AR{ϫ]0O1W~jcna$ek;>JcEQEQE