summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2019-09-13 09:16:16 -0700
committerJohn Stebbins <[email protected]>2019-09-13 17:13:35 -0700
commit8a61da6e7e6214565afa3ba6b88161044e8a3df6 (patch)
tree289ef448dd96eacc4826cf37f7b16ab273089e8a
parent9562e631c54664fc97fb3228f67e514e01c1913c (diff)
LinGui: use gettext instead of intltool
gettext can do the whole translation parsing job now and intltool is deprecated. it is not available in flatpak's gnome sdk
-rw-r--r--gtk/Makefile.am2
-rw-r--r--gtk/configure.ac23
-rw-r--r--gtk/po/Makefile.in.in483
-rw-r--r--gtk/po/Makevars78
-rw-r--r--gtk/po/POTFILES.in7
-rw-r--r--gtk/po/Rules-quot58
-rw-r--r--gtk/po/boldquot.sed10
-rw-r--r--gtk/po/[email protected]25
-rw-r--r--gtk/po/[email protected]22
-rw-r--r--gtk/po/ghb.pot3172
-rw-r--r--gtk/po/insert-header.sin23
-rw-r--r--gtk/po/quot.sed6
-rw-r--r--gtk/po/remove-potcdate.sin19
-rw-r--r--gtk/src/Makefile.am6
-rw-r--r--gtk/src/fr.handbrake.ghb.appdata.template.xml (renamed from gtk/src/fr.handbrake.ghb.appdata.xml.template)0
15 files changed, 3918 insertions, 16 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 19050d916..2d87d0400 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -15,3 +15,5 @@ dist-hook:
fi \
done
+
+ACLOCAL_AMFLAGS = -I m4
diff --git a/gtk/configure.ac b/gtk/configure.ac
index dc3a7dc26..0f4f33f85 100644
--- a/gtk/configure.ac
+++ b/gtk/configure.ac
@@ -1,10 +1,9 @@
dnl Process this file with autoconf to produce a configure script.
dnl Created by Anjuta application wizard.
-AC_INIT(ghb, 0.1)
+AC_INIT([ghb], [0.1])
+AM_INIT_AUTOMAKE([-Wall 1.7.9 foreign dist-bzip2 dist-zip])
-AM_INIT_AUTOMAKE([1.7.9 foreign dist-bzip2 dist-zip])
-AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
AC_USE_SYSTEM_EXTENSIONS
@@ -14,6 +13,16 @@ AC_PROG_CXX(g++ clang++)
AM_PROG_CC_STDC
AC_HEADER_STDC
+AM_CONFIG_HEADER([config.h])
+AC_CONFIG_FILES([
+po/Makefile.in
+Makefile
+src/Makefile
+])
+
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.19.8])
+
if test x"$CC_FOR_BUILD" = x; then
if test x"$cross_compiling" = x"yes"; then
AC_CHECK_PROGS(CC_FOR_BUILD, gcc clang, cc)
@@ -105,8 +114,6 @@ dnl ***************************************************************************
GETTEXT_PACKAGE=ghb
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])
-AM_GLIB_GNU_GETTEXT
-IT_PROG_INTLTOOL([0.35.0])
AM_PROG_LIBTOOL
@@ -252,8 +259,4 @@ AC_SUBST(HB_LIBS)
AC_SUBST(GHB_CFLAGS)
AC_SUBST(GHB_LIBS)
-AC_OUTPUT([
-Makefile
-src/Makefile
-po/Makefile.in
-])
+AC_OUTPUT
diff --git a/gtk/po/Makefile.in.in b/gtk/po/Makefile.in.in
new file mode 100644
index 000000000..38c293d2e
--- /dev/null
+++ b/gtk/po/Makefile.in.in
@@ -0,0 +1,483 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <[email protected]>
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+#
+# Origin: gettext-0.19.8
+GETTEXT_MACRO_VERSION = 0.19
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SED = @SED@
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+# When building gettext-tools, we prefer to use the built programs
+# rather than installed programs. However, we can't do that when we
+# are cross compiling.
+CROSS_COMPILING = @CROSS_COMPILING@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot
+POFILESDEPS_yes = $(POFILESDEPS_)
+POFILESDEPS_no =
+POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT))
+
+DISTFILESDEPS_ = update-po
+DISTFILESDEPS_yes = $(DISTFILESDEPS_)
+DISTFILESDEPS_no =
+DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# Ensure that the gettext macros and this Makefile.in.in are in sync.
+CHECK_MACRO_VERSION = \
+ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ exit 1; \
+ }
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ @$(CHECK_MACRO_VERSION)
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+# The determination of whether the package xyz is a GNU one is based on the
+# heuristic whether some file in the top level directory mentions "GNU xyz".
+# If GNU 'find' is available, we avoid grepping through monster files.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ package_gnu="$(PACKAGE_GNU)"; \
+ test -n "$$package_gnu" || { \
+ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
+ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
+ -size -10000000c -exec grep 'GNU @PACKAGE@' \
+ /dev/null '{}' ';' 2>/dev/null; \
+ else \
+ LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+ fi; \
+ } | grep -v 'libtool:' >/dev/null; then \
+ package_gnu=yes; \
+ else \
+ package_gnu=no; \
+ fi; \
+ }; \
+ if test "$$package_gnu" = "yes"; then \
+ package_prefix='GNU '; \
+ else \
+ package_prefix=''; \
+ fi; \
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ *) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --package-name="$${package_prefix}@PACKAGE@" \
+ --package-version='@VERSION@' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ esac
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot-header; then \
+ sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
+ cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po; \
+ rm -f $(DOMAIN).1po; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(POFILESDEPS)
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) \
+ && { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+ esac; \
+ }; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir) || exit 1; \
+ else \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ esac; \
+ }; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
+# because execution permission bits may not work on the current file system.
+# Use @SHELL@, which is the shell determined by autoconf for the use by its
+# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && @SHELL@ ./config.status $(subdir)/[email protected] po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/po/Makevars b/gtk/po/Makevars
new file mode 100644
index 000000000..9b02d79ba
--- /dev/null
+++ b/gtk/po/Makevars
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty. If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU =
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context. Possible values are "yes" and "no". Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = no
+
+# These options get passed to msgmerge.
+# Useful options are in particular:
+# --previous to keep previous msgids of translated messages,
+# --quiet to reduce the verbosity.
+MSGMERGE_OPTIONS =
+
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS =
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed. Possible values are "yes" and "no". Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = yes
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist". Possible values are "yes" and
+# "no". Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = yes
diff --git a/gtk/po/POTFILES.in b/gtk/po/POTFILES.in
index fce202662..957df2b77 100644
--- a/gtk/po/POTFILES.in
+++ b/gtk/po/POTFILES.in
@@ -1,10 +1,9 @@
# List of source files containing translatable strings.
-[type: gettext/glade]src/ghb.m4
-[type: gettext/xml]src/fr.handbrake.ghb.appdata.xml.template
-src/main.c
+src/ghb3.ui
+src/fr.handbrake.ghb.appdata.template.xml
src/audiohandler.c
src/callbacks.c
-src/ghbcellrenderertext.c
+src/chapters.c
src/ghb-dvd.c
src/hb-backend.c
src/main.c
diff --git a/gtk/po/Rules-quot b/gtk/po/Rules-quot
new file mode 100644
index 000000000..baf652858
--- /dev/null
+++ b/gtk/po/Rules-quot
@@ -0,0 +1,58 @@
+# This file, Rules-quot, can be copied and used freely without restrictions.
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed [email protected] [email protected] insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+
+
+.insert-header.po-update-en:
+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ ll=`echo $$lang | sed -e 's/@.*//'`; \
+ LC_ALL=C; export LC_ALL; \
+ cd $(srcdir); \
+ if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \
+ | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \
+ { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \
+ $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \
+ ;; \
+ *) \
+ $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \
+ ;; \
+ esac } 2>/dev/null > $$tmpdir/$$lang.new.po \
+ ; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "creation of $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
[email protected]: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/[email protected]/g' $(srcdir)/insert-header.sin > [email protected]
+
[email protected]: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/[email protected]/g' $(srcdir)/insert-header.sin > [email protected]
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+ rm -f *.insert-header
diff --git a/gtk/po/boldquot.sed b/gtk/po/boldquot.sed
new file mode 100644
index 000000000..4b937aa51
--- /dev/null
+++ b/gtk/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff --git a/gtk/po/[email protected] b/gtk/po/[email protected]
new file mode 100644
index 000000000..fedb6a06d
--- /dev/null
+++ b/gtk/po/[email protected]
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/gtk/po/[email protected] b/gtk/po/[email protected]
new file mode 100644
index 000000000..a9647fc35
--- /dev/null
+++ b/gtk/po/[email protected]
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/gtk/po/ghb.pot b/gtk/po/ghb.pot
new file mode 100644
index 000000000..a708c3743
--- /dev/null
+++ b/gtk/po/ghb.pot
@@ -0,0 +1,3172 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the ghb package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#: src/main.c:250 src/main.c:255 src/main.c:315 src/main.c:319
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ghb 0.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-13 08:41-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <[email protected]>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ghb3.ui:23
+msgid ""
+"Render the subtitle over the video.\n"
+"\n"
+"The subtitle will be part of the video and can not be disabled."
+msgstr ""
+
+#: src/ghb3.ui:26
+msgid "<b>Burned In</b>"
+msgstr ""
+
+#: src/ghb3.ui:32 src/ghb3.ui:9082
+msgid ""
+"Set the default output subtitle track.\n"
+"\n"
+"Most players will automatically display this\n"
+"subtitle track whenever the video is played.\n"
+"\n"
+"This is useful for creating a \"forced\" track\n"
+"in your output."
+msgstr ""
+
+#: src/ghb3.ui:39
+msgid "<b>Default</b>"
+msgstr ""
+
+#: src/ghb3.ui:45 src/ghb3.ui:9044
+msgid ""
+"Use only subtitles that have been flagged\n"
+"as forced in the source subtitle track\n"
+"\n"
+"\"Forced\" subtitles are usually used to show\n"
+"subtitles during scenes where someone is speaking\n"
+"a foreign language."
+msgstr ""
+
+#: src/ghb3.ui:51
+msgid "<b>Forced Only</b>"
+msgstr ""
+
+#: src/ghb3.ui:57
+msgid ""
+"Add (or subtract) an offset (in milliseconds)\n"
+"to the start of the SRT subtitle track.\n"
+"\n"
+"Often, the start of an external SRT file\n"
+"does not coincide with the start of the video.\n"
+"This setting allows you to synchronize the files."
+msgstr ""
+
+#: src/ghb3.ui:63
+msgid "<b>SRT Offset</b>"
+msgstr ""
+
+#: src/ghb3.ui:69
+msgid ""
+"The source subtitle track\n"
+"\n"
+"You can choose any of the subtitles\n"
+"recognized in your source file.\n"
+"\n"
+"In addition, there is a special track option\n"
+"\"Foreign Audio Scan\". This option will add\n"
+"an extra pass to the encode that searches for\n"
+"subtitles that may correspond to a foreign\n"
+"language scene. This option is best used in\n"
+"conjunction with the \"Forced\" option."
+msgstr ""
+
+#: src/ghb3.ui:80
+msgid "<b>Track</b>"
+msgstr ""
+
+#: src/ghb3.ui:87
+msgid "Open Source Directory"
+msgstr ""
+
+#: src/ghb3.ui:91
+msgid "Open Destination Directory"
+msgstr ""
+
+#: src/ghb3.ui:95
+msgid "Open Encode Log Directory"
+msgstr ""
+
+#: src/ghb3.ui:99
+msgid "Open Encode Log"
+msgstr ""
+
+#: src/ghb3.ui:108
+msgid "Reset Failed Jobs"
+msgstr ""
+
+#: src/ghb3.ui:112
+msgid "Reset All Jobs"
+msgstr ""
+
+#: src/ghb3.ui:116
+msgid "Clear Completed Jobs"
+msgstr ""
+
+#: src/ghb3.ui:120
+msgid "Clear All Jobs"
+msgstr ""
+
+#: src/ghb3.ui:124
+msgid "Import Queue"
+msgstr ""
+
+#: src/ghb3.ui:128
+msgid "Export Queue"
+msgstr ""
+
+#: src/ghb3.ui:135
+msgid "HandBrake Presets"
+msgstr ""
+
+#: src/ghb3.ui:163 src/ghb3.ui:2088
+msgid "_Presets"
+msgstr ""
+
+#: src/ghb3.ui:171 src/ghb3.ui:2096
+msgid "Set De_fault"
+msgstr ""
+
+#: src/ghb3.ui:185 src/ghb3.ui:2110
+msgid "_Save"
+msgstr ""
+
+#: src/ghb3.ui:194 src/ghb3.ui:2119
+msgid "Save _As"
+msgstr ""
+
+#: src/ghb3.ui:203 src/ghb3.ui:2128
+msgid "_Rename"
+msgstr ""
+
+#: src/ghb3.ui:212 src/ghb3.ui:2137
+msgid "_Delete"
+msgstr ""
+
+#: src/ghb3.ui:226 src/ghb3.ui:2151
+msgid "_Import"
+msgstr ""
+
+#: src/ghb3.ui:235 src/ghb3.ui:2160
+msgid "_Export"
+msgstr ""
+
+#: src/ghb3.ui:249 src/ghb3.ui:2174
+msgid "Reset _Built-in Presets"
+msgstr ""
+
+#: src/ghb3.ui:304
+msgid "<b>Presets List</b>"
+msgstr ""
+
+#: src/ghb3.ui:318
+msgid "HandBrake Queue"
+msgstr ""
+
+#: src/ghb3.ui:352
+msgid "<span size=\"x-large\">Queue</span>"
+msgstr ""
+
+#: src/ghb3.ui:367
+msgid "0 jobs pending"
+msgstr ""
+
+#: src/ghb3.ui:404 src/ghb3.ui:2284 src/queuehandler.c:2331
+#: src/queuehandler.c:2344 src/queuehandler.c:2355
+msgid "Start Encoding"
+msgstr ""
+
+#: src/ghb3.ui:406 src/ghb3.ui:2286 src/ghb3.ui:6392 src/queuehandler.c:2330
+#: src/queuehandler.c:2343
+msgid "Start"
+msgstr ""
+
+#: src/ghb3.ui:420 src/ghb3.ui:2299 src/queuehandler.c:2369
+#: src/queuehandler.c:2382 src/queuehandler.c:2393
+msgid "Pause Encoding"
+msgstr ""
+
+#: src/ghb3.ui:422 src/ghb3.ui:2301 src/queuehandler.c:2368
+#: src/queuehandler.c:2381
+msgid "Pause"
+msgstr ""
+
+#: src/ghb3.ui:480
+msgid "Options"
+msgstr ""
+
+#: src/ghb3.ui:549
+msgid "When Done:"
+msgstr ""
+
+#: src/ghb3.ui:630
+msgid "Reset"
+msgstr ""
+
+#: src/ghb3.ui:632
+msgid ""
+"Mark selected queue entry as pending.\n"
+"Resets the queue job to pending and ready to run again."
+msgstr ""
+
+#: src/ghb3.ui:647
+msgid "Edit"
+msgstr ""
+
+#: src/ghb3.ui:692
+msgid "Actions"
+msgstr ""
+
+#: src/ghb3.ui:741 src/ghb3.ui:4785
+msgid "Preset:"
+msgstr ""
+
+#: src/ghb3.ui:777
+msgid "Source:"
+msgstr ""
+
+#: src/ghb3.ui:818
+msgid "Destination:"
+msgstr ""
+
+#: src/ghb3.ui:859
+msgid "Dimensions:"
+msgstr ""
+
+#: src/ghb3.ui:895
+msgid "Video:"
+msgstr ""
+
+#: src/ghb3.ui:931
+msgid "Audio:"
+msgstr ""
+
+#: src/ghb3.ui:967
+msgid "Subtitles:"
+msgstr ""
+
+#: src/ghb3.ui:1006 src/ghb3.ui:3145
+msgid "Summary"
+msgstr ""
+
+#: src/ghb3.ui:1044
+msgid "Pass:"
+msgstr ""
+
+#: src/ghb3.ui:1080
+msgid "Start Time:"
+msgstr ""
+
+#: src/ghb3.ui:1116
+msgid "End Time:"
+msgstr ""
+
+#: src/ghb3.ui:1156
+msgid "Paused Duration:"
+msgstr ""
+
+#: src/ghb3.ui:1196
+msgid "Encode Time:"
+msgstr ""
+
+#: src/ghb3.ui:1232
+msgid "File Size:"
+msgstr ""
+
+#: src/ghb3.ui:1268
+msgid "Status:"
+msgstr ""
+
+#: src/ghb3.ui:1307
+msgid "Statistics"
+msgstr ""
+
+#: src/ghb3.ui:1372
+msgid "Activity Log"
+msgstr ""
+
+#: src/ghb3.ui:1395
+msgid "HandBrake Activity Log"
+msgstr ""
+
+#: src/ghb3.ui:1670
+msgid "About HandBrake"
+msgstr ""
+
+#: src/ghb3.ui:1676
+msgid ""
+"Copyright © 2008 - John Stebbins\n"
+"Copyright © 2004 - , HandBrake Devs"
+msgstr ""
+
+#: src/ghb3.ui:1678
+msgid ""
+"HandBrake is a GPL-licensed, multiplatform, multithreaded video transcoder."
+msgstr ""
+
+#: src/ghb3.ui:1680
+msgid "https://handbrake.fr"
+msgstr ""
+
+#: src/ghb3.ui:1681
+msgid ""
+"HandBrake is free software; you can redistribute it and/or modify it under "
+"the terms of the GNU General Public License as published by the Free "
+"Software Foundation; either version 2 of the License, or (at your option) "
+"any later version.\n"
+"\n"
+"HandBrake is distributed in the hope that it will be useful, but WITHOUT ANY "
+"WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS "
+"FOR A PARTICULAR PURPOSE. See the GNU General Public License for more "
+"details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License along with "
+"Glade; if not, write to the Free Software Foundation, Inc., 51 Franklin "
+"Street, Fifth Floor, Boston, MA 02110-1301, USA."
+msgstr ""
+
+#: src/ghb3.ui:1867
+msgid "HandBrake"
+msgstr ""
+
+#: src/ghb3.ui:1890
+msgid "_File"
+msgstr ""
+
+#: src/ghb3.ui:1898
+msgid "Open _Source"
+msgstr ""
+
+#: src/ghb3.ui:1907
+msgid "Open Single _Title"
+msgstr ""
+
+#: src/ghb3.ui:1916
+msgid "Set _Destination"
+msgstr ""
+
+#: src/ghb3.ui:1931
+msgid "_Preferences"
+msgstr ""
+
+#: src/ghb3.ui:1946
+msgid "_Quit"
+msgstr ""
+
+#: src/ghb3.ui:1961 src/ghb3.ui:2055
+msgid "_Queue"
+msgstr ""
+
+#: src/ghb3.ui:1969
+msgid "_Add"
+msgstr ""
+
+#: src/ghb3.ui:1978
+msgid "Add _Multiple"
+msgstr ""
+
+#: src/ghb3.ui:1987 src/queuehandler.c:2354
+msgid "_Start Encoding"
+msgstr ""
+
+#: src/ghb3.ui:1996 src/queuehandler.c:2392
+msgid "_Pause Encoding"
+msgstr ""
+
+#: src/ghb3.ui:2005
+msgid "S_ave Queue"
+msgstr ""
+
+#: src/ghb3.ui:2014
+msgid "_Load Queue File"
+msgstr ""
+
+#: src/ghb3.ui:2029
+msgid "_View"
+msgstr ""
+
+#: src/ghb3.ui:2037
+msgid "HandBrake For _Dumbies"
+msgstr ""
+
+#: src/ghb3.ui:2046
+msgid "Presets _List"
+msgstr ""
+
+#: src/ghb3.ui:2064
+msgid "_Preview"
+msgstr ""
+
+#: src/ghb3.ui:2073
+msgid "_Activity Window"
+msgstr ""
+
+#: src/ghb3.ui:2189
+msgid "_Help"
+msgstr ""
+
+#: src/ghb3.ui:2197
+msgid "_About"
+msgstr ""
+
+#: src/ghb3.ui:2206
+msgid "_Guide"
+msgstr ""
+
+#: src/ghb3.ui:2244 src/callbacks.c:4115
+msgid "Choose Video Source"
+msgstr ""
+
+#: src/ghb3.ui:2246 src/callbacks.c:4114
+msgid "Open Source"
+msgstr ""
+
+#: src/ghb3.ui:2269
+msgid "Add to Queue"
+msgstr ""
+
+#: src/ghb3.ui:2271
+msgid "Add To Queue"
+msgstr ""
+
+#: src/ghb3.ui:2326
+msgid "Show Presets Window"
+msgstr ""
+
+#: src/ghb3.ui:2328
+msgid "Presets"
+msgstr ""
+
+#: src/ghb3.ui:2341
+msgid "Show Preview Window"
+msgstr ""
+
+#: src/ghb3.ui:2343
+msgid "Preview"
+msgstr ""
+
+#: src/ghb3.ui:2356
+msgid "Show Queue"
+msgstr ""
+
+#: src/ghb3.ui:2358 src/callbacks.c:4559
+msgid "Queue"
+msgstr ""
+
+#: src/ghb3.ui:2371
+msgid "Show Activity Window"
+msgstr ""
+
+#: src/ghb3.ui:2373
+msgid "Activity"
+msgstr ""
+
+#: src/ghb3.ui:2403
+msgid "<b>Source:</b>"
+msgstr ""
+
+#: src/ghb3.ui:2429 src/hb-backend.c:60 src/hb-backend.c:72 src/hb-backend.c:85
+#: src/hb-backend.c:250 src/hb-backend.c:335 src/hb-backend.c:2422
+#: src/hb-backend.c:2648 src/subtitlehandler.c:1366
+msgid "None"
+msgstr ""
+
+#: src/ghb3.ui:2474 src/callbacks.c:4087
+msgid "Scanning..."
+msgstr ""
+
+#: src/ghb3.ui:2508
+msgid "<b>Title:</b>"
+msgstr ""
+
+#: src/ghb3.ui:2536
+msgid ""
+"Set the title to encode.\n"
+"By default the longest title is chosen.\n"
+"This is often the feature title of a DVD."
+msgstr ""
+
+#: src/ghb3.ui:2558
+msgid "<small>No Titles</small>"
+msgstr ""
+
+#: src/ghb3.ui:2576
+msgid "<b>Angle:</b>"
+msgstr ""
+
+#: src/ghb3.ui:2588
+msgid "For multi-angle DVD's, select the desired angle to encode."
+msgstr ""
+
+#: src/ghb3.ui:2604
+msgid "<b>Range:</b>"
+msgstr ""
+
+#: src/ghb3.ui:2615
+msgid "Range of title to encode. Can be chapters, seconds, or frames."
+msgstr ""
+
+#: src/ghb3.ui:2628
+msgid "Set the first chapter to encode."
+msgstr ""
+
+#: src/ghb3.ui:2643
+msgid "-"
+msgstr ""
+
+#: src/ghb3.ui:2655
+msgid "Set the last chapter to encode."
+msgstr ""
+
+#: src/ghb3.ui:2680
+msgid "<b>Preset:</b>"
+msgstr ""
+
+#: src/ghb3.ui:2716
+msgid "Choose Preset"
+msgstr ""
+
+#: src/ghb3.ui:2747
+msgid "<u><i>Modified</i></u>"
+msgstr ""
+
+#: src/ghb3.ui:2756 src/ghb3.ui:5129 src/ghb3.ui:5873
+msgid "Reload"
+msgstr ""
+
+#: src/ghb3.ui:2759
+msgid ""
+"Reload the settings for the currently selected preset.\n"
+"Modifications will be discarded."
+msgstr ""
+
+#: src/ghb3.ui:2771
+msgid "Save New Preset"
+msgstr ""
+
+#: src/ghb3.ui:2774
+msgid "Save the current settings to a new Preset."
+msgstr ""
+
+#: src/ghb3.ui:2856
+msgid "Format:"
+msgstr ""
+
+#: src/ghb3.ui:2874
+msgid "Format to mux encoded tracks to."
+msgstr ""
+
+#: src/ghb3.ui:2886 src/queuehandler.c:243
+msgid "Web Optimized"
+msgstr ""
+
+#: src/ghb3.ui:2891
+msgid ""
+"Optimize the layout of the MP4 file for progressive download.\n"
+"This allows a player to initiate playback before downloading the entire file."
+msgstr ""
+
+#: src/ghb3.ui:2907
+msgid "Align A/V Start"
+msgstr ""
+
+#: src/ghb3.ui:2912
+msgid ""
+"Aligns the initial timestamps of all audio and video streams by\n"
+"inserting blank frames or dropping frames. May improve audio/video\n"
+"sync for broken players that do not honor MP4 edit lists."
+msgstr ""
+
+#: src/ghb3.ui:2929
+msgid "iPod 5G Support"
+msgstr ""
+
+#: src/ghb3.ui:2934
+msgid "Add iPod Atom needed by some older iPods."
+msgstr ""
+
+#: src/ghb3.ui:2956
+msgid "Duration:"
+msgstr ""
+
+#: src/ghb3.ui:2974
+msgid "hh:mm:ss"
+msgstr ""
+
+#: src/ghb3.ui:2989
+msgid "Tracks:"
+msgstr ""
+
+#: src/ghb3.ui:3029
+msgid "Filters:"
+msgstr ""
+
+#: src/ghb3.ui:3069
+msgid "Size:"
+msgstr ""
+
+#: src/ghb3.ui:3094 src/ghb3.ui:3315
+msgid "--"
+msgstr ""
+
+#: src/ghb3.ui:3187
+msgid "Auto Crop"
+msgstr ""
+
+#: src/ghb3.ui:3192
+msgid "Automatically crop black borders around edges of the video."
+msgstr ""
+
+#: src/ghb3.ui:3206
+msgid "Loose Crop"
+msgstr ""
+
+#: src/ghb3.ui:3210
+msgid ""
+"When picture settings require that the image\n"
+"dimensions be rounded to some multiple number\n"
+"of pixels, this setting will crop a few extra pixels\n"
+"instead of doing exact cropping and then scaling to\n"
+"the required multiple."
+msgstr ""
+
+#: src/ghb3.ui:3232
+msgid "Left Crop"
+msgstr ""
+
+#: src/ghb3.ui:3249
+msgid "Top Crop"
+msgstr ""
+
+#: src/ghb3.ui:3266
+msgid "Bottom Crop"
+msgstr ""
+
+#: src/ghb3.ui:3283
+msgid "Right Crop"
+msgstr ""
+
+#: src/ghb3.ui:3300
+msgid "Crop Dimensions:"
+msgstr ""
+
+#: src/ghb3.ui:3336
+msgid "<b>Cropping</b>"
+msgstr ""
+
+#: src/ghb3.ui:3371
+msgid "Optimal for source"
+msgstr ""
+
+#: src/ghb3.ui:3375
+msgid ""
+"If enabled, select the 'optimal' storage resolution.\n"
+"This will be the resolution that most closely matches the source resolution "
+"after cropping."
+msgstr ""
+
+#: src/ghb3.ui:3393 src/ghb3.ui:3608
+msgid "Width:"
+msgstr ""
+
+#: src/ghb3.ui:3408
+msgid ""
+"This is the width that the video will be stored at.\n"
+"The actual display dimensions will differ if the pixel aspect ratio is not "
+"1:1."
+msgstr ""
+
+#: src/ghb3.ui:3426 src/ghb3.ui:3640
+msgid "Height:"
+msgstr ""
+
+#: src/ghb3.ui:3441
+msgid ""
+"This is the height that the video will be stored at.\n"
+"The actual display dimensions will differ if the pixel aspect ratio is not "
+"1:1."
+msgstr ""
+
+#: src/ghb3.ui:3471
+msgid "Anamorphic:"
+msgstr ""
+
+#: src/ghb3.ui:3486
+msgid ""
+"<b>Anamorphic Modes:</b>\n"
+"<small><tt>\n"
+"None - Force pixel aspect ratio to 1:1.\n"
+"Loose - Use a pixel aspect ratio that is as\n"
+" close as possible to the source video pixel\n"
+" aspect ratio while preserving the original\n"
+" display aspect ratio\n"
+"Automatic - Use a pixel aspect ratio that maximizes\n"
+" storage resolution while preserving the original\n"
+" display aspect ratio</tt></small>"
+msgstr ""
+
+#: src/ghb3.ui:3510
+msgid "Alignment:"
+msgstr ""
+
+#: src/ghb3.ui:3525
+msgid ""
+"Align storage dimensions to multiples of this value.\n"
+"\n"
+"This setting is only necessary for compatibility with some devices.\n"
+"You should use 2 unless you experience compatibility issues."
+msgstr ""
+
+#: src/ghb3.ui:3550
+msgid "<b>Storage Geometry</b>"
+msgstr ""
+
+#: src/ghb3.ui:3585
+msgid "Keep Aspect"
+msgstr ""
+
+#: src/ghb3.ui:3590
+msgid ""
+"If enabled, the original display aspect of the source will be maintained."
+msgstr ""
+
+#: src/ghb3.ui:3623
+msgid ""
+"This is the display width. It is the result of scaling the storage "
+"dimensions by the pixel aspect."
+msgstr ""
+
+#: src/ghb3.ui:3684
+msgid "Pixel Aspect:"
+msgstr ""
+
+#: src/ghb3.ui:3699
+msgid ""
+"Pixel aspect defines the shape of the pixels.\n"
+"\n"
+"A 1:1 ratio defines a square pixel. Other values define rectangular "
+"shapes.\n"
+"Players will scale the image in order to achieve the specified aspect."
+msgstr ""
+
+#: src/ghb3.ui:3719
+msgid ":"
+msgstr ""
+
+#: src/ghb3.ui:3734
+msgid ""
+"Pixel aspect defines the shape of the pixels.\n"
+"A 1:1 ratio defines a square pixel. Other values define rectangular "
+"shapes.\n"
+"Players will scale the image in order to achieve the specified aspect."
+msgstr ""
+
+#: src/ghb3.ui:3754
+msgid "Display Aspect:"
+msgstr ""
+
+#: src/ghb3.ui:3769
+msgid "--:--"
+msgstr ""
+
+#: src/ghb3.ui:3790
+msgid "<b>Display Geometry</b>"
+msgstr ""
+
+#: src/ghb3.ui:3808
+msgid "Dimensions"
+msgstr ""
+
+#: src/ghb3.ui:3836
+msgid "Detelecine:"
+msgstr ""
+
+#: src/ghb3.ui:3852
+msgid ""
+"This filter removes 'combing' artifacts that are the result of telecining.\n"
+"\n"
+"Telecining is a process that adjusts film framerates that are 24fps to NTSC "
+"video frame rates which are 30fps."
+msgstr ""
+
+#: src/ghb3.ui:3867
+msgid ""
+"Custom detelecine filter string format\n"
+"\n"
+"JunkLeft:JunkRight:JunkTop:JunkBottom:StrictBreaks:MetricPlane:Parity"
+msgstr ""
+
+#: src/ghb3.ui:3895
+msgid "Interlace Detection:"
+msgstr ""
+
+#: src/ghb3.ui:3911
+msgid ""
+"This filter detects interlaced frames.\n"
+"\n"
+"If a deinterlace filter is enabled, only frames that this filter finds\n"
+"to be interlaced will be deinterlaced."
+msgstr ""
+
+#: src/ghb3.ui:3927
+msgid ""
+"Custom interlace detection filter string format\n"
+"\n"
+"Mode:Spatial Metric:Motion Thresh:Spatial Thresh:Mask Filter Mode:\n"
+"Block Thresh: Block Width: Block Height"
+msgstr ""
+
+#: src/ghb3.ui:3956
+msgid "Deinterlace:"
+msgstr ""
+
+#: src/ghb3.ui:3972
+msgid ""
+"Choose decomb or deinterlace filter.\n"
+"\n"
+"The decomb filter supports a variety of interpolation algorithms.\n"
+"The deinterlace filter is a classic YADIF deinterlacer.\n"
+msgstr ""
+
+#: src/ghb3.ui:3991
+msgid "Deinterlace Preset:"
+msgstr ""
+
+#: src/ghb3.ui:4007
+msgid ""
+"Choose decomb or deinterlace filter options.\n"
+"\n"
+"The decomb filter supports a variety of interpolation algorithms.\n"
+"The deinterlace filter is a classic YADIF deinterlacer.\n"
+msgstr ""
+
+#: src/ghb3.ui:4050
+msgid "Deblock Filter:"
+msgstr ""
+
+#: src/ghb3.ui:4066 src/ghb3.ui:4098
+msgid ""
+"The deblocking filter removes a common type of compression artifact.\n"
+"If your source exhibits 'blockiness', this filter may help clean it up."
+msgstr ""
+
+#: src/ghb3.ui:4082
+msgid "Deblock Tune:"
+msgstr ""
+
+#: src/ghb3.ui:4112
+msgid ""
+"Custom deblock filter string format\n"
+"\n"
+"strength=weak|strong:thresh=0-100:blocksize=4-512"
+msgstr ""
+
+#: src/ghb3.ui:4140
+msgid "Denoise Filter:"
+msgstr ""
+
+#: src/ghb3.ui:4156 src/ghb3.ui:4189 src/ghb3.ui:4222
+msgid ""
+"Denoise filtering reduces or removes the appearance of noise and grain.\n"
+"Film grain and other types of high frequency noise are difficult to "
+"compress.\n"
+"Using this filter on such sources can result in smaller file sizes."
+msgstr ""
+
+#: src/ghb3.ui:4173
+msgid "Denoise Preset:"
+msgstr ""
+
+#: src/ghb3.ui:4206
+msgid "Denoise Tune:"
+msgstr ""
+
+#: src/ghb3.ui:4237 src/ghb3.ui:4359
+msgid ""
+"Custom denoise filter string format\n"
+"\n"
+"SpatialLuma:SpatialChroma:TemporalLuma:TemporalChroma"
+msgstr ""
+
+#: src/ghb3.ui:4265
+msgid "Sharpen Filter:"
+msgstr ""
+
+#: src/ghb3.ui:4281 src/ghb3.ui:4313 src/ghb3.ui:4345
+msgid ""
+"Sharpen filtering enhances edges and other\n"
+"high frequency components in the video."
+msgstr ""
+
+#: src/ghb3.ui:4297
+msgid "Sharpen Preset:"
+msgstr ""
+
+#: src/ghb3.ui:4329
+msgid "Sharpen Tune:"
+msgstr ""
+
+#: src/ghb3.ui:4387
+msgid "Rotate Filter:"
+msgstr ""
+
+#: src/ghb3.ui:4403
+msgid "Rotate the video clockwise in 90 degree increments."
+msgstr ""
+
+#: src/ghb3.ui:4417
+msgid "Grayscale"
+msgstr ""
+
+#: src/ghb3.ui:4422
+msgid "If enabled, filter colour components out of video."
+msgstr ""
+
+#: src/ghb3.ui:4433
+msgid "Filters"
+msgstr ""
+
+#: src/ghb3.ui:4464
+msgid "Video Encoder:"
+msgstr ""
+
+#: src/ghb3.ui:4478
+msgid "Available video encoders."
+msgstr ""
+
+#: src/ghb3.ui:4494
+msgid "Framerate:"
+msgstr ""
+
+#: src/ghb3.ui:4509
+msgid ""
+"Output framerate.\n"
+"\n"
+"'Same as source' is recommended. If your source video has\n"
+"a variable framerate, 'Same as source' will preserve it."
+msgstr ""
+
+#: src/ghb3.ui:4524
+msgid "Constant Framerate"
+msgstr ""
+
+#: src/ghb3.ui:4529
+msgid "Enables constant framerate output."
+msgstr ""
+
+#: src/ghb3.ui:4543
+msgid "Peak Framerate (VFR)"
+msgstr ""
+
+#: src/ghb3.ui:4548
+msgid ""
+"Enables variable framerate output with a peak\n"
+"rate determined by the framerate setting.\n"
+"\n"
+"VFR is not compatible with some players."
+msgstr ""
+
+#: src/ghb3.ui:4566
+msgid "Variable Framerate"
+msgstr ""
+
+#: src/ghb3.ui:4571
+msgid ""
+"Enables variable framerate output.\n"
+"\n"
+"VFR is not compatible with some players."
+msgstr ""
+
+#: src/ghb3.ui:4607 src/ghb3.ui:4639
+msgid ""
+"Set the desired quality factor.\n"
+"The encoder targets a certain quality.\n"
+"The scale used by each video encoder is different.\n"
+"\n"
+"x264's scale is logarithmic and lower values correspond to higher quality.\n"
+"So small decreases in value will result in progressively larger increases\n"
+"in the resulting file size. A value of 0 means lossless and will result\n"
+"in a file size that is larger than the original source, unless the source\n"
+"was also lossless.\n"
+"\n"
+"FFMpeg's and Theora's scale is more linear.\n"
+"These encoders do not have a lossless mode."
+msgstr ""
+
+#: src/ghb3.ui:4634
+msgid "Constant Quality:"
+msgstr ""
+
+#: src/ghb3.ui:4665
+msgid "Bitrate (kbps): "
+msgstr ""
+
+#: src/ghb3.ui:4670 src/ghb3.ui:4692
+msgid ""
+"Set the average bitrate.\n"
+"\n"
+"The instantaneous bitrate can be much higher or lower at any point in time.\n"
+"But the average over a long duration will be the value set here. If you "
+"need\n"
+"to limit instantaneous bitrate, look into x264's vbv-bufsize and vbv-maxrate "
+"settings."
+msgstr ""
+
+#: src/ghb3.ui:4709
+msgid "2-Pass Encoding"
+msgstr ""
+
+#: src/ghb3.ui:4714
+msgid ""
+"Perform 2 Pass Encoding.\n"
+"\n"
+"The 'Bitrate' option is prerequisite. During the 1st pass, statistics about\n"
+"the video are collected. Then in the second pass, those statistics are "
+"used\n"
+"to make bitrate allocation decisions."
+msgstr ""
+
+#: src/ghb3.ui:4732
+msgid "Turbo First Pass"
+msgstr ""
+
+#: src/ghb3.ui:4737
+msgid ""
+"During the 1st pass of a 2 pass encode, use settings that speed things along."
+msgstr ""
+
+#: src/ghb3.ui:4799
+msgid ""
+"Adjusts encoder settings to trade off compression efficiency against "
+"encoding speed.\n"
+"\n"
+"This establishes your default encoder settings.\n"
+"Tunes, profiles, levels and extra options string will be applied to this.\n"
+"You should generally set this option to the slowest you can bear since "
+"slower\n"
+"settings will result in better quality or smaller files."
+msgstr ""
+
+#: src/ghb3.ui:4825
+msgid "Tune:"
+msgstr ""
+
+#: src/ghb3.ui:4842
+msgid ""
+"Tune settings to optimize for common scenarios.\n"
+"\n"
+"This can improve efficiency for particular source characteristics or set\n"
+"characteristics of the output file. Changes will be applied after the\n"
+"preset but before all other parameters."
+msgstr ""
+
+#: src/ghb3.ui:4858
+msgid "Fast Decode"
+msgstr ""
+
+#: src/ghb3.ui:4863
+msgid ""
+"Reduce decoder CPU usage.\n"
+"\n"
+"Set this if your device is struggling to play the output (dropped frames)."
+msgstr ""
+
+#: src/ghb3.ui:4881
+msgid "Zero Latency"
+msgstr ""
+
+#: src/ghb3.ui:4885
+msgid ""
+"Minimize latency between input to encoder and output of decoder.\n"
+"\n"
+"This is useful for broadcast of live streams.\n"
+"\n"
+"Since HandBrake is not suitable for live stream broadcast purposes,\n"
+"this setting is of little value here."
+msgstr ""
+
+#: src/ghb3.ui:4909
+msgid "Profile:"
+msgstr ""
+
+#: src/ghb3.ui:4926
+msgid ""
+"Sets and ensures compliance with the specified profile.\n"
+"\n"
+"Overrides all other settings."
+msgstr ""
+
+#: src/ghb3.ui:4944
+msgid "Level:"
+msgstr ""
+
+#: src/ghb3.ui:4961
+msgid ""
+"Sets and ensures compliance with the specified level.\n"
+"\n"
+"Overrides all other settings."
+msgstr ""
+
+#: src/ghb3.ui:4986
+msgid "More Settings:"
+msgstr ""
+
+#: src/ghb3.ui:5004
+msgid ""
+"Additional encoder settings.\n"
+"\n"
+"Colon separated list of encoder options."
+msgstr ""
+
+#: src/ghb3.ui:5038 src/main.c:1156
+msgid "Video"
+msgstr ""
+
+#. Add Button
+#: src/ghb3.ui:5104 src/ghb3.ui:5297 src/ghb3.ui:5834 src/ghb3.ui:6054
+#: src/audiohandler.c:1744
+msgid "Add"
+msgstr ""
+
+#: src/ghb3.ui:5106
+msgid "Add new audio settings to the list"
+msgstr ""
+
+#: src/ghb3.ui:5116 src/ghb3.ui:5846
+msgid "Add All"
+msgstr ""
+
+#: src/ghb3.ui:5118
+msgid "Add all audio tracks to the list"
+msgstr ""
+
+#: src/ghb3.ui:5131
+msgid "Reload all audio settings from defaults"
+msgstr ""
+
+#: src/ghb3.ui:5175 src/ghb3.ui:5919
+msgid "Track List"
+msgstr ""
+
+#: src/ghb3.ui:5206 src/ghb3.ui:5954
+msgid "Selection Behavior:"
+msgstr ""
+
+#: src/ghb3.ui:5221
+msgid "Choose which audio tracks of the source media are used."
+msgstr ""
+
+#: src/ghb3.ui:5282
+msgid ""
+"Create a list of languages you would like to select audio for.\n"
+"Tracks matching these languages will be selected using the chosen Selection "
+"Behavior."
+msgstr ""
+
+#: src/ghb3.ui:5313 src/ghb3.ui:6070
+msgid "Remove"
+msgstr ""
+
+#: src/ghb3.ui:5331 src/ghb3.ui:6088
+msgid "Available Languages"
+msgstr ""
+
+#: src/ghb3.ui:5344 src/ghb3.ui:6101
+msgid "Selected Languages"
+msgstr ""
+
+#: src/ghb3.ui:5360
+msgid "Use only first encoder for secondary audio"
+msgstr ""
+
+#: src/ghb3.ui:5365
+msgid ""
+"Only the primary audio track will be encoded with the full encoder list.\n"
+"All other secondary audio output tracks will be encoded with first encoder "
+"only."
+msgstr ""
+
+#: src/ghb3.ui:5401
+msgid "Auto Passthru:"
+msgstr ""
+
+#: src/ghb3.ui:5412
+msgid "MP3"
+msgstr ""
+
+#: src/ghb3.ui:5417
+msgid ""
+"Enable this if your playback device supports MP3.\n"
+"This permits MP3 passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5433
+msgid "AAC"
+msgstr ""
+
+#: src/ghb3.ui:5438
+msgid ""
+"Enable this if your playback device supports AAC.\n"
+"This permits AAC passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5454
+msgid "AC-3"
+msgstr ""
+
+#: src/ghb3.ui:5459
+msgid ""
+"Enable this if your playback device supports AC-3.\n"
+"This permits AC-3 passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5475
+msgid "DTS"
+msgstr ""
+
+#: src/ghb3.ui:5480
+msgid ""
+"Enable this if your playback device supports DTS.\n"
+"This permits DTS passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5496
+msgid "DTS-HD"
+msgstr ""
+
+#: src/ghb3.ui:5501
+msgid ""
+"Enable this if your playback device supports DTS-HD.\n"
+"This permits DTS-HD passthru to be selected when automatic passthru "
+"selection is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5517
+msgid "EAC-3"
+msgstr ""
+
+#: src/ghb3.ui:5522
+msgid ""
+"Enable this if your playback device supports EAC-3.\n"
+"This permits EAC-3 passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5538
+msgid "TrueHD"
+msgstr ""
+
+#: src/ghb3.ui:5543
+msgid ""
+"Enable this if your playback device supports TrueHD.\n"
+"This permits TrueHD passthru to be selected when automatic passthru "
+"selection is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5559
+msgid "FLAC"
+msgstr ""
+
+#: src/ghb3.ui:5564
+msgid ""
+"Enable this if your playback device supports FLAC.\n"
+"This permits FLAC passthru to be selected when automatic passthru selection "
+"is enabled."
+msgstr ""
+
+#: src/ghb3.ui:5597
+msgid "Passthru Fallback:"
+msgstr ""
+
+#: src/ghb3.ui:5609
+msgid ""
+"Set the audio codec to encode with when a suitable track can not be found "
+"for audio passthru."
+msgstr ""
+
+#: src/ghb3.ui:5638
+msgid "<b>Audio Encoder Settings:</b>"
+msgstr ""
+
+#: src/ghb3.ui:5639
+msgid "Each selected source track will be encoded with all selected encoders"
+msgstr ""
+
+#: src/ghb3.ui:5664 src/ghb3.ui:9239
+msgid "Encoder"
+msgstr ""
+
+#: src/ghb3.ui:5675 src/ghb3.ui:9252
+msgid "Bitrate/Quality"
+msgstr ""
+
+#: src/ghb3.ui:5686
+msgid "Mixdown"
+msgstr ""
+
+#: src/ghb3.ui:5697
+msgid "Samplerate"
+msgstr ""
+
+#: src/ghb3.ui:5708 src/ghb3.ui:9296
+msgid "Gain"
+msgstr ""
+
+#: src/ghb3.ui:5719 src/ghb3.ui:9315
+msgid "DRC"
+msgstr ""
+
+#: src/ghb3.ui:5756 src/ghb3.ui:6314
+msgid "Track Selection"
+msgstr ""
+
+#: src/ghb3.ui:5768
+msgid "Audio"
+msgstr ""
+
+#: src/ghb3.ui:5836
+msgid "Add new subtitle settings to the list"
+msgstr ""
+
+#: src/ghb3.ui:5848
+msgid "Add all subtitle tracks to the list"
+msgstr ""
+
+#: src/ghb3.ui:5858 src/queuehandler.c:560 src/queuehandler.c:991
+#: src/subtitlehandler.c:414
+msgid "Foreign Audio Scan"
+msgstr ""
+
+#: src/ghb3.ui:5860
+msgid ""
+"Add an extra pass to the encode which searches\n"
+"for subtitle candidates that provide subtitles for\n"
+"segments of the audio that are in a foreign language."
+msgstr ""
+
+#: src/ghb3.ui:5875
+msgid "Reload all subtitle settings from defaults"
+msgstr ""
+
+#: src/ghb3.ui:5969
+msgid "Choose which subtitle tracks of the source media are used."
+msgstr ""
+
+#: src/ghb3.ui:6034
+msgid ""
+"Create a list of languages you would like to select subtitles for.\n"
+"Tracks matching these languages will be selected using the chosen Selection "
+"Behavior.\n"
+"\n"
+"The first language in this list is your \"preferred\" language and will be "
+"used\n"
+"for determining subtitle selection settings when there is foreign audio."
+msgstr ""
+
+#: src/ghb3.ui:6115
+msgid "Preferred Language: None"
+msgstr ""
+
+#: src/ghb3.ui:6142
+msgid "Add Foreign Audio Scan Pass"
+msgstr ""
+
+#: src/ghb3.ui:6147
+msgid ""
+"Add \"Foreign Audio Scan\" when the default audio track is your preferred "
+"language.\n"
+"This search pass finds short sequences of foreign audio and provides "
+"subtitles for them.\n"
+"\n"
+"This option requires a language to be set in the Selected Languages list."
+msgstr ""
+
+#: src/ghb3.ui:6162
+msgid "Add subtitle track if default audio is foreign"
+msgstr ""
+
+#: src/ghb3.ui:6167
+msgid ""
+"When the default audio track is not your preferred language, add a subtitle "
+"track.\n"
+"\n"
+"This option requires a language to be set in the Selected Languages list."
+msgstr ""
+
+#: src/ghb3.ui:6181
+msgid "Add Closed Captions when available"
+msgstr ""
+
+#: src/ghb3.ui:6186
+msgid ""
+"Closed captions are text subtitles that can be added to any container as a "
+"soft subtitle track"
+msgstr ""
+
+#: src/ghb3.ui:6207
+msgid "Burn-In Behavior*:"
+msgstr ""
+
+#: src/ghb3.ui:6219
+msgid ""
+"Set the behavior of subtitle \"Burn-In\".\n"
+"\n"
+"Burned-In subtitles are part of the video and can not be disabled during "
+"playback.\n"
+"Only one subtitle track can be burned! Since conflicts can occur, the first "
+"chosen wins."
+msgstr ""
+
+#: src/ghb3.ui:6246
+msgid "Burn-In for deficient players*:"
+msgstr ""
+
+#: src/ghb3.ui:6255
+msgid "DVD Subtitles"
+msgstr ""
+
+#: src/ghb3.ui:6260
+msgid ""
+"Burn the first selected DVD subtitle track. All other DVD subtitle tracks "
+"will be discarded.\n"
+"Use this option if your player software or device does not support DVD "
+"subtitles.\n"
+"\n"
+"Only one subtitle track can be burned! Since conflicts can occur, the first "
+"chosen wins."
+msgstr ""
+
+#: src/ghb3.ui:6274
+msgid "Blu-ray Subtitles"
+msgstr ""
+
+#: src/ghb3.ui:6279
+msgid ""
+"Burn the first selected Blu-ray subtitle track. All other Blu-ray subtitle "
+"tracks will be discarded.\n"
+"Use this option if your player software or device does not support Blu-ray "
+"subtitles.\n"
+"\n"
+"Only one subtitle track can be burned! Since conflicts can occur, the first "
+"chosen wins."
+msgstr ""
+
+#: src/ghb3.ui:6301
+msgid ""
+"<small>* Only one of the above subtitle burn options will be applied, "
+"starting with the top.</small>"
+msgstr ""
+
+#: src/ghb3.ui:6302
+msgid ""
+"Only one subtitle track can be burned! Since conflicts can occur, the first "
+"chosen wins."
+msgstr ""
+
+#: src/ghb3.ui:6326
+msgid "Subtitles"
+msgstr ""
+
+#: src/ghb3.ui:6341 src/queuehandler.c:233
+msgid "Chapter Markers"
+msgstr ""
+
+#: src/ghb3.ui:6346
+msgid "Add chapter markers to output file."
+msgstr ""
+
+#: src/ghb3.ui:6380
+msgid "Index"
+msgstr ""
+
+#: src/ghb3.ui:6404
+msgid "Duration"
+msgstr ""
+
+#: src/ghb3.ui:6415
+msgid "Title"
+msgstr ""
+
+#: src/ghb3.ui:6452
+msgid "Chapters"
+msgstr ""
+
+#: src/ghb3.ui:6472
+msgid "Title:"
+msgstr ""
+
+#: src/ghb3.ui:6507
+msgid "Actors:"
+msgstr ""
+
+#: src/ghb3.ui:6542
+msgid "Director:"
+msgstr ""
+
+#: src/ghb3.ui:6577
+msgid "Release Date:"
+msgstr ""
+
+#: src/ghb3.ui:6612
+msgid "Comment:"
+msgstr ""
+
+#: src/ghb3.ui:6647
+msgid "Genre:"
+msgstr ""
+
+#: src/ghb3.ui:6682
+msgid "Description:"
+msgstr ""
+
+#: src/ghb3.ui:6717
+msgid "Plot:"
+msgstr ""
+
+#: src/ghb3.ui:6755
+msgid "Tags"
+msgstr ""
+
+#: src/ghb3.ui:6784
+msgid "<b>Save As:</b>"
+msgstr ""
+
+#: src/ghb3.ui:6798
+msgid "Destination filename for your encode."
+msgstr ""
+
+#: src/ghb3.ui:6818
+msgid "<b>To:</b>"
+msgstr ""
+
+#: src/ghb3.ui:6831
+msgid "Destination directory for your encode."
+msgstr ""
+
+#: src/ghb3.ui:6834 src/queuehandler.c:2178
+msgid "Destination Directory"
+msgstr ""
+
+#: src/ghb3.ui:6927 src/ghb3.ui:7835 src/ghb3.ui:7987 src/ghb3.ui:8713
+#: src/ghb3.ui:9118 src/callbacks.c:5455 src/callbacks.c:5465
+#: src/callbacks.c:5473 src/hb-backend.c:4182 src/hb-backend.c:4215
+#: src/hb-backend.c:4254 src/hb-backend.c:4285 src/hb-backend.c:4313
+#: src/hb-backend.c:4359 src/hb-backend.c:4416 src/hb-backend.c:4436
+#: src/hb-backend.c:4456 src/hb-backend.c:4517 src/hb-backend.c:4572
+#: src/queuehandler.c:1788 src/queuehandler.c:1805 src/queuehandler.c:1819
+#: src/queuehandler.c:1834
+msgid "Cancel"
+msgstr ""
+
+#: src/ghb3.ui:6936 src/ghb3.ui:7080 src/ghb3.ui:7844 src/ghb3.ui:7996
+#: src/ghb3.ui:8722 src/ghb3.ui:9127
+msgid "OK"
+msgstr ""
+
+#: src/ghb3.ui:6965
+msgid "Select All"
+msgstr ""
+
+#: src/ghb3.ui:6969
+msgid "Mark all titles for adding to the queue"
+msgstr ""
+
+#: src/ghb3.ui:6982
+msgid "Clear All"
+msgstr ""
+
+#: src/ghb3.ui:6986
+msgid "Unmark all titles"
+msgstr ""
+
+#: src/ghb3.ui:7047
+msgid "Destination files OK. No duplicates detected."
+msgstr ""
+
+#: src/ghb3.ui:7069
+msgid "Preferences"
+msgstr ""
+
+#: src/ghb3.ui:7175
+msgid "Automatically check for updates"
+msgstr ""
+
+#: src/ghb3.ui:7212
+msgid "When all encodes are complete"
+msgstr ""
+
+#: src/ghb3.ui:7234
+msgid "Use automatic naming (uses modified source name)"
+msgstr ""
+
+#: src/ghb3.ui:7235
+msgid "Create destination filename from source filename or volume label"
+msgstr ""
+
+#: src/ghb3.ui:7259
+msgid "Auto-Name Template"
+msgstr ""
+
+#: src/ghb3.ui:7270
+msgid ""
+"Available Options: {source-path} {source} {title} {preset} {chapters} {date} "
+"{time} {creation-date} {creation-time} {quality} {bitrate}"
+msgstr ""
+
+#: src/ghb3.ui:7290
+msgid "Use iPod/iTunes friendly (.m4v) file extension for MP4"
+msgstr ""
+
+#: src/ghb3.ui:7333
+msgid "Number of previews"
+msgstr ""
+
+#: src/ghb3.ui:7371
+msgid "Filter short DVD and Blu-ray titles (seconds)"
+msgstr ""
+
+#: src/ghb3.ui:7385
+msgid "Clear completed queue items after and encode completes"
+msgstr ""
+
+#: src/ghb3.ui:7389
+msgid ""
+"By default, completed jobs remain in the queue and are marked as complete.\n"
+"Check this if you want the queue to clean itself up by deleting completed "
+"jobs."
+msgstr ""
+
+#: src/ghb3.ui:7406
+msgid "General"
+msgstr ""
+
+#: src/ghb3.ui:7449
+msgid "Constant Quality fractional granularity"
+msgstr ""
+
+#: src/ghb3.ui:7466
+msgid "Use dvdnav (instead of libdvdread)"
+msgstr ""
+
+#: src/ghb3.ui:7489
+msgid "Monitor destination disk free space"
+msgstr ""
+
+#: src/ghb3.ui:7493 src/ghb3.ui:7515 src/ghb3.ui:7696
+msgid "Pause encoding if free disk space drops below limit"
+msgstr ""
+
+#: src/ghb3.ui:7530
+msgid "MB Limit"
+msgstr ""
+
+#: src/ghb3.ui:7558
+msgid "Put individual encode logs in same location as movie"
+msgstr ""
+
+#: src/ghb3.ui:7594
+msgid "Activity Log Verbosity Level"
+msgstr ""
+
+#: src/ghb3.ui:7629
+msgid "Activity Log Longevity"
+msgstr ""
+
+#: src/ghb3.ui:7650
+msgid "Scale down High Definition previews"
+msgstr ""
+
+#: src/ghb3.ui:7667
+msgid "Automatically Scan DVD when loaded"
+msgstr ""
+
+#: src/ghb3.ui:7671
+msgid "Scans the DVD whenever a new disc is loaded"
+msgstr ""
+
+#: src/ghb3.ui:7710
+msgid "Activity Window Font Size"
+msgstr ""
+
+#: src/ghb3.ui:7727
+msgid "Use the same settings for all titles in a batch"
+msgstr ""
+
+#: src/ghb3.ui:7731
+msgid ""
+"When checked, every title will use the same settings when adding a\n"
+"batch of titles to the queue.\n"
+"\n"
+"Uncheck this if you want to allow changing each title's settings "
+"independently."
+msgstr ""
+
+#: src/ghb3.ui:7759
+msgid "Allow Tweaks"
+msgstr ""
+
+#: src/ghb3.ui:7775
+msgid "Allow HandBrake For Dummies"
+msgstr ""
+
+#: src/ghb3.ui:7803
+msgid "Advanced"
+msgstr ""
+
+#: src/ghb3.ui:7881
+msgid "<span size=\"x-large\">Rename Preset</span>"
+msgstr ""
+
+#: src/ghb3.ui:7901
+msgid "Name:"
+msgstr ""
+
+#: src/ghb3.ui:7958 src/ghb3.ui:8305
+msgid "<b>Description</b>"
+msgstr ""
+
+#: src/ghb3.ui:8039
+msgid "Category:"
+msgstr ""
+
+#: src/ghb3.ui:8054
+msgid "Set the category that this preset will be shown under."
+msgstr ""
+
+#: src/ghb3.ui:8070
+msgid "Category Name:"
+msgstr ""
+
+#: src/ghb3.ui:8103
+msgid "Preset Name:"
+msgstr ""
+
+#: src/ghb3.ui:8137
+msgid "Default Preset"
+msgstr ""
+
+#: src/ghb3.ui:8142
+msgid "Make this the default Preset when HandBrake starts"
+msgstr ""
+
+#: src/ghb3.ui:8168
+msgid "<b>Dimensions</b>"
+msgstr ""
+
+#: src/ghb3.ui:8194
+msgid "Maximum Width:"
+msgstr ""
+
+#: src/ghb3.ui:8199
+msgid "Enable maximum width limit."
+msgstr ""
+
+#: src/ghb3.ui:8217
+msgid ""
+"This is the maximum width that the video will be stored at.\n"
+"\n"
+"Whenever a new source is loaded, this value will be applied if the source "
+"width is greater.\n"
+"Setting this to 0 means there is no maximum width."
+msgstr ""
+
+#: src/ghb3.ui:8234
+msgid "Maximum Height:"
+msgstr ""
+
+#: src/ghb3.ui:8239
+msgid "Enable maximum height limit."
+msgstr ""
+
+#: src/ghb3.ui:8257
+msgid ""
+"This is the maximum height that the video will be stored at.\n"
+"\n"
+"Whenever a new source is loaded, this value will be applied if the source "
+"height is greater.\n"
+"Setting this to 0 means there is no maximum height."
+msgstr ""
+
+#: src/ghb3.ui:8328
+msgid "HandBrake Preview"
+msgstr ""
+
+#: src/ghb3.ui:8387
+msgid "Select preview frames."
+msgstr ""
+
+#: src/ghb3.ui:8409
+msgid ""
+"Encode and play a short sequence of video starting from the current preview "
+"position."
+msgstr ""
+
+#: src/ghb3.ui:8480
+msgid "<b>Duration:</b>"
+msgstr ""
+
+#: src/ghb3.ui:8492
+msgid "Set the duration of the live preview in seconds."
+msgstr ""
+
+#: src/ghb3.ui:8508
+msgid "Show Crop"
+msgstr ""
+
+#: src/ghb3.ui:8512
+msgid "Show Cropped area of the preview"
+msgstr ""
+
+#: src/ghb3.ui:8523
+msgid "Source Resolution"
+msgstr ""
+
+#: src/ghb3.ui:8527
+msgid "Reset preview window to the source video's resolution"
+msgstr ""
+
+#: src/ghb3.ui:8559
+msgid "_Cancel"
+msgstr ""
+
+#: src/ghb3.ui:8571
+msgid "_Open"
+msgstr ""
+
+#: src/ghb3.ui:8605
+msgid "Title Number:"
+msgstr ""
+
+#: src/ghb3.ui:8641
+msgid "Detected DVD devices:"
+msgstr ""
+
+#: src/ghb3.ui:8751
+msgid "Import SRT"
+msgstr ""
+
+#: src/ghb3.ui:8756
+msgid "Enable settings to import an SRT subtitle file"
+msgstr ""
+
+#: src/ghb3.ui:8767
+msgid "Import SSA"
+msgstr ""
+
+#: src/ghb3.ui:8772
+msgid "Enable settings to import an SSA subtitle file"
+msgstr ""
+
+#: src/ghb3.ui:8784
+msgid "Embedded Subtitle List"
+msgstr ""
+
+#: src/ghb3.ui:8789
+msgid "Enable settings to select embedded subtitles"
+msgstr ""
+
+#: src/ghb3.ui:8816 src/ghb3.ui:9159
+msgid "Source Track"
+msgstr ""
+
+#: src/ghb3.ui:8831
+msgid "List of subtitle tracks available from your source."
+msgstr ""
+
+#: src/ghb3.ui:8845 src/ghb3.ui:9189
+msgid "Track Name:"
+msgstr ""
+
+#: src/ghb3.ui:8861
+msgid ""
+"Set the subtitle track name.\n"
+"\n"
+"Players may use this in the subtitle selection list."
+msgstr ""
+
+#: src/ghb3.ui:8894
+msgid "Language"
+msgstr ""
+
+#: src/ghb3.ui:8908
+msgid "Character Code"
+msgstr ""
+
+#: src/ghb3.ui:8922
+msgid "File:"
+msgstr ""
+
+#: src/ghb3.ui:8937
+msgid "Offset (ms)"
+msgstr ""
+
+#: src/ghb3.ui:8952
+msgid ""
+"Set the language of this subtitle.\n"
+"This value will be used by players in subtitle menus."
+msgstr ""
+
+#: src/ghb3.ui:8970
+msgid ""
+"Set the character code used by the SRT file you are importing.\n"
+"\n"
+"SRTs come in all flavours of character sets.\n"
+"We translate the character set to UTF-8.\n"
+"The source's character code is needed in order to perform this translation."
+msgstr ""
+
+#: src/ghb3.ui:8994
+msgid "Select the SRT file to import."
+msgstr ""
+
+#: src/ghb3.ui:8997
+msgid "Import File"
+msgstr ""
+
+#: src/ghb3.ui:9015
+msgid "Adjust the offset in milliseconds between video and SRT timestamps"
+msgstr ""
+
+#: src/ghb3.ui:9039
+msgid "Forced Subtitles Only"
+msgstr ""
+
+#: src/ghb3.ui:9060
+msgid "Burn into video"
+msgstr ""
+
+#: src/ghb3.ui:9065
+msgid ""
+"Render the subtitle over the video.\n"
+"The subtitle will be part of the video and can not be disabled."
+msgstr ""
+
+#: src/ghb3.ui:9077
+msgid "Set Default Track"
+msgstr ""
+
+#: src/ghb3.ui:9175
+msgid "List of audio tracks available from your source."
+msgstr ""
+
+#: src/ghb3.ui:9205
+msgid ""
+"Set the audio track name.\n"
+"\n"
+"Players may use this in the audio selection list."
+msgstr ""
+
+#: src/ghb3.ui:9268
+msgid "Mix"
+msgstr ""
+
+#: src/ghb3.ui:9281
+msgid "Sample Rate"
+msgstr ""
+
+#: src/ghb3.ui:9311 src/ghb3.ui:9550 src/audiohandler.c:1917
+msgid ""
+"<b>Dynamic Range Compression:</b> Adjust the dynamic range of the output "
+"audio track.\n"
+"\n"
+"For source audio that has a wide dynamic range (very loud and very soft "
+"sequences),\n"
+"DRC allows you to 'compress' the range by making loud sounds softer and soft "
+"sounds louder."
+msgstr ""
+
+#: src/ghb3.ui:9332 src/audiohandler.c:1768
+msgid "Set the audio codec to encode this track with."
+msgstr ""
+
+#: src/ghb3.ui:9354 src/audiohandler.c:1782
+msgid "Bitrate"
+msgstr ""
+
+#: src/ghb3.ui:9359
+msgid "Enable bitrate setting"
+msgstr ""
+
+#: src/ghb3.ui:9369 src/audiohandler.c:1787
+msgid "Quality"
+msgstr ""
+
+#: src/ghb3.ui:9374
+msgid "Enable quality setting"
+msgstr ""
+
+#: src/ghb3.ui:9395 src/audiohandler.c:1801
+msgid "Set the bitrate to encode this track with."
+msgstr ""
+
+#: src/ghb3.ui:9415
+msgid ""
+"<b>Quality:</b> For output codec's that support it, adjust the quality of "
+"the output."
+msgstr ""
+
+#: src/ghb3.ui:9437
+msgid "00.0"
+msgstr ""
+
+#: src/ghb3.ui:9464 src/audiohandler.c:1853
+msgid "Set the mixdown of the output audio track."
+msgstr ""
+
+#: src/ghb3.ui:9480 src/audiohandler.c:1866
+msgid "Set the sample rate of the output audio track."
+msgstr ""
+
+#: src/ghb3.ui:9503 src/audiohandler.c:1887
+msgid ""
+"<b>Audio Gain:</b> Adjust the amplification or attenuation of the output "
+"audio track."
+msgstr ""
+
+#. Audio Gain Label
+#: src/ghb3.ui:9521 src/audiohandler.c:1897
+msgid "0dB"
+msgstr ""
+
+#. Audio DRC Label
+#: src/ghb3.ui:9568 src/audiohandler.c:417 src/audiohandler.c:754
+#: src/audiohandler.c:1157 src/audiohandler.c:1931 src/callbacks.c:5224
+#: src/hb-backend.c:123 src/hb-backend.c:201 src/hb-backend.c:213
+#: src/hb-backend.c:225 src/hb-backend.c:237 src/hb-backend.c:263
+#: src/hb-backend.c:275 src/hb-backend.c:287 src/hb-backend.c:348
+msgid "Off"
+msgstr ""
+
+#: src/ghb3.ui:9604
+msgid "Skip This Version"
+msgstr ""
+
+#: src/ghb3.ui:9612
+msgid "Remind Me Later"
+msgstr ""
+
+#: src/ghb3.ui:9681
+msgid "<b>A new version of HandBrake is available!</b>"
+msgstr ""
+
+#: src/ghb3.ui:9697
+msgid "HandBrake xxx is now available (you have yyy)."
+msgstr ""
+
+#: src/ghb3.ui:9725
+msgid "<b>Release Notes</b>"
+msgstr ""
+
+#: src/audiohandler.c:429 src/audiohandler.c:750 src/audiohandler.c:1225
+#, c-format
+msgid "%ddB"
+msgstr ""
+
+#: src/audiohandler.c:726
+msgid "Quality: "
+msgstr ""
+
+#: src/audiohandler.c:733
+#, c-format
+msgid "Bitrate: %dkbps\n"
+msgstr ""
+
+#: src/audiohandler.c:745
+#, c-format
+msgid "%.4gkHz"
+msgstr ""
+
+#: src/audiohandler.c:760
+#, c-format
+msgid "<small>%d - %s (%.4gkHz)</small>"
+msgstr ""
+
+#: src/audiohandler.c:765
+#, c-format
+msgid "Bitrate: %.4gkbps"
+msgstr ""
+
+#: src/audiohandler.c:771
+msgid "<small>Passthrough</small>"
+msgstr ""
+
+#: src/audiohandler.c:780
+#, c-format
+msgid ""
+"%sGain: %s\n"
+"DRC: %s\n"
+"Track Name: %s"
+msgstr ""
+
+#: src/audiohandler.c:785
+#, c-format
+msgid ""
+"%sGain: %s\n"
+"DRC: %s"
+msgstr ""
+
+#: src/audiohandler.c:1746
+msgid ""
+"Add an audio encoder.\n"
+"Each selected source track will be encoded with all selected encoders."
+msgstr ""
+
+#: src/audiohandler.c:1826
+msgid ""
+"<b>Audio Quality:</b>\n"
+"For encoders that support it, adjust the quality of the output."
+msgstr ""
+
+#: src/audiohandler.c:1946
+msgid "Remove this audio encoder"
+msgstr ""
+
+#: src/callbacks.c:794 src/callbacks.c:2136
+msgid "Closing HandBrake will terminate encoding.\n"
+msgstr ""
+
+#: src/callbacks.c:1379
+msgid "Not Selected"
+msgstr ""
+
+#. This needs to be in scanning and working since scanning
+#. happens fast enough that it can be missed
+#: src/callbacks.c:1703 src/callbacks.c:4174
+msgid "Scanning ..."
+msgstr ""
+
+#: src/callbacks.c:1739 src/callbacks.c:1740
+msgid "Stop Scan"
+msgstr ""
+
+#: src/callbacks.c:2727 src/hb-backend.c:2086 src/hb-backend.c:2206
+#: src/hb-backend.c:2218
+msgid "No Title Found"
+msgstr ""
+
+#: src/callbacks.c:2728
+msgid "New Video"
+msgstr ""
+
+#: src/callbacks.c:3514 src/callbacks.c:3536 src/callbacks.c:3555
+#: src/callbacks.c:3587
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+"%s in %d seconds ..."
+msgstr ""
+
+#: src/callbacks.c:3658 src/callbacks.c:3700
+#, c-format
+msgid "%sYour movie will be lost if you don't continue encoding."
+msgstr ""
+
+#: src/callbacks.c:3661 src/callbacks.c:3703 src/queuehandler.c:1730
+msgid "Cancel Current and Stop"
+msgstr ""
+
+#: src/callbacks.c:3662
+msgid "Cancel Current, Start Next"
+msgstr ""
+
+#: src/callbacks.c:3663
+msgid "Finish Current, then Stop"
+msgstr ""
+
+#: src/callbacks.c:3664 src/callbacks.c:3704
+msgid "Continue Encoding"
+msgstr ""
+
+#: src/callbacks.c:3882
+#, c-format
+msgid "%d encode pending"
+msgstr ""
+
+#: src/callbacks.c:3886
+#, c-format
+msgid "%d encodes pending"
+msgstr ""
+
+#: src/callbacks.c:3943 src/callbacks.c:4011
+#, c-format
+msgid "job %d of %d, "
+msgstr ""
+
+#: src/callbacks.c:3953
+#, c-format
+msgid "pass %d (subtitle scan) of %d, "
+msgstr ""
+
+#: src/callbacks.c:3958
+#, c-format
+msgid "pass %d of %d, "
+msgstr ""
+
+#: src/callbacks.c:3971
+#, c-format
+msgid "Encoding: %s%s%.2f %% (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)"
+msgstr ""
+
+#: src/callbacks.c:3981 src/callbacks.c:4021
+#, c-format
+msgid "Encoding: %s%s%.2f %% (ETA %02dh%02dm%02ds)"
+msgstr ""
+
+#: src/callbacks.c:3991 src/callbacks.c:4030
+#, c-format
+msgid "Encoding: %s%s%.2f %%"
+msgstr ""
+
+#: src/callbacks.c:4017
+msgid "Searching for start time, "
+msgstr ""
+
+#: src/callbacks.c:4092
+#, c-format
+msgid "Scanning title %d of %d..."
+msgstr ""
+
+#: src/callbacks.c:4096
+#, c-format
+msgid "Scanning title %d of %d preview %d..."
+msgstr ""
+
+#: src/callbacks.c:4185
+msgid "Paused"
+msgstr ""
+
+#: src/callbacks.c:4216
+msgid "Encode Done!"
+msgstr ""
+
+#: src/callbacks.c:4220
+msgid "Encode Canceled."
+msgstr ""
+
+#: src/callbacks.c:4225
+msgid "Encode Failed."
+msgstr ""
+
+#: src/callbacks.c:4267
+msgid "Muxing: This may take a while..."
+msgstr ""
+
+#: src/callbacks.c:4869
+msgid "Scan this DVD source"
+msgstr ""
+
+#: src/callbacks.c:5257
+#, c-format
+msgid "HandBrake %s/%s is now available (you have %s/%d)."
+msgstr ""
+
+#: src/callbacks.c:5438
+msgid "Encode Complete"
+msgstr ""
+
+#: src/callbacks.c:5440
+msgid "Put down that cocktail, Your HandBrake queue is done!"
+msgstr ""
+
+#: src/callbacks.c:5453 src/callbacks.c:5463 src/callbacks.c:5471
+msgid "Your encode is complete."
+msgstr ""
+
+#: src/callbacks.c:5454
+msgid "Shutting down the computer"
+msgstr ""
+
+#: src/callbacks.c:5464
+msgid "Putting computer to sleep"
+msgstr ""
+
+#: src/callbacks.c:5472
+msgid "Quitting Handbrake"
+msgstr ""
+
+#: src/hb-backend.c:61 src/hb-backend.c:86
+msgid "First Track Matching Selected Languages"
+msgstr ""
+
+#: src/hb-backend.c:62 src/hb-backend.c:87
+msgid "All Tracks Matching Selected Languages"
+msgstr ""
+
+#: src/hb-backend.c:73
+msgid "Foreign Audio Subtitle Track"
+msgstr ""
+
+#: src/hb-backend.c:74
+msgid "First Selected Track"
+msgstr ""
+
+#: src/hb-backend.c:75
+msgid "Foreign Audio, then First Selected Track"
+msgstr ""
+
+#: src/hb-backend.c:97
+msgid "Chapters:"
+msgstr ""
+
+#: src/hb-backend.c:98
+msgid "Seconds:"
+msgstr ""
+
+#: src/hb-backend.c:99
+msgid "Frames:"
+msgstr ""
+
+#: src/hb-backend.c:109
+msgid "Do Nothing"
+msgstr ""
+
+#: src/hb-backend.c:110
+msgid "Show Notification"
+msgstr ""
+
+#: src/hb-backend.c:111
+msgid "Quit Handbrake"
+msgstr ""
+
+#: src/hb-backend.c:112
+msgid "Put Computer To Sleep"
+msgstr ""
+
+#: src/hb-backend.c:113
+msgid "Shutdown Computer"
+msgstr ""
+
+#: src/hb-backend.c:124 src/hb-backend.c:253
+msgid "Automatic"
+msgstr ""
+
+#: src/hb-backend.c:125
+msgid "Loose"
+msgstr ""
+
+#: src/hb-backend.c:126 src/hb-backend.c:338
+msgid "Custom"
+msgstr ""
+
+#: src/hb-backend.c:162
+msgid "Week"
+msgstr ""
+
+#: src/hb-backend.c:163
+msgid "Month"
+msgstr ""
+
+#: src/hb-backend.c:164
+msgid "Year"
+msgstr ""
+
+#: src/hb-backend.c:165
+msgid "Immortal"
+msgstr ""
+
+#: src/hb-backend.c:175
+msgid "Never"
+msgstr ""
+
+#: src/hb-backend.c:176
+msgid "Daily"
+msgstr ""
+
+#: src/hb-backend.c:177
+msgid "Weekly"
+msgstr ""
+
+#: src/hb-backend.c:178
+msgid "Monthly"
+msgstr ""
+
+#: src/hb-backend.c:202
+msgid "Decomb"
+msgstr ""
+
+#: src/hb-backend.c:203
+msgid "Yadif"
+msgstr ""
+
+#: src/hb-backend.c:214
+msgid "NLMeans"
+msgstr ""
+
+#: src/hb-backend.c:215
+msgid "HQDN3D"
+msgstr ""
+
+#: src/hb-backend.c:226
+msgid "Unsharp"
+msgstr ""
+
+#: src/hb-backend.c:227
+msgid "Lapsharp"
+msgstr ""
+
+#: src/hb-backend.c:238
+msgid "90 Degrees"
+msgstr ""
+
+#: src/hb-backend.c:239
+msgid "180 Degrees"
+msgstr ""
+
+#: src/hb-backend.c:240
+msgid "270 Degrees"
+msgstr ""
+
+#: src/hb-backend.c:251
+msgid "Spatial"
+msgstr ""
+
+#: src/hb-backend.c:252
+msgid "Temporal"
+msgstr ""
+
+#: src/hb-backend.c:264
+msgid "Fast"
+msgstr ""
+
+#: src/hb-backend.c:265
+msgid "Optimal"
+msgstr ""
+
+#: src/hb-backend.c:276
+msgid "Strict"
+msgstr ""
+
+#: src/hb-backend.c:277
+msgid "Normal"
+msgstr ""
+
+#: src/hb-backend.c:288
+msgid "Simple"
+msgstr ""
+
+#: src/hb-backend.c:289
+msgid "Smart"
+msgstr ""
+
+#: src/hb-backend.c:299
+msgid "Diamond"
+msgstr ""
+
+#: src/hb-backend.c:300
+msgid "Hexagon"
+msgstr ""
+
+#: src/hb-backend.c:301
+msgid "Uneven Multi-Hexagon"
+msgstr ""
+
+#: src/hb-backend.c:302
+msgid "Exhaustive"
+msgstr ""
+
+#: src/hb-backend.c:303
+msgid "Hadamard Exhaustive"
+msgstr ""
+
+#: src/hb-backend.c:313
+msgid "0: SAD, no subpel"
+msgstr ""
+
+#: src/hb-backend.c:314
+msgid "1: SAD, qpel"
+msgstr ""
+
+#: src/hb-backend.c:315
+msgid "2: SATD, qpel"
+msgstr ""
+
+#: src/hb-backend.c:316
+msgid "3: SATD: multi-qpel"
+msgstr ""
+
+#: src/hb-backend.c:317
+msgid "4: SATD, qpel on all"
+msgstr ""
+
+#: src/hb-backend.c:318
+msgid "5: SATD, multi-qpel on all"
+msgstr ""
+
+#: src/hb-backend.c:319
+msgid "6: RD in I/P-frames"
+msgstr ""
+
+#: src/hb-backend.c:320
+msgid "7: RD in all frames"
+msgstr ""
+
+#: src/hb-backend.c:321
+msgid "8: RD refine in I/P-frames"
+msgstr ""
+
+#: src/hb-backend.c:322
+msgid "9: RD refine in all frames"
+msgstr ""
+
+#: src/hb-backend.c:323
+msgid "10: QPRD in all frames"
+msgstr ""
+
+#: src/hb-backend.c:324
+msgid "11: No early terminations in analysis"
+msgstr ""
+
+#: src/hb-backend.c:334
+msgid "Most"
+msgstr ""
+
+#: src/hb-backend.c:336
+msgid "Some"
+msgstr ""
+
+#: src/hb-backend.c:337 src/main.c:1152 src/queuehandler.c:1560
+msgid "All"
+msgstr ""
+
+#: src/hb-backend.c:349
+msgid "Encode only"
+msgstr ""
+
+#: src/hb-backend.c:350
+msgid "Always"
+msgstr ""
+
+#: src/hb-backend.c:1347 src/hb-backend.c:1407 src/hb-backend.c:1486
+msgid "Same as source"
+msgstr ""
+
+#: src/hb-backend.c:1500
+msgid "(NTSC Film)"
+msgstr ""
+
+#: src/hb-backend.c:1504
+msgid "(PAL Film/Video)"
+msgstr ""
+
+#: src/hb-backend.c:1508
+msgid "(NTSC Video)"
+msgstr ""
+
+#: src/hb-backend.c:2075
+#, c-format
+msgid "%s - (%05d.MPLS)"
+msgstr ""
+
+#: src/hb-backend.c:2225
+#, c-format
+msgid "%3d - %02dh%02dm%02ds - %s"
+msgstr ""
+
+#: src/hb-backend.c:2244
+#, c-format
+msgid "%3d - %02dh%02dm%02ds - (%05d.MPLS)"
+msgstr ""
+
+#: src/hb-backend.c:2250
+#, c-format
+msgid "%3d - (%05d.MPLS)"
+msgstr ""
+
+#: src/hb-backend.c:2256
+#, c-format
+msgid "%3d - %02dh%02dm%02ds"
+msgstr ""
+
+#: src/hb-backend.c:2290
+msgid "No Titles"
+msgstr ""
+
+#. No audio. set some default
+#: src/hb-backend.c:2575
+msgid "No Audio"
+msgstr ""
+
+#: src/hb-backend.c:4171
+#, c-format
+msgid ""
+"Invalid Detelecine Settings:\n"
+"\n"
+"Preset:\t%s\n"
+"Custom:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4178
+#, c-format
+msgid ""
+"Invalid Detelecine Settings:\n"
+"\n"
+"Preset:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4204
+#, c-format
+msgid ""
+"Invalid Comb Detect Settings:\n"
+"\n"
+"Preset:\t%s\n"
+"Custom:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4211
+#, c-format
+msgid ""
+"Invalid Comb Detect Settings:\n"
+"\n"
+"Preset:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4240
+#, c-format
+msgid ""
+"Invalid Deinterlace Settings:\n"
+"\n"
+"Filter:\t%s\n"
+"Preset:\t%s\n"
+"Custom:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4249
+#, c-format
+msgid ""
+"Invalid Deinterlace Settings:\n"
+"\n"
+"Filter:\t%s\n"
+"Preset:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4278
+#, c-format
+msgid ""
+"Invalid Denoise Settings:\n"
+"\n"
+"Filter:\t%s\n"
+"Preset:\t%s\n"
+"Tune:\t%s\n"
+"Custom:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4306
+#, c-format
+msgid ""
+"Invalid Sharpen Settings:\n"
+"\n"
+"Filter:\t%s\n"
+"Preset:\t%s\n"
+"Tune:\t%s\n"
+"Custom:\t%s\n"
+msgstr ""
+
+#: src/hb-backend.c:4340
+msgid ""
+"Theora is not supported in the MP4 container.\n"
+"\n"
+"You should choose a different video codec or container.\n"
+"If you continue, FFMPEG will be chosen for you."
+msgstr ""
+
+#: src/hb-backend.c:4350
+msgid ""
+"Only VP8 or VP9 is supported in the WebM container.\n"
+"\n"
+"You should choose a different video codec or container.\n"
+"If you continue, one will be chosen for you."
+msgstr ""
+
+#: src/hb-backend.c:4359 src/hb-backend.c:4416 src/hb-backend.c:4436
+#: src/hb-backend.c:4456 src/hb-backend.c:4517 src/hb-backend.c:4572
+msgid "Continue"
+msgstr ""
+
+#. No valid title, stop right there
+#: src/hb-backend.c:4385 src/hb-backend.c:4481
+msgid "No title found.\n"
+msgstr ""
+
+#: src/hb-backend.c:4412
+msgid ""
+"Only one subtitle may be burned into the video.\n"
+"\n"
+"You should change your subtitle selections.\n"
+"If you continue, some subtitles will be lost."
+msgstr ""
+
+#: src/hb-backend.c:4432
+msgid ""
+"WebM in HandBrake only supports burned subtitles.\n"
+"\n"
+"You should change your subtitle selections.\n"
+"If you continue, some subtitles will be lost."
+msgstr ""
+
+#: src/hb-backend.c:4452
+msgid ""
+"SRT file does not exist or not a regular file.\n"
+"\n"
+"You should choose a valid file.\n"
+"If you continue, this subtitle will be ignored."
+msgstr ""
+
+#: src/hb-backend.c:4513
+msgid ""
+"The source does not support Pass-Thru.\n"
+"\n"
+"You should choose a different audio codec.\n"
+"If you continue, one will be chosen for you."
+msgstr ""
+
+#: src/hb-backend.c:4568
+#, c-format
+msgid ""
+"%s is not supported in the %s container.\n"
+"\n"
+"You should choose a different audio codec.\n"
+"If you continue, one will be chosen for you."
+msgstr ""
+
+#: src/main.c:98
+#, c-format
+msgid ""
+"<b><big>Unable to create %s.</big></b>\n"
+"\n"
+"Internal error. Could not parse UI description.\n"
+"%s"
+msgstr ""
+
+#: src/main.c:236 src/main.c:301
+msgid "Track Information"
+msgstr ""
+
+#: src/main.c:363
+msgid "Preset Name"
+msgstr ""
+
+#: src/main.c:581
+msgid "The device or file to encode"
+msgstr ""
+
+#: src/main.c:582
+msgid "The preset values to use for encoding"
+msgstr ""
+
+#: src/main.c:583
+msgid "Spam a lot"
+msgstr ""
+
+#: src/main.c:584
+msgid "The path to override user config dir"
+msgstr ""
+
+#: src/main.c:586
+msgid "Open a console for debug output"
+msgstr ""
+
+#: src/presets.c:1233
+msgid "ghb_presets_menu_init: Failed to find presets folder."
+msgstr ""
+
+#: src/presets.c:1389
+msgid "Failed to find parent folder when adding child."
+msgstr ""
+
+#: src/presets.c:1849
+msgid ""
+"Presets found are newer than what is supported by this version of "
+"HandBrake!\n"
+"\n"
+"Would you like to continue?"
+msgstr ""
+
+#: src/presets.c:1852
+msgid "Get me out of here!"
+msgstr ""
+
+#: src/presets.c:1852
+msgid "Load backup presets"
+msgstr ""
+
+#: src/presets.c:1998
+msgid "All (*)"
+msgstr ""
+
+#: src/presets.c:2003
+msgid "Presets (*.json)"
+msgstr ""
+
+#: src/presets.c:2009
+msgid "Legacy Presets (*.plist)"
+msgstr ""
+
+#: src/presets.c:2105
+msgid "Export Preset"
+msgstr ""
+
+#: src/presets.c:2432
+#, c-format
+msgid ""
+"Confirm deletion of %s:\n"
+"\n"
+"%s"
+msgstr ""
+
+#: src/presets.c:2433
+msgid "folder"
+msgstr ""
+
+#: src/presets.c:2433
+msgid "preset"
+msgstr ""
+
+#: src/preview.c:488
+#, c-format
+msgid ""
+"Missing GStreamer plugin\n"
+"Audio or Video may not play as expected\n"
+"\n"
+"%s"
+msgstr ""
+
+#: src/queuehandler.c:193
+#, c-format
+msgid "%s (Modified)"
+msgstr ""
+
+#: src/queuehandler.c:238
+msgid "Align A/V"
+msgstr ""
+
+#: src/queuehandler.c:248
+msgid "iPod 5G"
+msgstr ""
+
+#: src/queuehandler.c:280
+#, c-format
+msgid ""
+"%d:%d:%d:%d Crop\n"
+"%dx%d storage, %dx%d display\n"
+"%d:%d Pixel Aspect Ratio\n"
+"%s Display Aspect Ratio"
+msgstr ""
+
+#: src/queuehandler.c:311
+#, c-format
+msgid "%s, Bitrate %dkbps"
+msgstr ""
+
+#: src/queuehandler.c:316
+#, c-format
+msgid "%s, Bitrate %dkbps (2 Pass)"
+msgstr ""
+
+#: src/queuehandler.c:323
+#, c-format
+msgid "%s, Constant Quality %.4g(%s)"
+msgstr ""
+
+#: src/queuehandler.c:356
+#, c-format
+msgid "%sPreset %s"
+msgstr ""
+
+#: src/queuehandler.c:361
+#, c-format
+msgid "%sTune %s"
+msgstr ""
+
+#: src/queuehandler.c:366
+#, c-format
+msgid "%sProfile %s"
+msgstr ""
+
+#: src/queuehandler.c:371
+#, c-format
+msgid "%sLevel %s"
+msgstr ""
+
+#: src/queuehandler.c:388
+#, c-format
+msgid ""
+"\n"
+"Constant Framerate %s fps"
+msgstr ""
+
+#: src/queuehandler.c:392
+#, c-format
+msgid ""
+"\n"
+"Peak Framerate %s fps (may be lower)"
+msgstr ""
+
+#: src/queuehandler.c:397
+#, c-format
+msgid ""
+"\n"
+"Variable Framerate %s fps"
+msgstr ""
+
+#: src/queuehandler.c:563 src/queuehandler.c:594
+msgid ", Forced Only"
+msgstr ""
+
+#: src/queuehandler.c:567 src/queuehandler.c:598
+msgid ", Burned"
+msgstr ""
+
+#: src/queuehandler.c:571 src/queuehandler.c:602
+msgid ", Default"
+msgstr ""
+
+#: src/queuehandler.c:658 src/queuehandler.c:1157
+msgid "Completed"
+msgstr ""
+
+#: src/queuehandler.c:662 src/queuehandler.c:1161
+msgid "Canceled"
+msgstr ""
+
+#: src/queuehandler.c:666 src/queuehandler.c:1165
+msgid "Failed"
+msgstr ""
+
+#: src/queuehandler.c:671
+msgid "Pending"
+msgstr ""
+
+#: src/queuehandler.c:707 src/queuehandler.c:735 src/queuehandler.c:1205
+#: src/queuehandler.c:1233
+#, c-format
+msgid "%d Day %02d:%02d:%02d"
+msgstr ""
+
+#: src/queuehandler.c:710 src/queuehandler.c:738 src/queuehandler.c:1208
+#: src/queuehandler.c:1236
+#, c-format
+msgid "%d Days %02d:%02d:%02d"
+msgstr ""
+
+#: src/queuehandler.c:751 src/queuehandler.c:1249
+msgid "B"
+msgstr ""
+
+#: src/queuehandler.c:755 src/queuehandler.c:1253
+msgid "KB"
+msgstr ""
+
+#: src/queuehandler.c:760 src/queuehandler.c:1258
+msgid "MB"
+msgstr ""
+
+#: src/queuehandler.c:765 src/queuehandler.c:1263
+msgid "GB"
+msgstr ""
+
+#: src/queuehandler.c:776 src/queuehandler.c:1274
+msgid "Not Available"
+msgstr ""
+
+#: src/queuehandler.c:1109
+msgid "Foreign Audio Search"
+msgstr ""
+
+#: src/queuehandler.c:1113
+msgid "Encode"
+msgstr ""
+
+#: src/queuehandler.c:1117
+msgid "Encode First Pass (Analysis)"
+msgstr ""
+
+#: src/queuehandler.c:1121
+msgid "Encode Second Pass (Final)"
+msgstr ""
+
+#. Should never happen
+#: src/queuehandler.c:1126
+msgid "Error"
+msgstr ""
+
+#: src/queuehandler.c:1130
+#, c-format
+msgid ""
+"pass %d of %d\n"
+"%s"
+msgstr ""
+
+#: src/queuehandler.c:1142
+msgid "Scanning Title"
+msgstr ""
+
+#: src/queuehandler.c:1146
+msgid "Encoding Paused"
+msgstr ""
+
+#: src/queuehandler.c:1150
+msgid "Encoding In Progress"
+msgstr ""
+
+#. Should never happen
+#: src/queuehandler.c:1170
+msgid "Unknown"
+msgstr ""
+
+#: src/queuehandler.c:1723
+#, c-format
+msgid ""
+"%sThe destination filesystem is almost full: %<PRId64> MB free.\n"
+"Destination: %s\n"
+"Encode may be incomplete if you proceed.\n"
+msgstr ""
+
+#: src/queuehandler.c:1728
+msgid "Resume, I've fixed the problem"
+msgstr ""
+
+#: src/queuehandler.c:1729
+msgid "Resume, Don't tell me again"
+msgstr ""
+
+#: src/queuehandler.c:1783
+#, c-format
+msgid ""
+"Destination: %s\n"
+"\n"
+"Another queued job has specified the same destination.\n"
+"Do you want to overwrite?"
+msgstr ""
+
+#: src/queuehandler.c:1788 src/queuehandler.c:1834
+msgid "Overwrite"
+msgstr ""
+
+#: src/queuehandler.c:1801
+#, c-format
+msgid ""
+"Destination: %s\n"
+"\n"
+"This is not a valid directory."
+msgstr ""
+
+#: src/queuehandler.c:1815
+#, c-format
+msgid ""
+"Destination: %s\n"
+"\n"
+"Can not read or write the directory."
+msgstr ""
+
+#: src/queuehandler.c:1829
+#, c-format
+msgid ""
+"Destination: %s\n"
+"\n"
+"File already exists.\n"
+"Do you want to overwrite?"
+msgstr ""
+
+#: src/queuehandler.c:2142
+msgid "Select this title for adding to the queue.\n"
+msgstr ""
+
+#. Title label
+#: src/queuehandler.c:2150
+msgid "No Title"
+msgstr ""
+
+#: src/queuehandler.c:2160
+msgid ""
+"There is another title with the same destination file name.\n"
+"This title will not be added to the queue unless you change\n"
+"the output file name.\n"
+msgstr ""
+
+#: src/queuehandler.c:2324 src/queuehandler.c:2337
+msgid "Stop"
+msgstr ""
+
+#: src/queuehandler.c:2325 src/queuehandler.c:2338 src/queuehandler.c:2350
+msgid "Stop Encoding"
+msgstr ""
+
+#: src/queuehandler.c:2349
+msgid "S_top Encoding"
+msgstr ""
+
+#: src/queuehandler.c:2362 src/queuehandler.c:2375
+msgid "Resume"
+msgstr ""
+
+#: src/queuehandler.c:2363 src/queuehandler.c:2376 src/queuehandler.c:2388
+msgid "Resume Encoding"
+msgstr ""
+
+#: src/queuehandler.c:2387
+msgid "_Resume Encoding"
+msgstr ""
+
+#: src/queuehandler.c:3018
+msgid ""
+"You are currently encoding. What would you like to do?\n"
+"\n"
+msgstr ""
+
+#: src/subtitlehandler.c:1380
+#, c-format
+msgid "Preferred Language: %s"
+msgstr ""
+
+#: src/subtitlehandler.c:1394
+#, c-format
+msgid "Add %s subtitle track if default audio is not %s"
+msgstr ""
+
+#: src/subtitlehandler.c:1399
+msgid "Add subtitle track if default audio is not your preferred language"
+msgstr ""
+
+#: src/videohandler.c:203
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+"Expanded Options:\n"
+"\"%s\""
+msgstr ""
+
+#: src/videohandler.c:206
+#, c-format
+msgid ""
+"%s\n"
+"\n"
+"Expanded Options:\n"
+"\"\""
+msgstr ""
+
+#: src/videohandler.c:350
+#, c-format
+msgid "%s: %.4g (Warning: lossless)"
+msgstr ""
diff --git a/gtk/po/insert-header.sin b/gtk/po/insert-header.sin
new file mode 100644
index 000000000..b26de01f6
--- /dev/null
+++ b/gtk/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/gtk/po/quot.sed b/gtk/po/quot.sed
new file mode 100644
index 000000000..0122c4631
--- /dev/null
+++ b/gtk/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/gtk/po/remove-potcdate.sin b/gtk/po/remove-potcdate.sin
new file mode 100644
index 000000000..2436c49e7
--- /dev/null
+++ b/gtk/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/gtk/src/Makefile.am b/gtk/src/Makefile.am
index d968c1812..0184d7b32 100644
--- a/gtk/src/Makefile.am
+++ b/gtk/src/Makefile.am
@@ -39,7 +39,6 @@ icons_dep = \
hb_menu = fr.handbrake.ghb.desktop
-@INTLTOOL_XML_RULE@
appdatadir = $(datarootdir)/metainfo
appdata_in_files = fr.handbrake.ghb.appdata.xml.in
appdata_DATA = $(appdata_in_files:.xml.in=.xml)
@@ -173,7 +172,10 @@ widget_reverse.deps: makedeps.py
widget.deps: makedeps.py
$(HB_PYTHON) $(srcdir)/makedeps.py
-fr.handbrake.ghb.appdata.xml.in: fr.handbrake.ghb.appdata.xml.template
+fr.handbrake.ghb.appdata.xml: fr.handbrake.ghb.appdata.xml.in
+ $(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
+
+fr.handbrake.ghb.appdata.xml.in: fr.handbrake.ghb.appdata.template.xml
sed -e 's^RELEASE_TAG^<release version="$(HB.version)" date="$(word 1,$(HB.repo.date))" />^' $< > $@
$(srcdir)/marshalers.h: marshalers.list
diff --git a/gtk/src/fr.handbrake.ghb.appdata.xml.template b/gtk/src/fr.handbrake.ghb.appdata.template.xml
index 794d43b55..794d43b55 100644
--- a/gtk/src/fr.handbrake.ghb.appdata.xml.template
+++ b/gtk/src/fr.handbrake.ghb.appdata.template.xml