pinta-1.3/0000775000175000017500000000000011747026514013633 5ustar00cameroncameron00000000000000pinta-1.3/configure.ac0000664000175000017500000000304211747026475016126 0ustar00cameroncameron00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([pinta], [1.3]) AM_INIT_AUTOMAKE([tar-ustar foreign]) AC_PROG_INSTALL dnl pkg-config AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi AC_PATH_PROG(XBUILD, xbuild, no) AC_PATH_PROG(MONO, mono, no) if test "x$XBUILD" = "xno"; then AC_MSG_ERROR([XBuild not found]) fi if test "x$MONO" = "xno"; then AC_MSG_ERROR([No mono runtime found]) fi # Check Mono version MONO_MINIMUM_VERSION=2.8 PKG_CHECK_MODULES(MONO, mono >= $MONO_MINIMUM_VERSION) AC_SUBST(XBUILD) AC_SUBST(MONO) AC_PROG_INTLTOOL([0.35.0], [no-xml]) GETTEXT_PACKAGE=pinta AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE") ALL_LINGUAS="af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW" AM_GLIB_GNU_GETTEXT pintalocaledir='${prefix}/${DATADIRNAME}/locale' AC_SUBST(pintalocaledir) PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0]) PKG_CHECK_MODULES([GTK_SHARP_20], [gtk-sharp-2.0]) PKG_CHECK_MODULES([MONO_CAIRO], [mono-cairo]) AC_CONFIG_FILES([ xdg/Makefile po/Makefile.in pinta.pc Makefile pinta ]) AC_OUTPUT cat <, 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR pinta-1.3/Makefile.am0000664000175000017500000000657111747026475015706 0ustar00cameroncameron00000000000000SUBDIRS = xdg BINDIR = $(srcdir)/bin PINTA_ASSEMBLY_PC = $(srcdir)/$(PACKAGE_NAME).pc BINFILES = \ $(BINDIR)/Pinta.exe \ $(BINDIR)/Pinta.Core.dll \ $(BINDIR)/Pinta.Gui.Widgets.dll \ $(BINDIR)/Pinta.Resources.dll \ $(BINDIR)/Pinta.Effects.dll \ $(BINDIR)/Pinta.Tools.dll RELEASE_FILE = $(PACKAGE)-$(VERSION) #magic automake variables pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = $(PINTA_ASSEMBLY_PC) #end # target: all - Default target: build all: build # target: run - Launch the uninstalled copy run: $(MONO) bin/Pinta.exe # target: help - Display callable targets. help: egrep "^# target:" Makefile | sed 's/^# target:/make/' # target: build - Build Pinta. build: Pinta.sln cd $(srcdir) && $(XBUILD) Pinta.sln cd $(srcdir) && $(XBUILD) Pinta.Install.proj /target:CompileTranslations # target: list - List source files. list: if ! git status > /dev/null 2> /dev/null ;\ then \ find . -type f -name *.cs | sed 's|./||' ;\ else \ git ls-files | grep '\.cs' ;\ fi #target: updatepot - update the messages.pot file updatepot: build find . -type f -name *.cs | sed 's|./||' > files.list grep -v System.ComponentModel.Composition files.list > files2.list xgettext --from-code=UTF-8 -f files2.list -o po/messages.pot cat po/messages.in >> po/messages.pot rm files.list rm files2.list # target: clean - Default clean command: cleanobj and cleanbin clean: cleanobj cleanbin # target: distclean - Removes configure files. distclean: clean rm -f Makefile pinta config.status config.cache config.log configure.lineno config.status.lineno pinta.pc # target: cleanall - Removes build files. cleanall: distclean rm -rf autom4te.cache rm -f configure aclocal.m4 missing install-sh Makefile.in # target: cleanbin - Removes built files. cleanbin: rm -rvf $(BINDIR)/* # target: cleanobj - Removes temporary build files. cleanobj: find $(srcdir)/ -type d -name obj | xargs rm -rvf # target: install - Installs Pinta. install: pinta $(BINFILES) cd $(srcdir) && $(XBUILD) /target:Install /property:InstallPrefix=$(DESTDIR)$(prefix) \ /property:BinDir=$(DESTDIR)$(bindir) /property:LibDir=$(DESTDIR)$(libdir) \ /property:DataRootDir=$(DESTDIR)$(datarootdir) /property:ManDir=$(DESTDIR)$(mandir) \ /property:LocaleDir=$(DESTDIR)$(localedir) Pinta.Install.proj $(INSTALL_SCRIPT) pinta $(DESTDIR)$(bindir)/$(PACKAGE) # target: uninstall - Uninstalls Pinta. uninstall: $(XBUILD) /target:Uninstall /property:InstallPrefix=$(DESTDIR)$(prefix) Pinta.Install.proj # target: release - Default release type: releasetar release: releasetar # target: releasetar - Make a release tarball. releasetar: $(BINFILES) cd $(BINDIR) && tar -czf ../$(RELEASE_FILE).tgz --exclude=*mdb * # target: releasezip - Make a release zip file. releasezip: $(BINFILES) cd $(BINDIR) && zip -r ../$(RELEASE_FILE).zip * -x "*.mdb" EXTRA_DIST = Pinta Pinta.Core Pinta.Effects Pinta.Gui.Widgets Pinta.Resources Pinta.Tools po xdg license-mit.txt \ license-pdn.txt todo.txt Pinta.sln Pinta.Install.proj pinta.pc.in readme.md intltool-extract.in \ intltool-merge.in intltool-update.in CLEANFILES = \ intltool-extract \ intltool-update \ intltool-merge DISTCLEANFILES = intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache .PHONY: install uninstall cleanall cleanbin cleanobj release releasetar releasezip pinta-1.3/Makefile.in0000664000175000017500000006571511747026504015715 0ustar00cameroncameron00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/pinta.in $(srcdir)/pinta.pc.in \ $(top_srcdir)/configure install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = pinta.pc pinta CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@ GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@ GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_CAIRO_CFLAGS = @MONO_CAIRO_CFLAGS@ MONO_CAIRO_LIBS = @MONO_CAIRO_LIBS@ MONO_CFLAGS = @MONO_CFLAGS@ MONO_LIBS = @MONO_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XBUILD = @XBUILD@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pintalocaledir = @pintalocaledir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = xdg BINDIR = $(srcdir)/bin PINTA_ASSEMBLY_PC = $(srcdir)/$(PACKAGE_NAME).pc BINFILES = \ $(BINDIR)/Pinta.exe \ $(BINDIR)/Pinta.Core.dll \ $(BINDIR)/Pinta.Gui.Widgets.dll \ $(BINDIR)/Pinta.Resources.dll \ $(BINDIR)/Pinta.Effects.dll \ $(BINDIR)/Pinta.Tools.dll RELEASE_FILE = $(PACKAGE)-$(VERSION) #magic automake variables pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = $(PINTA_ASSEMBLY_PC) EXTRA_DIST = Pinta Pinta.Core Pinta.Effects Pinta.Gui.Widgets Pinta.Resources Pinta.Tools po xdg license-mit.txt \ license-pdn.txt todo.txt Pinta.sln Pinta.Install.proj pinta.pc.in readme.md intltool-extract.in \ intltool-merge.in intltool-update.in CLEANFILES = \ intltool-extract \ intltool-update \ intltool-merge DISTCLEANFILES = intltool-extract \ intltool-merge \ intltool-update \ po/.intltool-merge-cache all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): pinta.pc: $(top_builddir)/config.status $(srcdir)/pinta.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ pinta: $(top_builddir)/config.status $(srcdir)/pinta.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install-exec: install-exec-recursive install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean-am: clean-generic mostlyclean-am distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-generic distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-pkgconfigDATA \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-pkgconfigDATA #end # target: all - Default target: build all: build # target: run - Launch the uninstalled copy run: $(MONO) bin/Pinta.exe # target: help - Display callable targets. help: egrep "^# target:" Makefile | sed 's/^# target:/make/' # target: build - Build Pinta. build: Pinta.sln cd $(srcdir) && $(XBUILD) Pinta.sln cd $(srcdir) && $(XBUILD) Pinta.Install.proj /target:CompileTranslations # target: list - List source files. list: if ! git status > /dev/null 2> /dev/null ;\ then \ find . -type f -name *.cs | sed 's|./||' ;\ else \ git ls-files | grep '\.cs' ;\ fi #target: updatepot - update the messages.pot file updatepot: build find . -type f -name *.cs | sed 's|./||' > files.list grep -v System.ComponentModel.Composition files.list > files2.list xgettext --from-code=UTF-8 -f files2.list -o po/messages.pot cat po/messages.in >> po/messages.pot rm files.list rm files2.list # target: clean - Default clean command: cleanobj and cleanbin clean: cleanobj cleanbin # target: distclean - Removes configure files. distclean: clean rm -f Makefile pinta config.status config.cache config.log configure.lineno config.status.lineno pinta.pc # target: cleanall - Removes build files. cleanall: distclean rm -rf autom4te.cache rm -f configure aclocal.m4 missing install-sh Makefile.in # target: cleanbin - Removes built files. cleanbin: rm -rvf $(BINDIR)/* # target: cleanobj - Removes temporary build files. cleanobj: find $(srcdir)/ -type d -name obj | xargs rm -rvf # target: install - Installs Pinta. install: pinta $(BINFILES) cd $(srcdir) && $(XBUILD) /target:Install /property:InstallPrefix=$(DESTDIR)$(prefix) \ /property:BinDir=$(DESTDIR)$(bindir) /property:LibDir=$(DESTDIR)$(libdir) \ /property:DataRootDir=$(DESTDIR)$(datarootdir) /property:ManDir=$(DESTDIR)$(mandir) \ /property:LocaleDir=$(DESTDIR)$(localedir) Pinta.Install.proj $(INSTALL_SCRIPT) pinta $(DESTDIR)$(bindir)/$(PACKAGE) # target: uninstall - Uninstalls Pinta. uninstall: $(XBUILD) /target:Uninstall /property:InstallPrefix=$(DESTDIR)$(prefix) Pinta.Install.proj # target: release - Default release type: releasetar release: releasetar # target: releasetar - Make a release tarball. releasetar: $(BINFILES) cd $(BINDIR) && tar -czf ../$(RELEASE_FILE).tgz --exclude=*mdb * # target: releasezip - Make a release zip file. releasezip: $(BINFILES) cd $(BINDIR) && zip -r ../$(RELEASE_FILE).zip * -x "*.mdb" .PHONY: install uninstall cleanall cleanbin cleanobj release releasetar releasezip # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/pinta.in0000664000175000017500000000007511747026475015306 0ustar00cameroncameron00000000000000#!/bin/sh exec @MONO@ @prefix@/lib/@PACKAGE@/Pinta.exe "$@" pinta-1.3/pinta.pc.in0000664000175000017500000000050111747026475015701 0ustar00cameroncameron00000000000000Name: pinta Description: Pinta Version: @VERSION@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ Libs: -r:@libdir@/pinta/Pinta.exe -r:@libdir@/pinta/Pinta.Core.dll -r:@libdir@/pinta/Pinta.Effects.dll -r:@libdir@/pinta/Pinta.Widgets.dll -r:@libdir@/pinta/Pinta.Resources.dll -r:@libdir@/pinta/Pinta.Tools.dll pinta-1.3/configure0000775000175000017500000065431111747026504015553 0ustar00cameroncameron00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for pinta 1.3. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pinta' PACKAGE_TARNAME='pinta' PACKAGE_VERSION='1.3' PACKAGE_STRING='pinta 1.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS MONO_CAIRO_LIBS MONO_CAIRO_CFLAGS GTK_SHARP_20_LIBS GTK_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS GLIB_SHARP_20_CFLAGS pintalocaledir MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS EGREP GREP CPP GETTEXT_PACKAGE DATADIRNAME am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS MONO_LIBS MONO_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH MONO XBUILD PKG_CONFIG am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_nls enable_dependency_tracking ' ac_precious_vars='build_alias host_alias target_alias PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR MONO_CFLAGS MONO_LIBS CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP GLIB_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS GTK_SHARP_20_CFLAGS GTK_SHARP_20_LIBS MONO_CAIRO_CFLAGS MONO_CAIRO_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures pinta 1.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/pinta] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of pinta 1.3:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls do not use Native Language Support --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors Some influential environment variables: PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path MONO_CFLAGS C compiler flags for MONO, overriding pkg-config MONO_LIBS linker flags for MONO, overriding pkg-config CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor GLIB_SHARP_20_CFLAGS C compiler flags for GLIB_SHARP_20, overriding pkg-config GLIB_SHARP_20_LIBS linker flags for GLIB_SHARP_20, overriding pkg-config GTK_SHARP_20_CFLAGS C compiler flags for GTK_SHARP_20, overriding pkg-config GTK_SHARP_20_LIBS linker flags for GTK_SHARP_20, overriding pkg-config MONO_CAIRO_CFLAGS C compiler flags for MONO_CAIRO, overriding pkg-config MONO_CAIRO_LIBS linker flags for MONO_CAIRO, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF pinta configure 1.3 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by pinta $as_me 1.3, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='pinta' VERSION='1.3' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 $as_echo_n "checking how to create a ustar tar archive... " >&6; } # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar plaintar pax cpio none' _am_tools=${am_cv_prog_tar_ustar-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x ustar -w "$$tardir"' am__tar_='pax -L -x ustar -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H ustar -L' am__tar_='find "$tardir" -print | cpio -o -H ustar -L' am__untar='cpio -i -H ustar -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_ustar}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if ${am_cv_prog_tar_ustar+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 $as_echo "$am_cv_prog_tar_ustar" >&6; } # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PKG_CONFIG" = "xno"; then as_fn_error $? "You need to install pkg-config" "$LINENO" 5 fi # Extract the first word of "xbuild", so it can be a program name with args. set dummy xbuild; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XBUILD+:} false; then : $as_echo_n "(cached) " >&6 else case $XBUILD in [\\/]* | ?:[\\/]*) ac_cv_path_XBUILD="$XBUILD" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XBUILD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_XBUILD" && ac_cv_path_XBUILD="no" ;; esac fi XBUILD=$ac_cv_path_XBUILD if test -n "$XBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XBUILD" >&5 $as_echo "$XBUILD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "mono", so it can be a program name with args. set dummy mono; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MONO+:} false; then : $as_echo_n "(cached) " >&6 else case $MONO in [\\/]* | ?:[\\/]*) ac_cv_path_MONO="$MONO" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MONO="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MONO" && ac_cv_path_MONO="no" ;; esac fi MONO=$ac_cv_path_MONO if test -n "$MONO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MONO" >&5 $as_echo "$MONO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$XBUILD" = "xno"; then as_fn_error $? "XBuild not found" "$LINENO" 5 fi if test "x$MONO" = "xno"; then as_fn_error $? "No mono runtime found" "$LINENO" 5 fi # Check Mono version MONO_MINIMUM_VERSION=2.8 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONO" >&5 $as_echo_n "checking for MONO... " >&6; } if test -n "$MONO_CFLAGS"; then pkg_cv_MONO_CFLAGS="$MONO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= \$MONO_MINIMUM_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= $MONO_MINIMUM_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_CFLAGS=`$PKG_CONFIG --cflags "mono >= $MONO_MINIMUM_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MONO_LIBS"; then pkg_cv_MONO_LIBS="$MONO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= \$MONO_MINIMUM_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= $MONO_MINIMUM_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_LIBS=`$PKG_CONFIG --libs "mono >= $MONO_MINIMUM_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MONO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono >= $MONO_MINIMUM_VERSION" 2>&1` else MONO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono >= $MONO_MINIMUM_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MONO_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (mono >= $MONO_MINIMUM_VERSION) were not met: $MONO_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MONO_CFLAGS and MONO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MONO_CFLAGS and MONO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MONO_CFLAGS=$pkg_cv_MONO_CFLAGS MONO_LIBS=$pkg_cv_MONO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.35.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5 $as_echo_n "checking for intltool >= 0.35.0... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.35.0 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "xno-xml" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi GETTEXT_PACKAGE=pinta cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES pintalocaledir='${prefix}/${DATADIRNAME}/locale' pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB_SHARP_20" >&5 $as_echo_n "checking for GLIB_SHARP_20... " >&6; } if test -n "$GLIB_SHARP_20_CFLAGS"; then pkg_cv_GLIB_SHARP_20_CFLAGS="$GLIB_SHARP_20_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_SHARP_20_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIB_SHARP_20_LIBS"; then pkg_cv_GLIB_SHARP_20_LIBS="$GLIB_SHARP_20_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_SHARP_20_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIB_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-sharp-2.0" 2>&1` else GLIB_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_SHARP_20_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-sharp-2.0) were not met: $GLIB_SHARP_20_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GLIB_SHARP_20_CFLAGS and GLIB_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GLIB_SHARP_20_CFLAGS and GLIB_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GLIB_SHARP_20_CFLAGS=$pkg_cv_GLIB_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS=$pkg_cv_GLIB_SHARP_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_SHARP_20" >&5 $as_echo_n "checking for GTK_SHARP_20... " >&6; } if test -n "$GTK_SHARP_20_CFLAGS"; then pkg_cv_GTK_SHARP_20_CFLAGS="$GTK_SHARP_20_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_SHARP_20_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK_SHARP_20_LIBS"; then pkg_cv_GTK_SHARP_20_LIBS="$GTK_SHARP_20_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_SHARP_20_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0" 2>&1` else GTK_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_SHARP_20_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk-sharp-2.0) were not met: $GTK_SHARP_20_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_SHARP_20_CFLAGS and GTK_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_SHARP_20_CFLAGS and GTK_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GTK_SHARP_20_CFLAGS=$pkg_cv_GTK_SHARP_20_CFLAGS GTK_SHARP_20_LIBS=$pkg_cv_GTK_SHARP_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONO_CAIRO" >&5 $as_echo_n "checking for MONO_CAIRO... " >&6; } if test -n "$MONO_CAIRO_CFLAGS"; then pkg_cv_MONO_CAIRO_CFLAGS="$MONO_CAIRO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-cairo\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-cairo") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "mono-cairo" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MONO_CAIRO_LIBS"; then pkg_cv_MONO_CAIRO_LIBS="$MONO_CAIRO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-cairo\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-cairo") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_CAIRO_LIBS=`$PKG_CONFIG --libs "mono-cairo" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MONO_CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono-cairo" 2>&1` else MONO_CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono-cairo" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MONO_CAIRO_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (mono-cairo) were not met: $MONO_CAIRO_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MONO_CAIRO_CFLAGS and MONO_CAIRO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MONO_CAIRO_CFLAGS and MONO_CAIRO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MONO_CAIRO_CFLAGS=$pkg_cv_MONO_CAIRO_CFLAGS MONO_CAIRO_LIBS=$pkg_cv_MONO_CAIRO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ac_config_files="$ac_config_files xdg/Makefile po/Makefile.in pinta.pc Makefile pinta" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pinta $as_me 1.3, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ pinta config.status 1.3 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "xdg/Makefile") CONFIG_FILES="$CONFIG_FILES xdg/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "pinta.pc") CONFIG_FILES="$CONFIG_FILES pinta.pc" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "pinta") CONFIG_FILES="$CONFIG_FILES pinta" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi cat <&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pinta-1.3/missing0000755000175000017500000002623311500011217015213 0ustar00cameroncameron00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pinta-1.3/Pinta/0000775000175000017500000000000011747026475014714 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/.gitignore0000664000175000017500000000003311747026475016700 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.3/Pinta/Actions/0000775000175000017500000000000011747026475016314 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Edit/0000775000175000017500000000000011747026475017201 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Edit/AddinManagerAction.cs0000664000175000017500000000342311747026475023202 0ustar00cameroncameron00000000000000// // AboutDialogAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Mono.Addins.Gui; using Pinta.Core; namespace Pinta.Actions { class AddinManagerAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Edit.AddinManager.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Edit.AddinManager.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { AddinManagerWindow.AllowInstall = false; AddinManagerWindow.Run (PintaCore.Chrome.MainWindow); //dlg.DeleteEvent += delegate { dlg.Destroy (); }; } } } pinta-1.3/Pinta/Actions/Edit/PasteAction.cs0000664000175000017500000001037011747026475021743 0ustar00cameroncameron00000000000000// // PasteAction.cs // // Author: // Jonathan Pobst , Cameron White // // Copyright (c) 2012 Jonathan Pobst, Cameron White // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class PasteAction : IActionHandler { private const string markup = "{0}\n\n{1}"; #region IActionHandler Members public void Initialize () { PintaCore.Actions.Edit.Paste.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Edit.Paste.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); Path p; // Don't dispose this, as we're going to give it to the history Gdk.Pixbuf image = cb.WaitForImage (); if (image == null) { Dialogs.ClipboardEmptyDialog.Show (); return; } Gdk.Size canvas_size = PintaCore.Workspace.ImageSize; // If the image being pasted is larger than the canvas size, allow the user to optionally resize the canvas if (image.Width > canvas_size.Width || image.Height > canvas_size.Height) { ResponseType response = ShowExpandCanvasDialog (); if (response == ResponseType.Accept) { PintaCore.Workspace.ResizeCanvas (image.Width, image.Height, Pinta.Core.Anchor.Center); PintaCore.Actions.View.UpdateCanvasScale (); } else if (response == ResponseType.Cancel || response == ResponseType.DeleteEvent) { return; } } // Copy the paste to the temp layer doc.CreateSelectionLayer (); doc.ShowSelectionLayer = true; using (Cairo.Context g = new Cairo.Context (doc.SelectionLayer.Surface)) { g.DrawPixbuf (image, new Cairo.Point (0, 0)); p = g.CreateRectanglePath (new Rectangle (0, 0, image.Width, image.Height)); } PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); Path old_path = doc.SelectionPath; bool old_show_selection = doc.ShowSelection; doc.SelectionPath = p; doc.ShowSelection = true; doc.Workspace.Invalidate (); doc.History.PushNewItem (new PasteHistoryItem (image, old_path, old_show_selection)); } private ResponseType ShowExpandCanvasDialog () { string primary = Catalog.GetString ("Image larger than canvas"); string secondary = Catalog.GetString ("The image being pasted is larger than the canvas size. What would you like to do?"); string message = string.Format (markup, primary, secondary); var enlarge_dialog = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, message); enlarge_dialog.AddButton (Catalog.GetString ("Expand canvas"), ResponseType.Accept); enlarge_dialog.AddButton (Catalog.GetString ("Don't change canvas size"), ResponseType.Reject); enlarge_dialog.AddButton (Stock.Cancel, ResponseType.Cancel); enlarge_dialog.DefaultResponse = ResponseType.Accept; ResponseType response = (ResponseType)enlarge_dialog.Run (); enlarge_dialog.Destroy (); return response; } } } pinta-1.3/Pinta/Actions/Edit/PasteIntoNewImageAction.cs0000664000175000017500000000410211747026475024206 0ustar00cameroncameron00000000000000// // PasteIntoNewImageAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class PasteIntoNewImageAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Edit.PasteIntoNewImage.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Edit.PasteIntoNewImage.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (cb.WaitIsImageAvailable ()) { Gdk.Pixbuf image = cb.WaitForImage (); Gdk.Size size = new Gdk.Size (image.Width, image.Height); PintaCore.Workspace.NewDocument (size, true); PintaCore.Actions.Edit.Paste.Activate (); PintaCore.Actions.Edit.Deselect.Activate (); } else { Pinta.Dialogs.ClipboardEmptyDialog.Show (); } } } } pinta-1.3/Pinta/Actions/Edit/PasteIntoNewLayerAction.cs0000664000175000017500000000456411747026475024254 0ustar00cameroncameron00000000000000// // PasteIntoNewLayerAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class PasteIntoNewLayerAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Edit.PasteIntoNewLayer.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Edit.PasteIntoNewLayer.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (cb.WaitIsImageAvailable ()) { PintaCore.Tools.Commit (); Gdk.Pixbuf image = cb.WaitForImage (); Layer l = PintaCore.Layers.AddNewLayer (string.Empty); using (Cairo.Context g = new Cairo.Context (l.Surface)) g.DrawPixbuf (image, new Cairo.Point (0, 0)); // Make new layer the current layer PintaCore.Layers.SetCurrentLayer (l); PintaCore.Workspace.Invalidate (); AddLayerHistoryItem hist = new AddLayerHistoryItem (Stock.Paste, Catalog.GetString ("Paste Into New Layer"), PintaCore.Layers.IndexOf (l)); PintaCore.History.PushNewItem (hist); } else { Pinta.Dialogs.ClipboardEmptyDialog.Show (); } } } } pinta-1.3/Pinta/Actions/Edit/ResizePaletteAction.cs0000664000175000017500000000376211747026475023456 0ustar00cameroncameron00000000000000// // ResizePaletteAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class ResizePaletteAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Edit.ResizePalette.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Edit.ResizePalette.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { SpinButtonEntryDialog dialog = new SpinButtonEntryDialog (Catalog.GetString ("Resize Palette"), PintaCore.Chrome.MainWindow, Catalog.GetString ("New palette size:"), 1, 96, PintaCore.Palette.CurrentPalette.Count); if (dialog.Run () == (int)ResponseType.Ok) { PintaCore.Palette.CurrentPalette.Resize (dialog.GetValue ()); } dialog.Destroy (); } } } pinta-1.3/Pinta/Actions/File/0000775000175000017500000000000011747026475017173 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/File/CloseDocumentAction.cs0000664000175000017500000000614211747026475023427 0ustar00cameroncameron00000000000000// // CloseDocumentAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class CloseDocumentAction : IActionHandler { private const string markup = "{0}\n\n{1}"; #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.Close.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.Close.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { // Commit any pending changes PintaCore.Tools.Commit (); // If it's not dirty, just close it if (!PintaCore.Workspace.ActiveDocument.IsDirty) { PintaCore.Workspace.CloseActiveDocument (); return; } var primary = Catalog.GetString ("Save the changes to image \"{0}\" before closing?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var message = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Warning, ButtonsType.None, true, message, System.IO.Path.GetFileName (PintaCore.Workspace.ActiveDocument.Filename)); md.AddButton (Catalog.GetString ("Close without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); // so that user won't accidentally overwrite md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { PintaCore.Workspace.ActiveDocument.Save (false); // If the image is still dirty, the user // must have cancelled the Save dialog if (!PintaCore.Workspace.ActiveDocument.IsDirty) PintaCore.Workspace.CloseActiveDocument (); } else if (response == ResponseType.No) { PintaCore.Workspace.CloseActiveDocument (); } } } } pinta-1.3/Pinta/Actions/File/ExitAction.cs0000664000175000017500000000405011747026475021570 0ustar00cameroncameron00000000000000// // ExitProgramAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class ExitProgramAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.Exit.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.Exit.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { while (PintaCore.Workspace.HasOpenDocuments) { int count = PintaCore.Workspace.OpenDocuments.Count; PintaCore.Actions.File.Close.Activate (); // If we still have the same number of open documents, // the user cancelled on a Save prompt. if (count == PintaCore.Workspace.OpenDocuments.Count) return; } // Let everyone know we are quitting PintaCore.Actions.File.RaiseBeforeQuit (); Application.Quit (); } } } pinta-1.3/Pinta/Actions/File/ModifyCompressionAction.cs0000664000175000017500000000360111747026475024331 0ustar00cameroncameron00000000000000// // ModifyCompressionAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class ModifyCompressionAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.ModifyCompression += Activated; } public void Uninitialize () { PintaCore.Actions.File.ModifyCompression -= Activated; } #endregion private void Activated (object sender, ModifyCompressionEventArgs e) { JpegCompressionDialog dlg = new JpegCompressionDialog (e.Quality); try { if (dlg.Run () == (int)Gtk.ResponseType.Ok) e.Quality = dlg.GetCompressionLevel (); else e.Cancel = true; } finally { dlg.Destroy (); } } } } pinta-1.3/Pinta/Actions/File/NewDocumentAction.cs0000664000175000017500000000575511747026475023124 0ustar00cameroncameron00000000000000// // NewDocumentAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta.Actions { class NewDocumentAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.New.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.New.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { NewImageDialog dialog = new NewImageDialog (); if (!TryUseClipboardImageSize (dialog)) { dialog.NewImageWidth = PintaCore.Settings.GetSetting ("new-image-width", 800); dialog.NewImageHeight = PintaCore.Settings.GetSetting ("new-image-height", 600); } dialog.WindowPosition = Gtk.WindowPosition.CenterOnParent; int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok) { PintaCore.Workspace.NewDocument (new Gdk.Size (dialog.NewImageWidth, dialog.NewImageHeight), false); PintaCore.Settings.PutSetting ("new-image-width", dialog.NewImageWidth); PintaCore.Settings.PutSetting ("new-image-height", dialog.NewImageHeight); PintaCore.Settings.SaveSettings (); } dialog.Destroy (); } /// /// Sets the dialog to use the clipboard image's dimensions, if possible. /// /// True if an image was on the clipboard, false otherwise. private static bool TryUseClipboardImageSize (NewImageDialog dialog) { bool clipboardUsed = false; Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (cb.WaitIsImageAvailable ()) { Gdk.Pixbuf image = cb.WaitForImage (); if (image != null) { clipboardUsed = true; dialog.NewImageWidth = image.Width; dialog.NewImageHeight = image.Height; image.Dispose (); } } cb.Dispose (); return clipboardUsed; } } } pinta-1.3/Pinta/Actions/File/NewScreenshotAction.cs0000664000175000017500000000560211747026475023452 0ustar00cameroncameron00000000000000// // NewScreenshotAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Mono.Unix; using Gdk; namespace Pinta.Actions { class NewScreenshotAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.NewScreenshot.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.NewScreenshot.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { int delay = PintaCore.Settings.GetSetting ("screenshot-delay", 0); SpinButtonEntryDialog dialog = new SpinButtonEntryDialog (Catalog.GetString ("Take Screenshot"), PintaCore.Chrome.MainWindow, Catalog.GetString ("Delay before taking a screenshot (seconds):"), 0, 300, delay); if (dialog.Run () == (int)Gtk.ResponseType.Ok) { delay = dialog.GetValue (); PintaCore.Settings.PutSetting ("screenshot-delay", delay); PintaCore.Settings.SaveSettings (); GLib.Timeout.Add ((uint)delay * 1000, () => { Screen screen = Screen.Default; Document doc = PintaCore.Workspace.NewDocument (new Size (screen.Width, screen.Height), false); using (Pixbuf pb = Pixbuf.FromDrawable (screen.RootWindow, screen.RootWindow.Colormap, 0, 0, 0, 0, screen.Width, screen.Height)) { using (Cairo.Context g = new Cairo.Context (doc.Layers[0].Surface)) { CairoHelper.SetSourcePixbuf (g, pb, 0, 0); g.Paint (); } } doc.IsDirty = true; if (!PintaCore.Chrome.MainWindow.IsActive) { PintaCore.Chrome.MainWindow.UrgencyHint = true; // Don't flash forever GLib.Timeout.Add (3 * 1000, () => PintaCore.Chrome.MainWindow.UrgencyHint = false); } return false; }); } dialog.Destroy (); } } } pinta-1.3/Pinta/Actions/File/OpenDocumentAction.cs0000664000175000017500000000563411747026475023270 0ustar00cameroncameron00000000000000// // OpenDocumentAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Gtk; using Mono.Unix; namespace Pinta.Actions { class OpenDocumentAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.Open.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.Open.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { var fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Image File"), PintaCore.Chrome.MainWindow, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok); // Add image files filter FileFilter ff = new FileFilter (); foreach (var format in PintaCore.System.ImageFormats.Formats) { foreach (var ext in format.Extensions) { ff.AddPattern (string.Format("*.{0}", ext)); } } ff.Name = Catalog.GetString ("Image files"); fcd.AddFilter (ff); FileFilter ff2 = new FileFilter (); ff2.Name = Catalog.GetString ("All files"); ff2.AddPattern ("*.*"); fcd.AddFilter (ff2); fcd.AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; fcd.SetCurrentFolder (PintaCore.System.GetDialogDirectory ()); fcd.SelectMultiple = true; fcd.AddImagePreview (); int response = fcd.Run (); if (response == (int)Gtk.ResponseType.Ok) { PintaCore.System.LastDialogDirectory = fcd.CurrentFolder; foreach (var file in fcd.Filenames) if (PintaCore.Workspace.OpenFile (file)) RecentManager.Default.AddFull (fcd.Uri, PintaCore.System.RecentData); } fcd.Destroy (); } } } pinta-1.3/Pinta/Actions/File/OpenRecentAction.cs0000664000175000017500000000336511747026475022731 0ustar00cameroncameron00000000000000// // OpenRecentAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Gtk; using Mono.Unix; namespace Pinta.Actions { class OpenRecentAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.OpenRecent.ItemActivated += Activated; } public void Uninitialize () { PintaCore.Actions.File.OpenRecent.ItemActivated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { string fileUri = (sender as RecentAction).CurrentUri; PintaCore.Workspace.OpenFile (new Uri (fileUri).LocalPath); } } } pinta-1.3/Pinta/Actions/File/SaveDocumentAction.cs0000664000175000017500000000320411747026475023254 0ustar00cameroncameron00000000000000// // SaveDocumentAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta.Actions { class SaveDocumentAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.Save.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.Save.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { PintaCore.Workspace.ActiveDocument.Save (false); } } } pinta-1.3/Pinta/Actions/File/SaveDocumentAsAction.cs0000664000175000017500000000321311747026475023540 0ustar00cameroncameron00000000000000// // SaveDocumentAsAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta.Actions { class SaveDocumentAsAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.SaveAs.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.File.SaveAs.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { PintaCore.Workspace.ActiveDocument.Save (true); } } } pinta-1.3/Pinta/Actions/File/SaveDocumentImplementationAction.cs0000664000175000017500000002232111747026475026163 0ustar00cameroncameron00000000000000// // SaveDocumentImplmentationAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Linq; using Gtk; using Mono.Unix; using Pinta.Core; using System.IO; using System.Collections.Generic; namespace Pinta.Actions { class SaveDocumentImplmentationAction : IActionHandler { private const string markup = "{0}\n\n{1}"; #region IActionHandler Members public void Initialize () { PintaCore.Actions.File.SaveDocument += Activated; } public void Uninitialize () { PintaCore.Actions.File.SaveDocument -= Activated; } #endregion private void Activated (object sender, DocumentCancelEventArgs e) { // Prompt for a new filename for "Save As", or a document that hasn't been saved before if (e.SaveAs || !e.Document.HasFile) { e.Cancel = !SaveFileAs (e.Document); } else { // Document hasn't changed, don't re-save it if (!e.Document.IsDirty) return; // If the document already has a filename, just re-save it e.Cancel = !SaveFile (e.Document, null, null); } } // This is actually both for "Save As" and saving a file that never // been saved before. Either way, we need to prompt for a filename. private bool SaveFileAs (Document document) { var fcd = new FileChooserDialog (Mono.Unix.Catalog.GetString ("Save Image File"), PintaCore.Chrome.MainWindow, FileChooserAction.Save, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Save, Gtk.ResponseType.Ok); fcd.DoOverwriteConfirmation = true; fcd.SetCurrentFolder (PintaCore.System.GetDialogDirectory ()); fcd.AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; bool hasFile = document.HasFile; if (hasFile) fcd.SetFilename (document.PathAndFileName); Dictionary filetypes = new Dictionary (); // Add all the formats we support to the save dialog foreach (var format in PintaCore.System.ImageFormats.Formats) { if (!format.IsReadOnly ()) { fcd.AddFilter (format.Filter); filetypes.Add (format.Filter, format); // Set the filter to anything we found // We want to ensure that *something* is selected in the filetype fcd.Filter = format.Filter; } } // If we already have a format, set it to the default. // If not, default to jpeg FormatDescriptor format_desc = null; if (hasFile) format_desc = PintaCore.System.ImageFormats.GetFormatByFile (document.Filename); if (format_desc == null) { format_desc = PintaCore.System.ImageFormats.GetDefaultSaveFormat (); // Gtk doesn't like it if we set the file name to an extension that we don't have // a filter for, so we change the extension to our default extension. if (hasFile) fcd.SetFilename (Path.ChangeExtension (document.PathAndFileName, format_desc.Extensions[0])); } fcd.Filter = format_desc.Filter; fcd.AddNotification("filter", this.OnFilterChanged); // Replace GTK's ConfirmOverwrite with our own, for UI consistency fcd.ConfirmOverwrite += (eventSender, eventArgs) => { if (this.ConfirmOverwrite (fcd, fcd.Filename)) eventArgs.RetVal = FileChooserConfirmation.AcceptFilename; else eventArgs.RetVal = FileChooserConfirmation.SelectAgain; }; while (fcd.Run () == (int)Gtk.ResponseType.Ok) { FormatDescriptor format = filetypes[fcd.Filter]; string file = fcd.Filename; if (string.IsNullOrEmpty (Path.GetExtension (file))) { // No extension; add one from the format descriptor. file = string.Format ("{0}.{1}", file, format.Extensions[0]); fcd.CurrentName = Path.GetFileName (file); // We also need to display an overwrite confirmation message manually, // because MessageDialog won't do this for us in this case. if (File.Exists (file) && !ConfirmOverwrite (fcd, file)) continue; } // Always follow the extension rather than the file type drop down // ie: if the user chooses to save a "jpeg" as "foo.png", we are going // to assume they just didn't update the dropdown and really want png var format_type = PintaCore.System.ImageFormats.GetFormatByFile (file); if (format_type != null) format = format_type; PintaCore.System.LastDialogDirectory = fcd.CurrentFolder; SaveFile (document, file, format); RecentManager.Default.AddFull (fcd.Uri, PintaCore.System.RecentData); PintaCore.System.ImageFormats.SetDefaultFormat (Path.GetExtension (file)); document.HasFile = true; document.PathAndFileName = file; fcd.Destroy (); return true; } fcd.Destroy (); return false; } private bool SaveFile (Document document, string file, FormatDescriptor format) { if (string.IsNullOrEmpty (file)) file = document.PathAndFileName; if (format == null) format = PintaCore.System.ImageFormats.GetFormatByFile (file); if (format == null || format.IsReadOnly ()) { MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Catalog.GetString ("Pinta does not support saving images in this file format."), file); md.Title = Catalog.GetString ("Error"); md.Run (); md.Destroy (); return false; } // If the user tries to save over a read only file, give a more informative error message than "Unhandled Exception" FileInfo file_info = new FileInfo (file); if (file_info.Exists && file_info.IsReadOnly) { MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Catalog.GetString ("Cannot save read only file.")); md.Title = Catalog.GetString ("Error"); md.Run (); md.Destroy (); return false; } // Commit any pending changes PintaCore.Tools.Commit (); try { format.Exporter.Export (document, file); } catch (GLib.GException e) { // Errors from GDK if (e.Message == "Image too large to be saved as ICO") { string primary = Catalog.GetString ("Image too large"); string secondary = Catalog.GetString ("ICO files can not be larger than 255 x 255 pixels."); string message = string.Format (markup, primary, secondary); MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, message); md.Run (); md.Destroy (); return false; } else { throw e; // Only catch exceptions we know the reason for } } document.Filename = Path.GetFileName (file); document.IsDirty = false; return true; } private bool ConfirmOverwrite (FileChooserDialog fcd, string file) { string primary = Catalog.GetString ("A file named \"{0}\" already exists. Do you want to replace it?"); string secondary = Catalog.GetString ("The file already exists in \"{1}\". Replacing it will overwrite its contents."); string message = string.Format (markup, primary, secondary); MessageDialog md = new MessageDialog (fcd, DialogFlags.Modal | DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.None, true, message, System.IO.Path.GetFileName (file), fcd.CurrentFolder); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Ok); md.DefaultResponse = ResponseType.Cancel; md.AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; int response = md.Run (); md.Destroy (); return response == (int)ResponseType.Ok; } private void OnFilterChanged (object o, GLib.NotifyArgs args) { FileChooserDialog fcd = (FileChooserDialog)o; // Ensure that the file filter is never blank. if (fcd.Filter == null) { fcd.Filter = PintaCore.System.ImageFormats.GetDefaultSaveFormat ().Filter; return; } // find the FormatDescriptor FormatDescriptor format_desc = PintaCore.System.ImageFormats.Formats.Single (f => f.Filter == fcd.Filter); // adjust the filename var p = fcd.Filename; p = Path.ChangeExtension (Path.GetFileName (p), format_desc.Extensions[0]); fcd.CurrentName = p; } } } pinta-1.3/Pinta/Actions/Help/0000775000175000017500000000000011747026475017204 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Help/AboutDialogAction.cs0000664000175000017500000000335611747026475023072 0ustar00cameroncameron00000000000000// // AboutDialogAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; using Mono.Addins.Gui; namespace Pinta.Actions { class AboutDialogAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Help.About.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Help.About.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { AboutDialog dlg = new AboutDialog (); try { dlg.Run (); } finally { dlg.Destroy (); } } } } pinta-1.3/Pinta/Actions/IActionHandler.cs0000664000175000017500000000030411747026475021464 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pinta.Actions { interface IActionHandler { void Initialize (); void Uninitialize (); } } pinta-1.3/Pinta/Actions/Image/0000775000175000017500000000000011747026475017336 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Image/ResizeCanvasAction.cs0000664000175000017500000000356511747026475023431 0ustar00cameroncameron00000000000000// // ResizeCanvasAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class ResizeCanvasAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Image.CanvasSize.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Image.CanvasSize.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { ResizeCanvasDialog dialog = new ResizeCanvasDialog (); dialog.WindowPosition = Gtk.WindowPosition.CenterOnParent; int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok) dialog.SaveChanges (); dialog.Destroy (); } } } pinta-1.3/Pinta/Actions/Image/ResizeImageAction.cs0000664000175000017500000000355111747026475023233 0ustar00cameroncameron00000000000000// // ResizeImageAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class ResizeImageAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Image.Resize.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Image.Resize.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { ResizeImageDialog dialog = new ResizeImageDialog (); dialog.WindowPosition = Gtk.WindowPosition.CenterOnParent; int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok) dialog.SaveChanges (); dialog.Destroy (); } } } pinta-1.3/Pinta/Actions/Layers/0000775000175000017500000000000011747026475017553 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Layers/LayerPropertiesAction.cs0000664000175000017500000000626411747026475024401 0ustar00cameroncameron00000000000000// // LayerPropertiesAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class LayerPropertiesAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Layers.Properties.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Layers.Properties.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { var dialog = new LayerPropertiesDialog (); int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok && dialog.AreLayerPropertiesUpdated) { var historyMessage = GetLayerPropertyUpdateMessage ( dialog.InitialLayerProperties, dialog.UpdatedLayerProperties); var historyItem = new UpdateLayerPropertiesHistoryItem ( "Menu.Layers.LayerProperties.png", historyMessage, PintaCore.Layers.CurrentLayerIndex, dialog.InitialLayerProperties, dialog.UpdatedLayerProperties); PintaCore.Workspace.ActiveWorkspace.History.PushNewItem (historyItem); PintaCore.Workspace.ActiveWorkspace.Invalidate (); } else { var layer = PintaCore.Workspace.ActiveDocument.CurrentLayer; var initial = dialog.InitialLayerProperties; initial.SetProperties (layer); if (layer.Opacity != initial.Opacity) PintaCore.Workspace.ActiveWorkspace.Invalidate (); } dialog.Destroy (); } private string GetLayerPropertyUpdateMessage (LayerProperties initial, LayerProperties updated) { string ret = null; int count = 0; if (updated.Opacity != initial.Opacity) { ret = Catalog.GetString ("Layer Opacity"); count++; } if (updated.Name != initial.Name) { ret = Catalog.GetString ("Rename Layer"); count++; } if (updated.Hidden != initial.Hidden) { ret = (updated.Hidden) ? Catalog.GetString ("Hide Layer") : Catalog.GetString ("Show Layer"); count++; } if (ret == null || count > 1) ret = Catalog.GetString ("Layer Properties"); return ret; } } } pinta-1.3/Pinta/Actions/Layers/RotateZoomLayerAction.cs0000664000175000017500000000532511747026475024345 0ustar00cameroncameron00000000000000// // RotateZoomLayerAction.cs // // Author: // Cameron White // // Copyright (c) 2012 Cameron White // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Pinta.Gui.Widgets; using Mono.Unix; namespace Pinta.Actions { public class RotateZoomLayerAction : IActionHandler { public void Initialize () { PintaCore.Actions.Layers.RotateZoom.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Layers.RotateZoom.Activated -= Activated; } private void Activated (object sender, EventArgs e) { // TODO - allow the layer to be zoomed in or out // TODO - show a live preview of the rotation var rotateZoomData = new RotateZoomData (); var dialog = new SimpleEffectDialog (Catalog.GetString ("Rotate / Zoom Layer"), PintaCore.Resources.GetIcon ("Menu.Layers.RotateZoom.png"), rotateZoomData); int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok && !rotateZoomData.IsDefault) { DoRotate (rotateZoomData); } dialog.Destroy (); } private void DoRotate (RotateZoomData rotateZoomData) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); var oldSurface = doc.CurrentLayer.Surface.Clone (); doc.CurrentLayer.Rotate (rotateZoomData.Angle); doc.Workspace.Invalidate (); var historyItem = new SimpleHistoryItem ("Menu.Layers.RotateZoom.png", Catalog.GetString ("Rotate / Zoom Layer"), oldSurface, doc.CurrentLayerIndex); doc.History.PushNewItem (historyItem); } private class RotateZoomData : EffectData { public double Angle = 0; public override bool IsDefault { get { return Angle == 0; } } } } } pinta-1.3/Pinta/Actions/View/0000775000175000017500000000000011747026475017226 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/View/ToolBarToggledAction.cs0000664000175000017500000000325211747026475023565 0ustar00cameroncameron00000000000000// // ToolBarToggledAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Gtk; namespace Pinta.Actions { class ToolBarToggledAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.View.ToolBar.Toggled += Activated; } public void Uninitialize () { PintaCore.Actions.View.ToolBar.Toggled -= Activated; } #endregion private void Activated (object sender, EventArgs e) { PintaCore.Chrome.MainToolBar.Visible = ((ToggleAction)sender).Active; } } } pinta-1.3/Pinta/Actions/Window/0000775000175000017500000000000011747026475017563 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Actions/Window/CloseAllDocumentsAction.cs0000664000175000017500000000366411747026475024641 0ustar00cameroncameron00000000000000// // CloseAllDocumentsAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta.Actions { class CloseAllDocumentsAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Window.CloseAll.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Window.CloseAll.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { while (PintaCore.Workspace.HasOpenDocuments) { int count = PintaCore.Workspace.OpenDocuments.Count; PintaCore.Actions.File.Close.Activate (); // If we still have the same number of open documents, // the user cancelled on a Save prompt. if (count == PintaCore.Workspace.OpenDocuments.Count) return; } } } } pinta-1.3/Pinta/Actions/Window/SaveAllDocumentsAction.cs0000664000175000017500000000355511747026475024471 0ustar00cameroncameron00000000000000// // SaveAllDocumentsAction.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta.Actions { class SaveAllDocumentsAction : IActionHandler { #region IActionHandler Members public void Initialize () { PintaCore.Actions.Window.SaveAll.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Window.SaveAll.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { foreach (Document doc in PintaCore.Workspace.OpenDocuments) { if (!doc.IsDirty && doc.HasFile) continue; PintaCore.Workspace.SetActiveDocument (doc); // Loop through all of these until we get a cancel if (!doc.Save (false)) break; } } } } pinta-1.3/Pinta/DialogHandlers.cs0000664000175000017500000001560511747026475020132 0ustar00cameroncameron00000000000000// // FileActionHandler.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Pinta.Actions; using Pinta.Core; namespace Pinta { public class ActionHandlers { private List action_handlers = new List (); public ActionHandlers () { // File action_handlers.Add (new NewDocumentAction ()); action_handlers.Add (new NewScreenshotAction ()); action_handlers.Add (new OpenDocumentAction ()); action_handlers.Add (new OpenRecentAction ()); action_handlers.Add (new SaveDocumentAction ()); action_handlers.Add (new SaveDocumentAsAction ()); action_handlers.Add (new CloseDocumentAction ()); action_handlers.Add (new ExitProgramAction ()); action_handlers.Add (new ModifyCompressionAction ()); action_handlers.Add (new SaveDocumentImplmentationAction ()); // Edit action_handlers.Add (new PasteAction ()); action_handlers.Add (new PasteIntoNewLayerAction ()); action_handlers.Add (new PasteIntoNewImageAction ()); action_handlers.Add (new ResizePaletteAction ()); action_handlers.Add (new AddinManagerAction ()); // Image action_handlers.Add (new ResizeImageAction ()); action_handlers.Add (new ResizeCanvasAction ()); // Layers action_handlers.Add (new LayerPropertiesAction ()); action_handlers.Add (new RotateZoomLayerAction ()); // View action_handlers.Add (new ToolBarToggledAction ()); // Window action_handlers.Add (new CloseAllDocumentsAction ()); action_handlers.Add (new SaveAllDocumentsAction ()); // Help action_handlers.Add (new AboutDialogAction ()); // Initialize each action handler foreach (var action in action_handlers) action.Initialize (); // We need to toggle actions active/inactive // when there isn't an open document PintaCore.Workspace.DocumentCreated += Workspace_DocumentCreated; PintaCore.Workspace.DocumentClosed += Workspace_DocumentClosed; } private void Workspace_DocumentClosed (object sender, DocumentEventArgs e) { PintaCore.Actions.Window.RemoveDocument (e.Document); if (!PintaCore.Workspace.HasOpenDocuments) { PintaCore.Actions.File.Close.Sensitive = false; PintaCore.Actions.File.Save.Sensitive = false; PintaCore.Actions.File.SaveAs.Sensitive = false; PintaCore.Actions.Edit.Copy.Sensitive = false; PintaCore.Actions.Edit.Cut.Sensitive = false; PintaCore.Actions.Edit.Paste.Sensitive = false; PintaCore.Actions.Edit.PasteIntoNewLayer.Sensitive = false; PintaCore.Actions.Edit.SelectAll.Sensitive = false; PintaCore.Actions.View.ActualSize.Sensitive = false; PintaCore.Actions.View.ZoomIn.Sensitive = false; PintaCore.Actions.View.ZoomOut.Sensitive = false; PintaCore.Actions.View.ZoomToSelection.Sensitive = false; PintaCore.Actions.View.ZoomToWindow.Sensitive = false; PintaCore.Actions.View.ZoomComboBox.Sensitive = false; PintaCore.Actions.Image.CropToSelection.Sensitive = false; PintaCore.Actions.Image.AutoCrop.Sensitive = false; PintaCore.Actions.Image.CanvasSize.Sensitive = false; PintaCore.Actions.Image.Resize.Sensitive = false; PintaCore.Actions.Image.FlipHorizontal.Sensitive = false; PintaCore.Actions.Image.FlipVertical.Sensitive = false; PintaCore.Actions.Image.Rotate180.Sensitive = false; PintaCore.Actions.Image.RotateCCW.Sensitive = false; PintaCore.Actions.Image.RotateCW.Sensitive = false; PintaCore.Actions.Layers.AddNewLayer.Sensitive = false; PintaCore.Actions.Layers.DuplicateLayer.Sensitive = false; PintaCore.Actions.Layers.FlipHorizontal.Sensitive = false; PintaCore.Actions.Layers.FlipVertical.Sensitive = false; PintaCore.Actions.Layers.ImportFromFile.Sensitive = false; PintaCore.Actions.Layers.Properties.Sensitive = false; PintaCore.Actions.Layers.RotateZoom.Sensitive = false; PintaCore.Actions.Adjustments.ToggleActionsSensitive (false); PintaCore.Actions.Effects.ToggleActionsSensitive (false); } } private void Workspace_DocumentCreated (object sender, DocumentEventArgs e) { PintaCore.Actions.Window.AddDocument (e.Document); PintaCore.Actions.File.Close.Sensitive = true; PintaCore.Actions.File.Save.Sensitive = true; PintaCore.Actions.File.SaveAs.Sensitive = true; PintaCore.Actions.Edit.Copy.Sensitive = true; PintaCore.Actions.Edit.Cut.Sensitive = true; PintaCore.Actions.Edit.Paste.Sensitive = true; PintaCore.Actions.Edit.PasteIntoNewLayer.Sensitive = true; PintaCore.Actions.Edit.SelectAll.Sensitive = true; PintaCore.Actions.View.ActualSize.Sensitive = true; PintaCore.Actions.View.ZoomIn.Sensitive = true; PintaCore.Actions.View.ZoomOut.Sensitive = true; PintaCore.Actions.View.ZoomToSelection.Sensitive = true; PintaCore.Actions.View.ZoomToWindow.Sensitive = true; PintaCore.Actions.View.ZoomComboBox.Sensitive = true; PintaCore.Actions.Image.AutoCrop.Sensitive = true; PintaCore.Actions.Image.CanvasSize.Sensitive = true; PintaCore.Actions.Image.Resize.Sensitive = true; PintaCore.Actions.Image.FlipHorizontal.Sensitive = true; PintaCore.Actions.Image.FlipVertical.Sensitive = true; PintaCore.Actions.Image.Rotate180.Sensitive = true; PintaCore.Actions.Image.RotateCCW.Sensitive = true; PintaCore.Actions.Image.RotateCW.Sensitive = true; PintaCore.Actions.Layers.AddNewLayer.Sensitive = true; PintaCore.Actions.Layers.DuplicateLayer.Sensitive = true; PintaCore.Actions.Layers.FlipHorizontal.Sensitive = true; PintaCore.Actions.Layers.FlipVertical.Sensitive = true; PintaCore.Actions.Layers.ImportFromFile.Sensitive = true; PintaCore.Actions.Layers.Properties.Sensitive = true; PintaCore.Actions.Layers.RotateZoom.Sensitive = true; PintaCore.Actions.Adjustments.ToggleActionsSensitive (true); PintaCore.Actions.Effects.ToggleActionsSensitive (true); } } } pinta-1.3/Pinta/Dialogs/0000775000175000017500000000000011747026475016276 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Dialogs/AboutDialog.cs0000664000175000017500000002053611747026475021025 0ustar00cameroncameron00000000000000// AboutDialog.cs // // Author: // Todd Berman // John Luke // Lluis Sanchez Gual // Viktoria Dudka // // Copyright (c) 2004 Todd Berman // Copyright (c) 2004 John Luke // Copyright (C) 2008 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // using System; using System.Text; using Gdk; using Gtk; using GLib; using Pango; using System.IO; using Mono.Unix; using Pinta.Core; namespace Pinta { internal class ScrollBox : DrawingArea { Pixbuf image; Pixbuf image_top; Pixbuf monoPowered; int scroll; Pango.Layout layout; int monoLogoSpacing = 80; int textTop; int scrollPause; int scrollStart; Gdk.GC backGc; internal uint TimerHandle; string[] authors = new string[] { "Cameron White", "Jonathan Pobst", "Robert Nordan" }; string[] oldAuthors = new string[] { "Aaron Bockover", "Adam Doppelt", "Adolfo Jayme Barrientos", "Anirudh Sanjeev", "Cameron White", "Ciprian Mustiata", "Felix Schmutz", "Greg Lowe", "Hanh Pham", "James Gifford", "Jean-Michel Bea", "Joe Hillenbrand", "Jon Rimmer", "Jonathan Pobst", "Juergen Obernolte", "Khairuddin Ni'am", "Krzysztof Marecki", "Maia Kozheva", "Manish Sinha", "Marco Rolappe", "Martin Geier", "Mathias Fussenegger", "Mikhail Makarov", "Obinou Conseil", "Olivier Dufour", "Richard Cohn", "Robert Nordan" }; public ScrollBox () { this.Realized += new EventHandler (OnRealized); this.ModifyBg (Gtk.StateType.Normal, new Gdk.Color (49, 49, 74)); image = PintaCore.Resources.GetIcon ("About.Image.png"); image_top = PintaCore.Resources.GetIcon ("About.ImageTop.png"); monoPowered = PintaCore.Resources.GetIcon ("About.MonoPowered.png"); this.SetSizeRequest (450, image.Height - 1); TimerHandle = GLib.Timeout.Add (50, new TimeoutHandler (ScrollDown)); } string CreditText { get { StringBuilder sb = new StringBuilder (); sb.AppendFormat ("{0}\n\n", Catalog.GetString ("Contributors to this Release")); for (int n = 0; n < authors.Length; n++) { sb.Append (authors[n]); if (n % 2 == 1) sb.Append ("\n"); else if (n < authors.Length - 1) sb.Append (", "); } sb.Append ("\n\n" + Catalog.GetString ("Previous Contributors") + "\n\n"); for (int n = 0; n < oldAuthors.Length; n++) { sb.Append (oldAuthors[n]); if (n % 2 == 1) sb.Append ("\n"); else if (n < oldAuthors.Length - 1) sb.Append (", "); } string trans = Catalog.GetString ("translator-credits"); if (trans != "translator-credits") { sb.AppendFormat ("\n\n{0}\n\n", Catalog.GetString ("Translated by:")); sb.Append (trans); } sb.AppendLine (); sb.AppendLine (); sb.AppendLine (); sb.AppendFormat ("{0}\n", Catalog.GetString ("Based on the work of Paint.NET:")); sb.AppendLine (); sb.Append ("http://www.getpaint.net/"); sb.AppendLine (); sb.AppendLine (); sb.AppendLine (); sb.AppendFormat ("{0}\n", Catalog.GetString ("Using some icons from:")); sb.AppendLine (); sb.AppendLine ("Silk - http://www.famfamfam.com/lab/icons/silk"); sb.Append ("Fugue - http://pinvoke.com/"); return sb.ToString (); } } bool ScrollDown () { //if (scrollPause > 0) { // if (--scrollPause == 0) // ++scroll; //} else ++scroll; int w, h; this.GdkWindow.GetSize (out w, out h); this.QueueDrawArea (0, 0, w, image.Height); return true; } private void DrawImage () { if (image != null) { int w, h; this.GdkWindow.GetSize (out w, out h); this.GdkWindow.DrawPixbuf (backGc, image, 0, 0, (w - image.Width) / 2, 0, -1, -1, RgbDither.Normal, 0, 0); } } private void DrawImageTop () { if (image_top != null) { int w, h; this.GdkWindow.GetSize (out w, out h); this.GdkWindow.DrawPixbuf (backGc, image_top, 0, 0, (w - image.Width) / 2, 0, -1, -1, RgbDither.Normal, 0, 0); } } private void DrawText () { int width, height; GdkWindow.GetSize (out width, out height); int widthPixel, heightPixel; layout.GetPixelSize (out widthPixel, out heightPixel); GdkWindow.DrawLayout (Style.WhiteGC, 0, textTop - scroll, layout); GdkWindow.DrawPixbuf (backGc, monoPowered, 0, 0, (width / 2) - (monoPowered.Width / 2), textTop - scroll + heightPixel + monoLogoSpacing, -1, -1, RgbDither.Normal, 0, 0); heightPixel = heightPixel - 80 + image.Height; if ((scroll == heightPixel) && (scrollPause == 0)) scrollPause = 60; if (scroll > heightPixel + monoLogoSpacing + monoPowered.Height + 250) scroll = scrollStart; } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { int w, h; this.GdkWindow.GetSize (out w, out h); this.DrawImage (); this.DrawText (); this.DrawImageTop (); return false; } protected void OnRealized (object o, EventArgs args) { int x, y; int w, h; GdkWindow.GetOrigin (out x, out y); GdkWindow.GetSize (out w, out h); textTop = y + image.Height - 30; scrollStart = -(image.Height - textTop); scroll = scrollStart; layout = new Pango.Layout (this.PangoContext); // FIXME: this seems wrong but works layout.Width = w * (int)Pango.Scale.PangoScale; layout.Wrap = Pango.WrapMode.Word; layout.Alignment = Pango.Alignment.Center; FontDescription fd = FontDescription.FromString ("Tahoma 10"); layout.FontDescription = fd; layout.SetMarkup (CreditText); backGc = new Gdk.GC (GdkWindow); backGc.RgbBgColor = new Gdk.Color (49, 49, 74); } protected override void OnDestroyed () { base.OnDestroyed (); backGc.Dispose (); } } internal class AboutDialog : Dialog { ScrollBox aboutPictureScrollBox; Pixbuf imageSep; public AboutDialog () : base (string.Empty, PintaCore.Chrome.MainWindow, DialogFlags.Modal) { Title = Catalog.GetString ("About Pinta"); //TransientFor = IdeApp.Workbench.RootWindow; AllowGrow = false; HasSeparator = false; Icon = PintaCore.Resources.GetIcon ("Pinta.png"); VBox.BorderWidth = 0; aboutPictureScrollBox = new ScrollBox (); VBox.PackStart (aboutPictureScrollBox, false, false, 0); imageSep = PintaCore.Resources.GetIcon ("About.ImageSep.png"); VBox.PackStart (new Gtk.Image (imageSep), false, false, 0); Notebook notebook = new Notebook (); notebook.BorderWidth = 6; notebook.AppendPage (new AboutPintaTabPage (), new Label (Title)); notebook.AppendPage (new VersionInformationTabPage (), new Label (Catalog.GetString ("Version Info"))); VBox.PackStart (notebook, true, true, 4); AddButton (Gtk.Stock.Close, (int)ResponseType.Close); ShowAll (); } void ChangeColor (Gtk.Widget w) { w.ModifyBg (Gtk.StateType.Normal, new Gdk.Color (69, 69, 94)); w.ModifyBg (Gtk.StateType.Active, new Gdk.Color (69, 69, 94)); w.ModifyFg (Gtk.StateType.Normal, new Gdk.Color (255, 255, 255)); w.ModifyFg (Gtk.StateType.Active, new Gdk.Color (255, 255, 255)); w.ModifyFg (Gtk.StateType.Prelight, new Gdk.Color (255, 255, 255)); Gtk.Container c = w as Gtk.Container; if (c != null) { foreach (Widget cw in c.Children) ChangeColor (cw); } } public new int Run () { int tmp = base.Run (); GLib.Source.Remove (aboutPictureScrollBox.TimerHandle); return tmp; } } } pinta-1.3/Pinta/Dialogs/AboutPintaTabPage.cs0000664000175000017500000000443211747026475022122 0ustar00cameroncameron00000000000000// AboutPintaTabPage.cs // // Author: // Viktoria Dudka (viktoriad@remobjects.com) // // Copyright (c) 2009 RemObjects Software // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // using System; using Gtk; using Mono.Unix; namespace Pinta { internal class AboutPintaTabPage : VBox { public AboutPintaTabPage () { Label label = new Label (); label.Markup = String.Format ( "{0}\n {1}", Catalog.GetString ("Version"), "1.3"); HBox hBoxVersion = new HBox (); hBoxVersion.PackStart (label, false, false, 5); this.PackStart (hBoxVersion, false, true, 0); label = null; label = new Label (); label.Markup = string.Format ("{0}\n {1}", Catalog.GetString ("License"), Catalog.GetString ("Released under the MIT X11 License.")); HBox hBoxLicense = new HBox (); hBoxLicense.PackStart (label, false, false, 5); this.PackStart (hBoxLicense, false, true, 5); label = null; label = new Label (); label.Markup = string.Format ("{0}\n (c) 2010-2012 {1}", Catalog.GetString ("Copyright"), Catalog.GetString ("by Pinta contributors")); HBox hBoxCopyright = new HBox (); hBoxCopyright.PackStart (label, false, false, 5); this.PackStart (hBoxCopyright, false, true, 5); this.ShowAll (); } } } pinta-1.3/Pinta/Dialogs/ClipboardEmptyDialog.cs0000664000175000017500000000353311747026475022667 0ustar00cameroncameron00000000000000// // ClipboardEmptyDialog.cs // // Author: // Cameron White // // Copyright (c) 2012 Cameron White // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; namespace Pinta.Dialogs { public static class ClipboardEmptyDialog { public static void Show () { var primary = Catalog.GetString ("Image cannot be pasted"); var secondary = Catalog.GetString ("The clipboard does not contain an image."); var markup = "{0}\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (Pinta.Core.PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.None, true, markup); md.AddButton (Stock.Ok, ResponseType.Yes); md.Run (); md.Destroy (); } } } pinta-1.3/Pinta/Dialogs/ErrorDialog.cs0000664000175000017500000001642311747026475021044 0ustar00cameroncameron00000000000000// // ErrorDialog.cs // // Author: // Lluis Sanchez Gual // // Copyright (c) 2010 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Pinta.Core; namespace Pinta { public partial class ErrorDialog : Gtk.Dialog { private HBox hbox1; private Image image884; private VBox vbox3; private Label descriptionLabel; private Expander expander; private ScrolledWindow GtkScrolledWindow; private TextView detailsTextView; private Label expanderLabel; private Button okButton; TextTag tagNoWrap; TextTag tagWrap; public ErrorDialog (Window parent) { this.Build (); TransientFor = parent; descriptionLabel.ModifyBg (StateType.Normal, new Gdk.Color (255,0,0)); tagNoWrap = new TextTag ("nowrap"); tagNoWrap.WrapMode = WrapMode.None; detailsTextView.Buffer.TagTable.Add (tagNoWrap); tagWrap = new TextTag ("wrap"); tagWrap.WrapMode = WrapMode.Word; detailsTextView.Buffer.TagTable.Add (tagWrap); expander.Visible = false; } public string Message { get { return descriptionLabel.Text; } set { string message = value; while (message.EndsWith ("\r") || message.EndsWith ("\n")) message = message.Substring (0, message.Length - 1); if (!message.EndsWith (".")) message += "."; descriptionLabel.Text = message; } } public void AddDetails (string text, bool wrapped) { TextIter it = detailsTextView.Buffer.EndIter; if (wrapped) detailsTextView.Buffer.InsertWithTags (ref it, text, tagWrap); else detailsTextView.Buffer.InsertWithTags (ref it, text, tagNoWrap); expander.Visible = true; } protected virtual void OnExpander1Activated (object sender, System.EventArgs e) { GLib.Timeout.Add (100, new GLib.TimeoutHandler (UpdateSize)); } bool UpdateSize () { int w, h; GetSize (out w, out h); Resize (w, 1); return false; } protected virtual void OnOkButtonClicked (object sender, System.EventArgs e) { Destroy (); } #region Autogenerated protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget MonoDevelop.Ide.Gui.Dialogs.ErrorDialog this.Name = "MonoDevelop.Ide.Gui.Dialogs.ErrorDialog"; this.Title = "Pinta"; this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child MonoDevelop.Ide.Gui.Dialogs.ErrorDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; this.hbox1.BorderWidth = ((uint)(12)); // Container child hbox1.Gtk.Box+BoxChild this.image884 = new global::Gtk.Image (); this.image884.Name = "image884"; this.image884.Yalign = 0f; this.image884.Pixbuf = PintaCore.Resources.GetIcon (Stock.DialogError, 32); this.hbox1.Add (this.image884); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.image884])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.descriptionLabel = new global::Gtk.Label (); this.descriptionLabel.Name = "descriptionLabel"; this.descriptionLabel.Xalign = 0f; this.descriptionLabel.LabelProp = "An exception has been thrown 1 2 3 4 5 6 7 8 9 10 11 12 13 14"; this.descriptionLabel.Wrap = true; this.descriptionLabel.Selectable = true; this.vbox3.Add (this.descriptionLabel); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.descriptionLabel])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.expander = new global::Gtk.Expander (null); this.expander.CanFocus = true; this.expander.Name = "expander"; // Container child expander.Gtk.Container+ContainerChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.HeightRequest = 250; this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.detailsTextView = new global::Gtk.TextView (); this.detailsTextView.CanFocus = true; this.detailsTextView.Name = "detailsTextView"; this.GtkScrolledWindow.Add (this.detailsTextView); this.expander.Add (this.GtkScrolledWindow); this.expanderLabel = new global::Gtk.Label (); this.expanderLabel.Name = "expanderLabel"; this.expanderLabel.LabelProp = "Details"; this.expanderLabel.UseUnderline = true; this.expander.LabelWidget = this.expanderLabel; this.vbox3.Add (this.expander); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.expander])); w6.Position = 1; this.hbox1.Add (this.vbox3); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3])); w7.Position = 1; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w8.Position = 0; // Internal child MonoDevelop.Ide.Gui.Dialogs.ErrorDialog.ActionArea global::Gtk.HButtonBox w9 = this.ActionArea; w9.Name = "dialog1_ActionArea"; w9.Spacing = 10; w9.BorderWidth = ((uint)(5)); w9.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.okButton = new global::Gtk.Button (); this.okButton.CanDefault = true; this.okButton.CanFocus = true; this.okButton.Name = "okButton"; this.okButton.UseStock = true; this.okButton.UseUnderline = true; this.okButton.Label = "gtk-ok"; this.AddActionWidget (this.okButton, -5); global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w9[this.okButton])); w10.Expand = false; w10.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 624; this.DefaultHeight = 142; this.Show (); this.expander.Activated += new global::System.EventHandler (this.OnExpander1Activated); this.okButton.Clicked += new global::System.EventHandler (this.OnOkButtonClicked); } #endregion } } pinta-1.3/Pinta/Dialogs/JpegCompressionDialog.cs0000664000175000017500000000432011747026475023053 0ustar00cameroncameron00000000000000// // JpegCompressionDialog.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using Pinta.Gui.Widgets; namespace Pinta { public class JpegCompressionDialog : Dialog { private HScale compressionLevel; public JpegCompressionDialog (int defaultQuality) : base (Catalog.GetString ("JPEG Quality"), Pinta.Core.PintaCore.Chrome.MainWindow, DialogFlags.Modal | DialogFlags.DestroyWithParent, Stock.Cancel, ResponseType.Cancel, Stock.Ok, ResponseType.Ok) { this.BorderWidth = 6; this.VBox.Spacing = 3; VBox content = new VBox (); content.Spacing = 5; Label label = new Label (Catalog.GetString ("Quality: ")); label.Xalign = 0; content.PackStart (label, false, false, 0); compressionLevel = new HScale (1, 100, 1); compressionLevel.Value = defaultQuality; content.PackStart (compressionLevel, false, false, 0); content.ShowAll (); this.VBox.Add (content); AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; } public int GetCompressionLevel () { return (int) compressionLevel.Value; } } } pinta-1.3/Pinta/Dialogs/LayerPropertiesDialog.cs0000664000175000017500000000737011747026475023105 0ustar00cameroncameron00000000000000// // LayerPropertiesDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta { public partial class LayerPropertiesDialog : Gtk.Dialog { private LayerProperties initial_properties; private double opacity; private bool hidden; private string name; public LayerPropertiesDialog () { this.Build (); this.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.LayerProperties.png"); name = PintaCore.Layers.CurrentLayer.Name; hidden = PintaCore.Layers.CurrentLayer.Hidden; opacity = PintaCore.Layers.CurrentLayer.Opacity; initial_properties = new LayerProperties( name, hidden, opacity); layerNameEntry.Text = initial_properties.Name; visibilityCheckbox.Active = !initial_properties.Hidden; opacitySpinner.Value = (int)(initial_properties.Opacity * 100); opacitySlider.Value = (int)(initial_properties.Opacity * 100); layerNameEntry.Changed += OnLayerNameChanged; visibilityCheckbox.Toggled += OnVisibilityToggled; opacitySpinner.ValueChanged += new EventHandler (OnOpacitySpinnerChanged); opacitySlider.ValueChanged += new EventHandler (OnOpacitySliderChanged); AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; DefaultResponse = Gtk.ResponseType.Ok; layerNameEntry.ActivatesDefault = true; opacitySpinner.ActivatesDefault = true; } public bool AreLayerPropertiesUpdated { get { return initial_properties.Opacity != opacity || initial_properties.Hidden != hidden || initial_properties.Name != name; } } public LayerProperties InitialLayerProperties { get { return initial_properties; } } public LayerProperties UpdatedLayerProperties { get { return new LayerProperties (name, hidden, opacity); } } #region Private Methods private void OnLayerNameChanged (object sender, EventArgs e) { name = layerNameEntry.Text; PintaCore.Layers.CurrentLayer.Name = name; } private void OnVisibilityToggled (object sender, EventArgs e) { hidden = !visibilityCheckbox.Active; PintaCore.Layers.CurrentLayer.Hidden = hidden; } private void OnOpacitySliderChanged (object sender, EventArgs e) { opacitySpinner.Value = opacitySlider.Value; UpdateOpacity (); } private void OnOpacitySpinnerChanged (object sender, EventArgs e) { opacitySlider.Value = opacitySpinner.Value; UpdateOpacity (); } private void UpdateOpacity () { //TODO check redraws are being throttled. opacity = opacitySpinner.Value / 100d; PintaCore.Layers.CurrentLayer.Opacity = opacity; } #endregion } } pinta-1.3/Pinta/Dialogs/NewImageDialog.cs0000664000175000017500000000364711747026475021453 0ustar00cameroncameron00000000000000// // NewImageDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Gtk; namespace Pinta { public partial class NewImageDialog : Gtk.Dialog { public NewImageDialog () : base (string.Empty, PintaCore.Chrome.MainWindow, DialogFlags.Modal) { this.Build (); this.Icon = PintaCore.Resources.GetIcon (Stock.New, 16); DefaultResponse = ResponseType.Ok; AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; widthSpinner.ActivatesDefault = true; heightSpinner.ActivatesDefault = true; } public int NewImageWidth { get { return widthSpinner.ValueAsInt; } set { widthSpinner.Value = value; } } public int NewImageHeight { get { return heightSpinner.ValueAsInt; } set { heightSpinner.Value = value; } } } } pinta-1.3/Pinta/Dialogs/ProgressDialog.cs0000664000175000017500000000423111747026475021551 0ustar00cameroncameron00000000000000// // ProgressDialog.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Debug = System.Diagnostics.Debug; namespace Pinta { public partial class ProgressDialog : Gtk.Dialog, IProgressDialog { uint timeout_id; public ProgressDialog () { this.Build (); timeout_id = 0; Modal = true; Hide (); } public string Text { get { return label.Text; } set { label.Text = value; } } public double Progress { get { return progress_bar.Fraction; } set { progress_bar.Fraction = value; } } public event EventHandler Canceled; void IProgressDialog.Show () { timeout_id = GLib.Timeout.Add (500, () => { this.Show (); timeout_id = 0; return false; }); } void IProgressDialog.Hide () { if (timeout_id != 0) GLib.Source.Remove (timeout_id); this.Hide (); } protected override void OnResponse (Gtk.ResponseType response_id){ Debug.WriteLine ("Cancel dialog repsonse."); if (Canceled != null) Canceled (this, EventArgs.Empty); } } } pinta-1.3/Pinta/Dialogs/ResizeCanvasDialog.cs0000664000175000017500000002511711747026475022350 0ustar00cameroncameron00000000000000// // ResizeCanvasDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta { public partial class ResizeCanvasDialog : Gtk.Dialog { private bool value_changing; private Anchor anchor; public ResizeCanvasDialog () { this.Build (); Icon = PintaCore.Resources.GetIcon ("Menu.Image.CanvasSize.png"); widthSpinner.Value = PintaCore.Workspace.ImageSize.Width; heightSpinner.Value = PintaCore.Workspace.ImageSize.Height; percentageRadio.Toggled += new EventHandler (percentageRadio_Toggled); absoluteRadio.Toggled += new EventHandler (absoluteRadio_Toggled); percentageSpinner.ValueChanged += new EventHandler (percentageSpinner_ValueChanged); widthSpinner.ValueChanged += new EventHandler (widthSpinner_ValueChanged); heightSpinner.ValueChanged += new EventHandler (heightSpinner_ValueChanged); NWButton.Clicked += HandleNWButtonClicked; NButton.Clicked += HandleNButtonClicked; NEButton.Clicked += HandleNEButtonClicked; WButton.Clicked += HandleWButtonClicked; CenterButton.Clicked += HandleCenterButtonClicked; EButton.Clicked += HandleEButtonClicked; SWButton.Clicked += HandleSWButtonClicked; SButton.Clicked += HandleSButtonClicked; SEButton.Clicked += HandleSEButtonClicked; SetAnchor (Anchor.Center); AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; DefaultResponse = Gtk.ResponseType.Ok; widthSpinner.ActivatesDefault = true; heightSpinner.ActivatesDefault = true; percentageSpinner.ActivatesDefault = true; } #region Public Methods public void SaveChanges () { PintaCore.Workspace.ResizeCanvas (widthSpinner.ValueAsInt, heightSpinner.ValueAsInt, anchor); } #endregion #region Private Methods private void heightSpinner_ValueChanged (object sender, EventArgs e) { if (value_changing) return; if (aspectCheckbox.Active) { value_changing = true; widthSpinner.Value = (int)((heightSpinner.Value * PintaCore.Workspace.ImageSize.Width) / PintaCore.Workspace.ImageSize.Height); value_changing = false; } } private void widthSpinner_ValueChanged (object sender, EventArgs e) { if (value_changing) return; if (aspectCheckbox.Active) { value_changing = true; heightSpinner.Value = (int)((widthSpinner.Value * PintaCore.Workspace.ImageSize.Height) / PintaCore.Workspace.ImageSize.Width); value_changing = false; } } private void percentageSpinner_ValueChanged (object sender, EventArgs e) { widthSpinner.Value = (int)(PintaCore.Workspace.ImageSize.Width * (percentageSpinner.ValueAsInt / 100f)); heightSpinner.Value = (int)(PintaCore.Workspace.ImageSize.Height * (percentageSpinner.ValueAsInt / 100f)); } private void absoluteRadio_Toggled (object sender, EventArgs e) { RadioToggle (); } private void percentageRadio_Toggled (object sender, EventArgs e) { RadioToggle (); } private void RadioToggle () { if (percentageRadio.Active) { percentageSpinner.Sensitive = true; widthSpinner.Sensitive = false; heightSpinner.Sensitive = false; aspectCheckbox.Sensitive = false; } else { percentageSpinner.Sensitive = false; widthSpinner.Sensitive = true; heightSpinner.Sensitive = true; aspectCheckbox.Sensitive = true; } } private void HandleSEButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.SE); } private void HandleSButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.S); } private void HandleSWButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.SW); } private void HandleEButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.E); } private void HandleCenterButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.Center); } private void HandleWButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.W); } private void HandleNEButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.NE); } private void HandleNButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.N); } private void HandleNWButtonClicked (object sender, EventArgs e) { SetAnchor (Anchor.NW); } private void SetAnchor (Anchor anchor) { this.anchor = anchor; NWButton.Image = null; NButton.Image = null; NEButton.Image = null; WButton.Image = null; EButton.Image = null; CenterButton.Image = null; SWButton.Image = null; SButton.Image = null; SEButton.Image = null; switch (anchor) { case Anchor.NW: NWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthEast.png")); break; case Anchor.N: NWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); NEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthWest.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthEast.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); break; case Anchor.NE: NEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthWest.png")); break; case Anchor.W: NWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthEast.png")); SWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthEast.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); break; case Anchor.Center: NWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthWest.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); NEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthEast.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); SWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthWest.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); SEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthEast.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); break; case Anchor.E: NEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); NButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthWest.png")); SEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.DownArrow.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.SouthWest.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); break; case Anchor.SW: SWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthEast.png")); break; case Anchor.S: SWButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); SEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.RightArrow.png")); WButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthWest.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthEast.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); break; case Anchor.SE: SEButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png")); SButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.LeftArrow.png")); EButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.UpArrow.png")); CenterButton.Image = new Gtk.Image (PintaCore.Resources.GetIcon ("ResizeCanvas.NorthWest.png")); break; } } #endregion } } pinta-1.3/Pinta/Dialogs/ResizeImageDialog.cs0000664000175000017500000000771211747026475022160 0ustar00cameroncameron00000000000000// // ResizeImageDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; namespace Pinta { public partial class ResizeImageDialog : Gtk.Dialog { private bool value_changing; public ResizeImageDialog () { this.Build (); Icon = PintaCore.Resources.GetIcon ("Menu.Image.Resize.png"); widthSpinner.Value = PintaCore.Workspace.ImageSize.Width; heightSpinner.Value = PintaCore.Workspace.ImageSize.Height; percentageRadio.Toggled += new EventHandler (percentageRadio_Toggled); absoluteRadio.Toggled += new EventHandler (absoluteRadio_Toggled); percentageSpinner.ValueChanged += new EventHandler (percentageSpinner_ValueChanged); widthSpinner.ValueChanged += new EventHandler (widthSpinner_ValueChanged); heightSpinner.ValueChanged += new EventHandler (heightSpinner_ValueChanged); AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; DefaultResponse = Gtk.ResponseType.Ok; widthSpinner.ActivatesDefault = true; heightSpinner.ActivatesDefault = true; percentageSpinner.ActivatesDefault = true; } #region Public Methods public void SaveChanges () { PintaCore.Workspace.ResizeImage (widthSpinner.ValueAsInt, heightSpinner.ValueAsInt); } #endregion #region Private Methods private void heightSpinner_ValueChanged (object sender, EventArgs e) { if (value_changing) return; if (aspectCheckbox.Active) { value_changing = true; widthSpinner.Value = (int)((heightSpinner.Value * PintaCore.Workspace.ImageSize.Width) / PintaCore.Workspace.ImageSize.Height); value_changing = false; } } private void widthSpinner_ValueChanged (object sender, EventArgs e) { if (value_changing) return; if (aspectCheckbox.Active) { value_changing = true; heightSpinner.Value = (int)((widthSpinner.Value * PintaCore.Workspace.ImageSize.Height) / PintaCore.Workspace.ImageSize.Width); value_changing = false; } } private void percentageSpinner_ValueChanged (object sender, EventArgs e) { widthSpinner.Value = (int)(PintaCore.Workspace.ImageSize.Width * (percentageSpinner.ValueAsInt / 100f)); heightSpinner.Value = (int)(PintaCore.Workspace.ImageSize.Height * (percentageSpinner.ValueAsInt / 100f)); } private void absoluteRadio_Toggled (object sender, EventArgs e) { RadioToggle (); } private void percentageRadio_Toggled (object sender, EventArgs e) { RadioToggle (); } private void RadioToggle () { if (percentageRadio.Active) { percentageSpinner.Sensitive = true; widthSpinner.Sensitive = false; heightSpinner.Sensitive = false; aspectCheckbox.Sensitive = false; } else { percentageSpinner.Sensitive = false; widthSpinner.Sensitive = true; heightSpinner.Sensitive = true; aspectCheckbox.Sensitive = true; } } #endregion } } pinta-1.3/Pinta/Dialogs/SpinButtonEntryDialog.cs0000664000175000017500000000412411747026475023075 0ustar00cameroncameron00000000000000// // SpinButtonEntryDialog.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; namespace Pinta { public class SpinButtonEntryDialog: Dialog { private SpinButton spinButton; public SpinButtonEntryDialog (string title, Window parent, string label, int min, int max, int current) : base (title, parent, DialogFlags.Modal, Stock.Cancel, ResponseType.Cancel, Stock.Ok, ResponseType.Ok) { BorderWidth = 6; VBox.Spacing = 3; HBox hbox = new HBox (); hbox.Spacing = 6; Label lbl = new Label (label); lbl.Xalign = 0; hbox.PackStart (lbl); spinButton = new SpinButton (min, max, 1); spinButton.Value = current; hbox.PackStart (spinButton); hbox.ShowAll (); VBox.Add (hbox); AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; DefaultResponse = ResponseType.Ok; spinButton.ActivatesDefault = true; } public int GetValue () { return spinButton.ValueAsInt; } } } pinta-1.3/Pinta/Dialogs/VersionInformationTabPage.cs0000664000175000017500000000603011747026475023703 0ustar00cameroncameron00000000000000// VersionInformationTabPage.cs // // Author: // Viktoria Dudka (viktoriad@remobjects.com) // // Copyright (c) 2009 RemObjects Software // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // using System; using Gtk; using System.Reflection; using Mono.Unix; namespace Pinta { internal class VersionInformationTabPage : VBox { private ListStore data = null; private CellRenderer cellRenderer = new CellRendererText (); public VersionInformationTabPage () { TreeView treeView = new TreeView (); TreeViewColumn treeViewColumnTitle = new TreeViewColumn (Catalog.GetString ("Title"), cellRenderer, "text", 0); treeViewColumnTitle.FixedWidth = 200; treeViewColumnTitle.Sizing = TreeViewColumnSizing.Fixed; treeViewColumnTitle.Resizable = true; treeView.AppendColumn (treeViewColumnTitle); TreeViewColumn treeViewColumnVersion = new TreeViewColumn (Catalog.GetString ("Version"), cellRenderer, "text", 1); treeView.AppendColumn (treeViewColumnVersion); TreeViewColumn treeViewColumnPath = new TreeViewColumn (Catalog.GetString ("Path"), cellRenderer, "text", 2); treeView.AppendColumn (treeViewColumnPath); treeView.RulesHint = true; data = new ListStore (typeof (string), typeof (string), typeof (string)); treeView.Model = data; ScrolledWindow scrolledWindow = new ScrolledWindow (); scrolledWindow.Add (treeView); scrolledWindow.ShadowType = ShadowType.In; BorderWidth = 6; PackStart (scrolledWindow, true, true, 0); foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies ()) { try { AssemblyName assemblyName = assembly.GetName (); data.AppendValues (assemblyName.Name, assemblyName.Version.ToString (), System.IO.Path.GetFullPath (assembly.Location)); } catch { } } data.SetSortColumnId (0, SortType.Ascending); } protected override void OnDestroyed () { if (cellRenderer != null) { cellRenderer.Destroy (); cellRenderer = null; } if (data != null) { data.Dispose (); data = null; } base.OnDestroyed (); } } } pinta-1.3/Pinta/DockLibrary/0000775000175000017500000000000011747026475017121 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/DockLibrary/AutoHideBox.cs0000664000175000017500000002504311747026475021627 0ustar00cameroncameron00000000000000// // AutoHideBox.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gtk; using Gdk; namespace MonoDevelop.Components.Docking { class AutoHideBox: DockFrameTopLevel { static Gdk.Cursor resizeCursorW = new Gdk.Cursor (Gdk.CursorType.SbHDoubleArrow); static Gdk.Cursor resizeCursorH = new Gdk.Cursor (Gdk.CursorType.SbVDoubleArrow); bool resizing; int resizePos; int origSize; int origPos; bool horiz; bool startPos; DockFrame frame; bool animating; int targetSize; int targetPos; ScrollableContainer scrollable; Gtk.PositionType position; bool disposed; bool insideGrip; const int gripSize = 8; public AutoHideBox (DockFrame frame, DockItem item, Gtk.PositionType pos, int size) { this.position = pos; this.frame = frame; this.targetSize = size; horiz = pos == PositionType.Left || pos == PositionType.Right; startPos = pos == PositionType.Top || pos == PositionType.Left; Events = Events | Gdk.EventMask.EnterNotifyMask | Gdk.EventMask.LeaveNotifyMask; Box fr; CustomFrame cframe = new CustomFrame (); switch (pos) { case PositionType.Left: cframe.SetMargins (1, 1, 0, 1); break; case PositionType.Right: cframe.SetMargins (1, 1, 1, 0); break; case PositionType.Top: cframe.SetMargins (0, 1, 1, 1); break; case PositionType.Bottom: cframe.SetMargins (1, 0, 1, 1); break; } EventBox sepBox = new EventBox (); cframe.Add (sepBox); if (horiz) { fr = new HBox (); sepBox.Realized += delegate { sepBox.GdkWindow.Cursor = resizeCursorW; }; sepBox.WidthRequest = gripSize; } else { fr = new VBox (); sepBox.Realized += delegate { sepBox.GdkWindow.Cursor = resizeCursorH; }; sepBox.HeightRequest = gripSize; } sepBox.Events = EventMask.AllEventsMask; if (pos == PositionType.Left || pos == PositionType.Top) fr.PackEnd (cframe, false, false, 0); else fr.PackStart (cframe, false, false, 0); Add (fr); ShowAll (); Hide (); scrollable = new ScrollableContainer (); scrollable.ScrollMode = false; scrollable.Show (); item.Widget.Show (); scrollable.Add (item.Widget); fr.PackStart (scrollable, true, true, 0); sepBox.ButtonPressEvent += OnSizeButtonPress; sepBox.ButtonReleaseEvent += OnSizeButtonRelease; sepBox.MotionNotifyEvent += OnSizeMotion; sepBox.ExposeEvent += OnGripExpose; sepBox.EnterNotifyEvent += delegate { insideGrip = true; sepBox.QueueDraw (); }; sepBox.LeaveNotifyEvent += delegate { insideGrip = false; sepBox.QueueDraw (); }; } public bool Disposed { get { return disposed; } set { disposed = value; } } public void AnimateShow () { animating = true; scrollable.ScrollMode = true; scrollable.SetSize (position, targetSize); switch (position) { case PositionType.Left: WidthRequest = 0; break; case PositionType.Right: targetPos = X = X + WidthRequest; WidthRequest = 0; break; case PositionType.Top: HeightRequest = 0; break; case PositionType.Bottom: targetPos = Y = Y + HeightRequest; HeightRequest = 0; break; } Show (); GLib.Timeout.Add (10, RunAnimateShow); } protected override void OnShown () { base.OnShown (); } public void AnimateHide () { animating = true; scrollable.ScrollMode = true; scrollable.SetSize (position, targetSize); GLib.Timeout.Add (10, RunAnimateHide); } bool RunAnimateShow () { if (!animating) return false; switch (position) { case PositionType.Left: WidthRequest += 1 + (targetSize - WidthRequest) / 3; if (WidthRequest < targetSize) return true; break; case PositionType.Right: WidthRequest += 1 + (targetSize - WidthRequest) / 3; X = targetPos - WidthRequest; if (WidthRequest < targetSize) return true; break; case PositionType.Top: HeightRequest += 1 + (targetSize - HeightRequest) / 3; if (HeightRequest < targetSize) return true; break; case PositionType.Bottom: HeightRequest += 1 + (targetSize - HeightRequest) / 3; Y = targetPos - HeightRequest; if (HeightRequest < targetSize) return true; break; } scrollable.ScrollMode = false; if (horiz) WidthRequest = targetSize; else HeightRequest = targetSize; animating = false; return false; } bool RunAnimateHide () { if (!animating) return false; switch (position) { case PositionType.Left: { int ns = WidthRequest - 1 - WidthRequest / 3; if (ns > 0) { WidthRequest = ns; return true; } break; } case PositionType.Right: { int ns = WidthRequest - 1 - WidthRequest / 3; if (ns > 0) { WidthRequest = ns; X = targetPos - ns; return true; } break; } case PositionType.Top: { int ns = HeightRequest - 1 - HeightRequest / 3; if (ns > 0) { HeightRequest = ns; return true; } break; } case PositionType.Bottom: { int ns = HeightRequest - 1 - HeightRequest / 3; if (ns > 0) { HeightRequest = ns; Y = targetPos - ns; return true; } break; } } Hide (); animating = false; return false; } protected override void OnHidden () { base.OnHidden (); animating = false; } public int Size { get { return horiz ? WidthRequest : HeightRequest; } } void OnSizeButtonPress (object ob, Gtk.ButtonPressEventArgs args) { if (args.Event.Button == 1 && !animating) { int n; if (horiz) { Toplevel.GetPointer (out resizePos, out n); origSize = WidthRequest; if (!startPos) { origPos = X + origSize; } } else { Toplevel.GetPointer (out n, out resizePos); origSize = HeightRequest; if (!startPos) { origPos = Y + origSize; } } resizing = true; } } void OnSizeButtonRelease (object ob, Gtk.ButtonReleaseEventArgs args) { resizing = false; } void OnSizeMotion (object ob, Gtk.MotionNotifyEventArgs args) { if (resizing) { int newPos, n; if (horiz) { Toplevel.GetPointer (out newPos, out n); int diff = startPos ? (newPos - resizePos) : (resizePos - newPos); int newSize = origSize + diff; if (newSize < Child.SizeRequest ().Width) newSize = Child.SizeRequest ().Width; if (!startPos) { X = origPos - newSize; } WidthRequest = newSize; } else { Toplevel.GetPointer (out n, out newPos); int diff = startPos ? (newPos - resizePos) : (resizePos - newPos); int newSize = origSize + diff; if (newSize < Child.SizeRequest ().Height) newSize = Child.SizeRequest ().Height; if (!startPos) { Y = origPos - newSize; } HeightRequest = newSize; } frame.QueueResize (); } } void OnGripExpose (object ob, Gtk.ExposeEventArgs args) { EventBox w = (EventBox) ob; Gdk.Rectangle handleRect = w.Allocation; // w.GdkWindow.DrawRectangle (w.Style.DarkGC (StateType.Normal), true, handleRect); handleRect.X = handleRect.Y = 0; /* switch (position) { case PositionType.Top: handleRect.Height -= 4; handleRect.Y += 1; Gtk.Style.PaintHline (w.Style, w.GdkWindow, StateType.Normal, args.Event.Area, w, "", 0, w.Allocation.Width, gripSize - 2); break; case PositionType.Bottom: handleRect.Height -= 4; handleRect.Y += 3; Gtk.Style.PaintHline (w.Style, w.GdkWindow, StateType.Normal, args.Event.Area, w, "", 0, w.Allocation.Width, 0); break; case PositionType.Left: handleRect.Width -= 4; handleRect.X += 1; Gtk.Style.PaintVline (w.Style, w.GdkWindow, StateType.Normal, args.Event.Area, w, "", 0, w.Allocation.Height, gripSize - 2); break; case PositionType.Right: handleRect.Width -= 4; handleRect.X += 3; Gtk.Style.PaintVline (w.Style, w.GdkWindow, StateType.Normal, args.Event.Area, w, "", 0, w.Allocation.Height, 0); break; }*/ Orientation or = horiz ? Orientation.Vertical : Orientation.Horizontal; StateType s = insideGrip ? StateType.Prelight : StateType.Normal; Gtk.Style.PaintHandle (w.Style, w.GdkWindow, s, ShadowType.None, args.Event.Area, w, "paned", handleRect.Left, handleRect.Top, handleRect.Width, handleRect.Height, or); } } class ScrollableContainer: EventBox { PositionType expandPos; bool scrollMode; int targetSize; public bool ScrollMode { get { return scrollMode; } set { scrollMode = value; QueueResize (); } } public void SetSize (PositionType expandPosition, int targetSize) { this.expandPos = expandPosition; this.targetSize = targetSize; QueueResize (); } protected override void OnSizeRequested (ref Requisition req) { base.OnSizeRequested (ref req); if (scrollMode || Child == null) { req.Width = 0; req.Height = 0; } else req = Child.SizeRequest (); } protected override void OnSizeAllocated (Rectangle alloc) { if (scrollMode && Child != null) { switch (expandPos) { case PositionType.Bottom: alloc = new Rectangle (alloc.X, alloc.Y, alloc.Width, targetSize); break; case PositionType.Top: alloc = new Rectangle (alloc.X, alloc.Y - targetSize + alloc.Height, alloc.Width, targetSize); break; case PositionType.Right: alloc = new Rectangle (alloc.X, alloc.Y, targetSize, alloc.Height); break; case PositionType.Left: alloc = new Rectangle (alloc.X - targetSize + alloc.Width, alloc.Y, targetSize, alloc.Height); break; } } base.OnSizeAllocated (alloc); } } } pinta-1.3/Pinta/DockLibrary/DockBar.cs0000664000175000017500000001112411747026475020754 0ustar00cameroncameron00000000000000// // DockBar.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gtk; using System.Collections.Generic; namespace MonoDevelop.Components.Docking { public class DockBar: Gtk.EventBox { Gtk.PositionType position; Box box; DockFrame frame; Label filler; bool alwaysVisible; internal DockBar (DockFrame frame, Gtk.PositionType position) { frame.ShadedContainer.Add (this); VisibleWindow = false; this.frame = frame; this.position = position; Gtk.Alignment al = new Alignment (0,0,0,0); if (Orientation == Gtk.Orientation.Horizontal) box = new HBox (); else box = new VBox (); uint sizePadding = 1; uint startPadding = 6; switch (Frame.CompactGuiLevel) { case 1: sizePadding = 2; break; case 4: startPadding = 3; break; case 5: startPadding = 0; sizePadding = 0; break; } switch (position) { case PositionType.Top: al.BottomPadding = sizePadding; al.LeftPadding = al.RightPadding = startPadding; break; case PositionType.Bottom: al.TopPadding = sizePadding; al.LeftPadding = al.RightPadding = startPadding; break; case PositionType.Left: al.RightPadding = sizePadding; al.TopPadding = al.BottomPadding = startPadding; break; case PositionType.Right: al.LeftPadding = sizePadding; al.TopPadding = al.BottomPadding = startPadding; break; } box.Spacing = 3; al.Add (box); Add (al); filler = new Label (); filler.WidthRequest = 4; filler.HeightRequest = 4; box.PackEnd (filler); ShowAll (); UpdateVisibility (); } public bool IsExtracted { get { return OriginalBar != null; } } internal DockBar OriginalBar { get; set; } public bool AlwaysVisible { get { return this.alwaysVisible; } set { this.alwaysVisible = value; UpdateVisibility (); } } internal Gtk.Orientation Orientation { get { return (position == PositionType.Left || position == PositionType.Right) ? Gtk.Orientation.Vertical : Gtk.Orientation.Horizontal; } } internal Gtk.PositionType Position { get { return position; } } internal DockFrame Frame { get { return frame; } } internal DockBarItem AddItem (DockItem item, int size) { DockBarItem it = new DockBarItem (this, item, size); box.PackStart (it, false, false, 0); it.ShowAll (); UpdateVisibility (); it.Shown += OnItemVisibilityChanged; it.Hidden += OnItemVisibilityChanged; return it; } void OnItemVisibilityChanged (object o, EventArgs args) { UpdateVisibility (); } internal void OnCompactLevelChanged () { UpdateVisibility (); if (OriginalBar != null) OriginalBar.UpdateVisibility (); } internal void UpdateVisibility () { filler.Visible = (Frame.CompactGuiLevel < 3); int visibleCount = 0; foreach (Gtk.Widget w in box.Children) { if (w.Visible) visibleCount++; } Visible = alwaysVisible || filler.Visible || visibleCount > 0; } internal void RemoveItem (DockBarItem it) { box.Remove (it); it.Shown -= OnItemVisibilityChanged; it.Hidden -= OnItemVisibilityChanged; UpdateVisibility (); } internal void UpdateTitle (DockItem item) { foreach (Widget w in box.Children) { DockBarItem it = w as DockBarItem; if (it != null && it.DockItem == item) { it.UpdateTab (); break; } } } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { frame.ShadedContainer.DrawBackground (this); return base.OnExposeEvent (evnt); } } } pinta-1.3/Pinta/DockLibrary/DockBarItem.cs0000664000175000017500000002414411747026475021601 0ustar00cameroncameron00000000000000// // DockBarItem.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gtk; namespace MonoDevelop.Components.Docking { class DockBarItem: EventBox { DockBar bar; DockItem it; Box box; Label label; Alignment mainBox; AutoHideBox autoShowFrame; AutoHideBox hiddenFrame; uint autoShowTimeout = uint.MaxValue; uint autoHideTimeout = uint.MaxValue; int size; Gdk.Size lastFrameSize; public DockBarItem (DockBar bar, DockItem it, int size) { Events = Events | Gdk.EventMask.EnterNotifyMask | Gdk.EventMask.LeaveNotifyMask; this.size = size; this.bar = bar; this.it = it; VisibleWindow = false; UpdateTab (); lastFrameSize = bar.Frame.Allocation.Size; bar.Frame.SizeAllocated += HandleBarFrameSizeAllocated; } void HandleBarFrameSizeAllocated (object o, SizeAllocatedArgs args) { if (!lastFrameSize.Equals (args.Allocation.Size)) { lastFrameSize = args.Allocation.Size; if (autoShowFrame != null) bar.Frame.UpdateSize (bar, autoShowFrame); } } protected override void OnDestroyed () { base.OnDestroyed (); bar.Frame.SizeAllocated -= HandleBarFrameSizeAllocated; } public void Close () { UnscheduleAutoShow (); UnscheduleAutoHide (); AutoHide (false); bar.RemoveItem (this); Destroy (); } public int Size { get { return size; } set { size = value; } } public void UpdateTab () { if (Child != null) { Widget w = Child; Remove (w); w.Destroy (); } mainBox = new Alignment (0,0,1,1); if (bar.Orientation == Gtk.Orientation.Horizontal) { box = new HBox (); mainBox.LeftPadding = mainBox.RightPadding = 2; } else { box = new VBox (); mainBox.TopPadding = mainBox.BottomPadding = 2; } Gtk.Widget customLabel = null; if (it.DockLabelProvider != null) customLabel = it.DockLabelProvider.CreateLabel (bar.Orientation); if (customLabel != null) { customLabel.ShowAll (); box.PackStart (customLabel, true, true, 0); } else { if (it.Icon != null) box.PackStart (new Gtk.Image (it.Icon), false, false, 0); if (!string.IsNullOrEmpty (it.Label)) { label = new Gtk.Label (it.Label); label.UseMarkup = true; if (bar.Orientation == Gtk.Orientation.Vertical) label.Angle = 270; box.PackStart (label, true, true, 0); } else label = null; } box.BorderWidth = 2; box.Spacing = 2; mainBox.Add (box); mainBox.ShowAll (); Add (mainBox); SetNormalColor (); } public MonoDevelop.Components.Docking.DockItem DockItem { get { return it; } } protected override void OnHidden () { base.OnHidden (); UnscheduleAutoShow (); UnscheduleAutoHide (); AutoHide (false); } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { if (State == StateType.Prelight) { int w = Allocation.Width, h = Allocation.Height; double x=Allocation.Left, y=Allocation.Top, r=3; x += 0.5; y += 0.5; h -=1; w -= 1; using (Cairo.Context ctx = Gdk.CairoHelper.Create (GdkWindow)) { HslColor c = new HslColor (Style.Background (Gtk.StateType.Normal)); HslColor c1 = c; HslColor c2 = c; if (State != StateType.Prelight) { c1.L *= 0.8; c2.L *= 0.95; } else { c1.L *= 1.1; c2.L *= 1; } Cairo.Gradient pat; switch (bar.Position) { case PositionType.Top: pat = new Cairo.LinearGradient (x, y, x, y+h); break; case PositionType.Bottom: pat = new Cairo.LinearGradient (x, y, x, y+h); break; case PositionType.Left: pat = new Cairo.LinearGradient (x+w, y, x, y); break; default: pat = new Cairo.LinearGradient (x, y, x+w, y); break; } pat.AddColorStop (0, c1); pat.AddColorStop (1, c2); ctx.NewPath (); ctx.Arc (x+r, y+r, r, 180 * (Math.PI / 180), 270 * (Math.PI / 180)); ctx.LineTo (x+w-r, y); ctx.Arc (x+w-r, y+r, r, 270 * (Math.PI / 180), 360 * (Math.PI / 180)); ctx.LineTo (x+w, y+h); ctx.LineTo (x, y+h); ctx.ClosePath (); ctx.Pattern = pat; ctx.FillPreserve (); c1 = c; c1.L *= 0.7; ctx.LineWidth = 1; ctx.Color = c1; ctx.Stroke (); // Inner line ctx.NewPath (); ctx.Arc (x+r+1, y+r+1, r, 180 * (Math.PI / 180), 270 * (Math.PI / 180)); ctx.LineTo (x+w-r-1, y+1); ctx.Arc (x+w-r-1, y+r+1, r, 270 * (Math.PI / 180), 360 * (Math.PI / 180)); ctx.LineTo (x+w-1, y+h-1); ctx.LineTo (x+1, y+h-1); ctx.ClosePath (); c1 = c; //c1.L *= 0.9; ctx.LineWidth = 1; ctx.Color = c1; ctx.Stroke (); } } bool res = base.OnExposeEvent (evnt); return res; } public void Present (bool giveFocus) { AutoShow (); if (giveFocus) { GLib.Timeout.Add (200, delegate { // Using a small delay because AutoShow uses an animation and setting focus may // not work until the item is visible it.SetFocus (); ScheduleAutoHide (false); return false; }); } } void AutoShow () { UnscheduleAutoHide (); if (autoShowFrame == null) { if (hiddenFrame != null) bar.Frame.AutoHide (it, hiddenFrame, false); autoShowFrame = bar.Frame.AutoShow (it, bar, size); autoShowFrame.EnterNotifyEvent += OnFrameEnter; autoShowFrame.LeaveNotifyEvent += OnFrameLeave; autoShowFrame.KeyPressEvent += OnFrameKeyPress; SetPrelight (); } } void AutoHide (bool animate) { UnscheduleAutoShow (); if (autoShowFrame != null) { size = autoShowFrame.Size; hiddenFrame = autoShowFrame; autoShowFrame.Hidden += delegate { hiddenFrame = null; }; bar.Frame.AutoHide (it, autoShowFrame, animate); autoShowFrame.EnterNotifyEvent -= OnFrameEnter; autoShowFrame.LeaveNotifyEvent -= OnFrameLeave; autoShowFrame.KeyPressEvent -= OnFrameKeyPress; autoShowFrame = null; UnsetPrelight (); } } void ScheduleAutoShow () { UnscheduleAutoHide (); if (autoShowTimeout == uint.MaxValue) { autoShowTimeout = GLib.Timeout.Add (bar.Frame.AutoShowDelay, delegate { autoShowTimeout = uint.MaxValue; AutoShow (); return false; }); } } void ScheduleAutoHide (bool cancelAutoShow) { ScheduleAutoHide (cancelAutoShow, false); } void ScheduleAutoHide (bool cancelAutoShow, bool force) { if (cancelAutoShow) UnscheduleAutoShow (); if (force) it.Widget.FocusChild = null; if (autoHideTimeout == uint.MaxValue) { autoHideTimeout = GLib.Timeout.Add (force ? 0 : bar.Frame.AutoHideDelay, delegate { // Don't hide the item if it has the focus. Try again later. if (it.Widget.FocusChild != null && !force) return true; // Don't hide the item if the mouse pointer is still inside the window. Try again later. int px, py; it.Widget.GetPointer (out px, out py); if (it.Widget.Visible && it.Widget.IsRealized && it.Widget.Allocation.Contains (px, py) && !force) return true; autoHideTimeout = uint.MaxValue; AutoHide (true); return false; }); } } void UnscheduleAutoShow () { if (autoShowTimeout != uint.MaxValue) { GLib.Source.Remove (autoShowTimeout); autoShowTimeout = uint.MaxValue; } } void UnscheduleAutoHide () { if (autoHideTimeout != uint.MaxValue) { GLib.Source.Remove (autoHideTimeout); autoHideTimeout = uint.MaxValue; } } protected override bool OnEnterNotifyEvent (Gdk.EventCrossing evnt) { ScheduleAutoShow (); SetPrelight (); return base.OnEnterNotifyEvent (evnt); } protected override bool OnLeaveNotifyEvent (Gdk.EventCrossing evnt) { ScheduleAutoHide (true); if (autoShowFrame == null) UnsetPrelight (); return base.OnLeaveNotifyEvent (evnt); } void SetPrelight () { if (State != StateType.Prelight) { State = StateType.Prelight; if (label != null) label.ModifyFg (StateType.Normal, Style.Foreground (Gtk.StateType.Normal)); } } void UnsetPrelight () { if (State == StateType.Prelight) { State = StateType.Normal; SetNormalColor (); } } protected override void OnRealized () { base.OnRealized(); SetNormalColor (); } void SetNormalColor () { if (label != null) { HslColor c = Style.Background (Gtk.StateType.Normal); c.L *= 0.4; label.ModifyFg (StateType.Normal, c); } } void OnFrameEnter (object s, Gtk.EnterNotifyEventArgs args) { AutoShow (); } void OnFrameKeyPress (object s, Gtk.KeyPressEventArgs args) { if (args.Event.Key == Gdk.Key.Escape) ScheduleAutoHide (true, true); } void OnFrameLeave (object s, Gtk.LeaveNotifyEventArgs args) { if (args.Event.Detail != Gdk.NotifyType.Inferior) ScheduleAutoHide (true); } protected override bool OnButtonPressEvent (Gdk.EventButton evnt) { if (evnt.Button == 1) { if (evnt.Type == Gdk.EventType.TwoButtonPress) it.Status = DockItemStatus.Dockable; else AutoShow (); } else if (evnt.Button == 3) it.ShowDockPopupMenu (evnt.Time); return base.OnButtonPressEvent (evnt); } } } pinta-1.3/Pinta/DockLibrary/DockContainer.cs0000664000175000017500000003054311747026475022200 0ustar00cameroncameron00000000000000// // DockContainer.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Collections.Generic; using Gtk; using Gdk; namespace MonoDevelop.Components.Docking { class DockContainer: Container, IShadedWidget { DockLayout layout; DockFrame frame; List notebooks = new List (); List items = new List (); bool needsRelayout = true; DockGroup currentHandleGrp; int currentHandleIndex; bool dragging; int dragPos; int dragSize; PlaceholderWindow placeholderWindow; static Gdk.Cursor hresizeCursor = new Gdk.Cursor (CursorType.SbHDoubleArrow); static Gdk.Cursor vresizeCursor = new Gdk.Cursor (CursorType.SbVDoubleArrow); public DockContainer (DockFrame frame) { this.Events = EventMask.ButtonPressMask | EventMask.ButtonReleaseMask | EventMask.PointerMotionMask | EventMask.LeaveNotifyMask; this.frame = frame; frame.ShadedContainer.Add (this); } internal DockGroupItem FindDockGroupItem (string id) { if (layout == null) return null; else return layout.FindDockGroupItem (id); } public List Items { get { return items; } } public DockLayout Layout { get { return layout; } set { layout = value; } } public void Clear () { layout = null; } public void LoadLayout (DockLayout dl) { // Sticky items currently selected in notebooks will remain // selected after switching the layout List sickyOnTop = new List (); foreach (DockItem it in items) { if ((it.Behavior & DockItemBehavior.Sticky) != 0) { DockGroupItem gitem = FindDockGroupItem (it.Id); if (gitem != null && gitem.ParentGroup.IsSelectedPage (it)) sickyOnTop.Add (it); } } if (layout != null) layout.StoreAllocation (); layout = dl; layout.RestoreAllocation (); // Make sure items not present in this layout are hidden foreach (DockItem it in items) { if ((it.Behavior & DockItemBehavior.Sticky) != 0) it.Visible = it.StickyVisible; if (layout.FindDockGroupItem (it.Id) == null) it.HideWidget (); } RelayoutWidgets (); foreach (DockItem it in sickyOnTop) it.Present (false); } public void StoreAllocation () { if (layout != null) layout.StoreAllocation (); } protected override void OnSizeRequested (ref Requisition req) { if (layout != null) { LayoutWidgets (); req = layout.SizeRequest (); } } protected override void OnSizeAllocated (Gdk.Rectangle rect) { base.OnSizeAllocated (rect); if (layout == null) return; // This container has its own window, so allocation of children // is relative to 0,0 rect.X = rect.Y = 0; LayoutWidgets (); layout.Size = -1; layout.SizeAllocate (rect); } protected override void ForAll (bool include_internals, Gtk.Callback callback) { List widgets = new List (); foreach (Widget w in notebooks) widgets.Add (w); foreach (DockItem it in items) { if (it.HasWidget && it.Widget.Parent == this) widgets.Add (it.Widget); } foreach (Widget w in widgets) callback (w); } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { bool res = base.OnExposeEvent (evnt); if (layout != null) { layout.Draw (evnt.Area, currentHandleGrp, currentHandleIndex); } return res; } public void RelayoutWidgets () { needsRelayout = true; QueueResize (); } void LayoutWidgets () { if (!needsRelayout) return; needsRelayout = false; // Create the needed notebooks and place the widgets in there List tabbedGroups = new List (); GetTabbedGroups (layout, tabbedGroups); for (int n=0; n= tabbedGroups.Count; n--) { TabStrip ts = notebooks [n]; notebooks.RemoveAt (n); ts.Clear (); ts.Unparent (); ts.Destroy (); } // Add widgets to the container layout.LayoutWidgets (); NotifySeparatorsChanged (); } void GetTabbedGroups (DockGroup grp, List tabbedGroups) { if (grp.Type == DockGroupType.Tabbed) { if (grp.VisibleObjects.Count > 1) tabbedGroups.Add (grp); else grp.ResetNotebook (); } else { // Make sure it doesn't have a notebook bound to it grp.ResetNotebook (); foreach (DockObject ob in grp.Objects) { if (ob is DockGroup) GetTabbedGroups ((DockGroup) ob, tabbedGroups); } } } protected override bool OnButtonPressEvent (Gdk.EventButton ev) { if (currentHandleGrp != null) { dragging = true; dragPos = (currentHandleGrp.Type == DockGroupType.Horizontal) ? (int)ev.XRoot : (int)ev.YRoot; DockObject obj = currentHandleGrp.VisibleObjects [currentHandleIndex]; dragSize = (currentHandleGrp.Type == DockGroupType.Horizontal) ? obj.Allocation.Width : obj.Allocation.Height; } return base.OnButtonPressEvent (ev); } protected override bool OnButtonReleaseEvent (Gdk.EventButton e) { dragging = false; return base.OnButtonReleaseEvent (e); } protected override bool OnMotionNotifyEvent (Gdk.EventMotion e) { if (dragging) { NotifySeparatorsChanged (); int newpos = (currentHandleGrp.Type == DockGroupType.Horizontal) ? (int)e.XRoot : (int)e.YRoot; if (newpos != dragPos) { int nsize = dragSize + (newpos - dragPos); currentHandleGrp.ResizeItem (currentHandleIndex, nsize); layout.DrawSeparators (Allocation, currentHandleGrp, currentHandleIndex, true, null); } } else if (layout != null && placeholderWindow == null) { int index; DockGroup grp; if (FindHandle (layout, (int)e.X, (int)e.Y, out grp, out index)) { if (currentHandleGrp != grp || currentHandleIndex != index) { if (grp.Type == DockGroupType.Horizontal) this.GdkWindow.Cursor = hresizeCursor; else this.GdkWindow.Cursor = vresizeCursor; currentHandleGrp = grp; currentHandleIndex = index; layout.DrawSeparators (Allocation, currentHandleGrp, currentHandleIndex, true, null); } } else if (currentHandleGrp != null) { ResetHandleHighlight (); } } return base.OnMotionNotifyEvent (e); } void ResetHandleHighlight () { this.GdkWindow.Cursor = null; currentHandleGrp = null; currentHandleIndex = -1; if (layout != null) layout.DrawSeparators (Allocation, null, -1, true, null); } protected override bool OnLeaveNotifyEvent (EventCrossing evnt) { if (!dragging && evnt.Mode != CrossingMode.Grab) ResetHandleHighlight (); return base.OnLeaveNotifyEvent (evnt); } bool FindHandle (DockGroup grp, int x, int y, out DockGroup foundGrp, out int objectIndex) { if (grp.Type != DockGroupType.Tabbed && grp.Allocation.Contains (x, y)) { for (int n=0; n obj.Allocation.Right && x < obj.Allocation.Right + frame.TotalHandleSize) || (grp.Type == DockGroupType.Vertical && y > obj.Allocation.Bottom && y < obj.Allocation.Bottom + frame.TotalHandleSize)) { foundGrp = grp; objectIndex = n; return true; } } if (obj is DockGroup) { if (FindHandle ((DockGroup) obj, x, y, out foundGrp, out objectIndex)) return true; } } } foundGrp = null; objectIndex = 0; return false; } protected override void OnRealized () { WidgetFlags |= WidgetFlags.Realized; Gdk.WindowAttr attributes = new Gdk.WindowAttr (); attributes.X = Allocation.X; attributes.Y = Allocation.Y; attributes.Height = Allocation.Height; attributes.Width = Allocation.Width; attributes.WindowType = Gdk.WindowType.Child; attributes.Wclass = Gdk.WindowClass.InputOutput; attributes.Visual = Visual; attributes.Colormap = Colormap; attributes.EventMask = (int)(Events | Gdk.EventMask.ExposureMask | Gdk.EventMask.Button1MotionMask | Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask); Gdk.WindowAttributesType attributes_mask = Gdk.WindowAttributesType.X | Gdk.WindowAttributesType.Y | Gdk.WindowAttributesType.Colormap | Gdk.WindowAttributesType.Visual; GdkWindow = new Gdk.Window (ParentWindow, attributes, (int)attributes_mask); GdkWindow.UserData = Handle; Style = Style.Attach (GdkWindow); Style.SetBackground (GdkWindow, State); //GdkWindow.SetBackPixmap (null, true); } internal void ShowPlaceholder () { placeholderWindow = new PlaceholderWindow (frame); } internal bool UpdatePlaceholder (DockItem item, Gdk.Size size, bool allowDocking) { if (placeholderWindow == null) return false; int px, py; GetPointer (out px, out py); placeholderWindow.AllowDocking = allowDocking; DockDelegate dockDelegate; Gdk.Rectangle rect; if (allowDocking && layout.GetDockTarget (item, px, py, out dockDelegate, out rect)) { int ox, oy; GdkWindow.GetOrigin (out ox, out oy); placeholderWindow.Relocate (ox + rect.X, oy + rect.Y, rect.Width, rect.Height, true); placeholderWindow.Show (); return true; } else { int ox, oy; GdkWindow.GetOrigin (out ox, out oy); placeholderWindow.Relocate (ox + px - size.Width / 2, oy + py - 18, size.Width, size.Height, false); placeholderWindow.Show (); } return false; } internal void DockInPlaceholder (DockItem item) { if (placeholderWindow == null || !placeholderWindow.Visible) return; item.Status = DockItemStatus.Dockable; int px, py; GetPointer (out px, out py); DockDelegate dockDelegate; Gdk.Rectangle rect; if (placeholderWindow.AllowDocking && layout.GetDockTarget (item, px, py, out dockDelegate, out rect)) { DockGroupItem dummyItem = new DockGroupItem (frame, new DockItem (frame, "__dummy")); DockGroupItem gitem = layout.FindDockGroupItem (item.Id); gitem.ParentGroup.ReplaceItem (gitem, dummyItem); dockDelegate (item); dummyItem.ParentGroup.Remove (dummyItem); RelayoutWidgets (); } else { DockGroupItem gi = FindDockGroupItem (item.Id); int pw, ph; placeholderWindow.GetPosition (out px, out py); placeholderWindow.GetSize (out pw, out ph); gi.FloatRect = new Rectangle (px, py, pw, ph); item.Status = DockItemStatus.Floating; } } internal void HidePlaceholder () { if (placeholderWindow != null) { placeholderWindow.Destroy (); placeholderWindow = null; } } public IEnumerable GetShadedAreas () { List rects = new List (); if (layout != null) layout.DrawSeparators (Allocation, currentHandleGrp, currentHandleIndex, true, rects); return rects; } internal void NotifySeparatorsChanged () { if (AreasChanged != null) AreasChanged (this, EventArgs.Empty); } public event EventHandler AreasChanged; } } pinta-1.3/Pinta/DockLibrary/DockFrame.cs0000664000175000017500000004331111747026475021305 0ustar00cameroncameron00000000000000// // MonoDevelop.Components.Docking.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using System.Collections; using System.Collections.Generic; using Gtk; using Gdk; namespace MonoDevelop.Components.Docking { public class DockFrame: HBox { internal const double ItemDockCenterArea = 0.4; internal const int GroupDockSeparatorSize = 40; internal bool ShadedSeparators = true; DockContainer container; int handleSize = IsWindows ? 4 : 6; int handlePadding = 0; int defaultItemWidth = 130; int defaultItemHeight = 130; uint autoShowDelay = 400; uint autoHideDelay = 500; SortedDictionary layouts = new SortedDictionary (); List topLevels = new List (); string currentLayout; int compactGuiLevel = 3; DockBar dockBarTop, dockBarBottom, dockBarLeft, dockBarRight; VBox mainBox; ShadedContainer shadedContainer; public DockFrame () { shadedContainer = new ShadedContainer (); dockBarTop = new DockBar (this, Gtk.PositionType.Top); dockBarBottom = new DockBar (this, Gtk.PositionType.Bottom); dockBarLeft = new DockBar (this, Gtk.PositionType.Left); dockBarRight = new DockBar (this, Gtk.PositionType.Right); container = new DockContainer (this); HBox hbox = new HBox (); hbox.PackStart (dockBarLeft, false, false, 0); hbox.PackStart (container, true, true, 0); hbox.PackStart (dockBarRight, false, false, 0); mainBox = new VBox (); mainBox.PackStart (dockBarTop, false, false, 0); mainBox.PackStart (hbox, true, true, 0); mainBox.PackStart (dockBarBottom, false, false, 0); Add (mainBox); mainBox.ShowAll (); mainBox.NoShowAll = true; CompactGuiLevel = 2; dockBarTop.UpdateVisibility (); dockBarBottom.UpdateVisibility (); dockBarLeft.UpdateVisibility (); dockBarRight.UpdateVisibility (); } /// /// Compactness level of the gui, from 1 (not compact) to 5 (very compact). /// public int CompactGuiLevel { get { return compactGuiLevel; } set { compactGuiLevel = value; switch (compactGuiLevel) { case 1: handleSize = 6; break; case 2: case 3: handleSize = IsWindows ? 4 : 6; break; case 4: case 5: handleSize = 3; break; } handlePadding = 0; dockBarTop.OnCompactLevelChanged (); dockBarBottom.OnCompactLevelChanged (); dockBarLeft.OnCompactLevelChanged (); dockBarRight.OnCompactLevelChanged (); container.RelayoutWidgets (); } } public DockBar ExtractDockBar (PositionType pos) { DockBar db = new DockBar (this, pos); switch (pos) { case PositionType.Left: db.OriginalBar = dockBarLeft; dockBarLeft = db; break; case PositionType.Top: db.OriginalBar = dockBarTop; dockBarTop = db; break; case PositionType.Right: db.OriginalBar = dockBarRight; dockBarRight = db; break; case PositionType.Bottom: db.OriginalBar = dockBarBottom; dockBarBottom = db; break; } return db; } internal DockBar GetDockBar (PositionType pos) { switch (pos) { case Gtk.PositionType.Top: return dockBarTop; case Gtk.PositionType.Bottom: return dockBarBottom; case Gtk.PositionType.Left: return dockBarLeft; case Gtk.PositionType.Right: return dockBarRight; } return null; } internal DockContainer Container { get { return container; } } public ShadedContainer ShadedContainer { get { return this.shadedContainer; } } public int HandleSize { get { return handleSize; } set { handleSize = value; } } public int HandlePadding { get { return handlePadding; } set { handlePadding = value; } } public int DefaultItemWidth { get { return defaultItemWidth; } set { defaultItemWidth = value; } } public int DefaultItemHeight { get { return defaultItemHeight; } set { defaultItemHeight = value; } } internal int TotalHandleSize { get { return handleSize + handlePadding*2; } } public DockItem AddItem (string id) { foreach (DockItem dit in container.Items) { if (dit.Id == id) { if (dit.IsPositionMarker) { dit.IsPositionMarker = false; return dit; } throw new InvalidOperationException ("An item with id '" + id + "' already exists."); } } DockItem it = new DockItem (this, id); container.Items.Add (it); return it; } public void RemoveItem (DockItem it) { if (container.Layout != null) container.Layout.RemoveItemRec (it); foreach (DockGroup grp in layouts.Values) grp.RemoveItemRec (it); container.Items.Remove (it); } public DockItem GetItem (string id) { foreach (DockItem it in container.Items) { if (it.Id == id) { if (!it.IsPositionMarker) return it; else return null; } } return null; } public IEnumerable GetItems () { return container.Items; } bool LoadLayout (string layoutName) { DockLayout dl; if (!layouts.TryGetValue (layoutName, out dl)) return false; container.LoadLayout (dl); return true; } public void CreateLayout (string name) { CreateLayout (name, false); } public void DeleteLayout (string name) { layouts.Remove (name); } public void CreateLayout (string name, bool copyCurrent) { DockLayout dl; if (container.Layout == null || !copyCurrent) { dl = GetDefaultLayout (); } else { container.StoreAllocation (); dl = (DockLayout) container.Layout.Clone (); } dl.Name = name; layouts [name] = dl; } public string CurrentLayout { get { return currentLayout; } set { if (currentLayout == value) return; if (LoadLayout (value)) { currentLayout = value; } } } public bool HasLayout (string id) { return layouts.ContainsKey (id); } public string[] Layouts { get { if (layouts.Count == 0) return new string [0]; string[] arr = new string [layouts.Count]; layouts.Keys.CopyTo (arr, 0); return arr; } } public uint AutoShowDelay { get { return autoShowDelay; } set { autoShowDelay = value; } } public uint AutoHideDelay { get { return autoHideDelay; } set { autoHideDelay = value; } } public void SaveLayouts (string file) { using (XmlTextWriter w = new XmlTextWriter (file, System.Text.Encoding.UTF8)) { w.Formatting = Formatting.Indented; SaveLayouts (w); } } public void SaveLayouts (XmlWriter writer) { if (container.Layout != null) container.Layout.StoreAllocation (); writer.WriteStartElement ("layouts"); foreach (DockLayout la in layouts.Values) la.Write (writer); writer.WriteEndElement (); } public void LoadLayouts (string file) { using (XmlReader r = new XmlTextReader (new System.IO.StreamReader (file))) { LoadLayouts (r); } } public void LoadLayouts (XmlReader reader) { layouts.Clear (); container.Clear (); currentLayout = null; reader.MoveToContent (); if (reader.IsEmptyElement) { reader.Skip (); return; } reader.ReadStartElement ("layouts"); reader.MoveToContent (); while (reader.NodeType != XmlNodeType.EndElement) { if (reader.NodeType == XmlNodeType.Element) { DockLayout layout = DockLayout.Read (this, reader); layouts.Add (layout.Name, layout); } else reader.Skip (); reader.MoveToContent (); } reader.ReadEndElement (); container.RelayoutWidgets (); } internal void UpdateTitle (DockItem item) { DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) return; gitem.ParentGroup.UpdateTitle (item); dockBarTop.UpdateTitle (item); dockBarBottom.UpdateTitle (item); dockBarLeft.UpdateTitle (item); dockBarRight.UpdateTitle (item); } internal void Present (DockItem item, bool giveFocus) { DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) return; gitem.ParentGroup.Present (item, giveFocus); } internal bool GetVisible (DockItem item) { DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) return false; return gitem.VisibleFlag; } internal bool GetVisible (DockItem item, string layoutName) { DockLayout dl; if (!layouts.TryGetValue (layoutName, out dl)) return false; DockGroupItem gitem = dl.FindDockGroupItem (item.Id); if (gitem == null) return false; return gitem.VisibleFlag; } internal void SetVisible (DockItem item, bool visible) { if (container.Layout == null) return; DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) { if (visible) { // The item is not present in the layout. Add it now. if (!string.IsNullOrEmpty (item.DefaultLocation)) gitem = AddDefaultItem (container.Layout, item); if (gitem == null) { // No default position gitem = new DockGroupItem (this, item); container.Layout.AddObject (gitem); } } else return; // Already invisible } gitem.SetVisible (visible); container.RelayoutWidgets (); } internal DockItemStatus GetStatus (DockItem item) { DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) return DockItemStatus.Dockable; return gitem.Status; } internal void SetStatus (DockItem item, DockItemStatus status) { DockGroupItem gitem = container.FindDockGroupItem (item.Id); if (gitem == null) { item.DefaultStatus = status; return; } gitem.StoreAllocation (); gitem.Status = status; container.RelayoutWidgets (); } internal void SetDockLocation (DockItem item, string placement) { bool vis = item.Visible; DockItemStatus stat = item.Status; item.ResetMode (); container.Layout.RemoveItemRec (item); AddItemAtLocation (container.Layout, item, placement, vis, stat); } DockLayout GetDefaultLayout () { DockLayout group = new DockLayout (this); // Add items which don't have relative defaut positions List todock = new List (); foreach (DockItem item in container.Items) { if (string.IsNullOrEmpty (item.DefaultLocation)) { DockGroupItem dgt = new DockGroupItem (this, item); dgt.SetVisible (item.DefaultVisible); group.AddObject (dgt); } else todock.Add (item); } // Add items with relative positions. int lastCount = 0; while (lastCount != todock.Count) { lastCount = todock.Count; for (int n=0; n clone = new List (topLevels); foreach (DockFrameTopLevel child in clone) callback (child); } protected override void OnRealized () { base.OnRealized (); HslColor cLight = new HslColor (Style.Background (Gtk.StateType.Normal)); HslColor cDark = cLight; cLight.L *= 0.9; cDark.L *= 0.8; shadedContainer.LightColor = cLight; shadedContainer.DarkColor = cDark; } static internal bool IsWindows { get { return System.IO.Path.DirectorySeparatorChar == '\\'; } } internal static Cairo.Color ToCairoColor (Gdk.Color color) { return new Cairo.Color (color.Red / (double) ushort.MaxValue, color.Green / (double) ushort.MaxValue, color.Blue / (double) ushort.MaxValue); } } internal delegate void DockDelegate (DockItem item); } pinta-1.3/Pinta/DockLibrary/DockFrameTopLevel.cs0000664000175000017500000000307111747026475022757 0ustar00cameroncameron00000000000000// // DockFrameTopLevel.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gtk; namespace MonoDevelop.Components.Docking { class DockFrameTopLevel: EventBox { int x, y; public int X { get { return x; } set { x = value; if (Parent != null) Parent.QueueResize (); } } public int Y { get { return y; } set { y = value; if (Parent != null) Parent.QueueResize (); } } } } pinta-1.3/Pinta/DockLibrary/DockGroup.cs0000664000175000017500000010107611747026475021352 0ustar00cameroncameron00000000000000// // MonoDevelop.Components.Docking.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using System.Collections.Generic; using Gtk; namespace MonoDevelop.Components.Docking { class DockGroup: DockObject { DockGroupType type; List dockObjects = new List (); List visibleObjects; AllocStatus allocStatus = AllocStatus.NotSet; TabStrip boundTabStrip; DockGroupItem tabFocus; int currentTabPage; enum AllocStatus { NotSet, Invalid, RestorePending, NewSizeRequest, Valid }; public DockGroup (DockFrame frame, DockGroupType type): base (frame) { this.type = type; } internal DockGroup (DockFrame frame): base (frame) { } public DockGroupType Type { get { return type; } set { type = value; } } public List Objects { get { return dockObjects; } } void MarkForRelayout () { if (allocStatus == AllocStatus.Valid) allocStatus = AllocStatus.Invalid; } public void AddObject (DockObject obj) { obj.ParentGroup = this; dockObjects.Add (obj); ResetVisibleGroups (); } public DockGroupItem AddObject (DockItem obj, DockPosition pos, string relItemId) { int npos = -1; if (relItemId != null) { for (int n=0; n (dockObjects); foreach (DockObject obj in grp.dockObjects) obj.ParentGroup = grp; grp.CopySizeFrom (this); return grp; } public int GetObjectIndex (DockObject obj) { for (int n=0; n 0) { CalcNewSizes (); MarkForRelayout (); } else ParentGroup.UpdateVisible (this); } public void Reduce () { if (ParentGroup != null && dockObjects.Count == 1) { DockObject obj = dockObjects [0]; int n = ParentGroup.GetObjectIndex (this); ParentGroup.dockObjects [n] = obj; obj.ParentGroup = ParentGroup; obj.CopySizeFrom (this); dockObjects.Clear (); ResetVisibleGroups (); ParentGroup.ResetVisibleGroups (); } } internal List VisibleObjects { get { if (visibleObjects == null) { visibleObjects = new List (); foreach (DockObject obj in dockObjects) if (obj.Visible) visibleObjects.Add (obj); } return visibleObjects; } } void ResetVisibleGroups () { visibleObjects = null; MarkForRelayout (); } internal void UpdateVisible (DockObject child) { visibleObjects = null; bool visChanged; CalcNewSizes (); MarkForRelayout (); visChanged = child.Visible ? VisibleObjects.Count == 1 : VisibleObjects.Count == 0; if (visChanged && ParentGroup != null) ParentGroup.UpdateVisible (this); } internal override void RestoreAllocation () { base.RestoreAllocation (); allocStatus = Size >= 0 ? AllocStatus.RestorePending : AllocStatus.NotSet; // Make a copy because RestoreAllocation can fire events such as VisibleChanged, // and subscribers may do changes in the list. List copy = new List (dockObjects); foreach (DockObject ob in copy) ob.RestoreAllocation (); } internal override void StoreAllocation () { base.StoreAllocation (); foreach (DockObject ob in dockObjects) ob.StoreAllocation (); if (Type == DockGroupType.Tabbed && boundTabStrip != null) currentTabPage = boundTabStrip.CurrentTab; } public override bool Expand { get { foreach (DockObject ob in dockObjects) if (ob.Expand) return true; return false; } } public override void SizeAllocate (Gdk.Rectangle newAlloc) { Gdk.Rectangle oldAlloc = Allocation; base.SizeAllocate (newAlloc); if (type == DockGroupType.Tabbed) { if (boundTabStrip != null) { int tabsHeight = boundTabStrip.SizeRequest ().Height; boundTabStrip.SizeAllocate (new Gdk.Rectangle (newAlloc.X, newAlloc.Bottom - tabsHeight, newAlloc.Width, tabsHeight)); } if (allocStatus == AllocStatus.Valid && newAlloc == oldAlloc) { // Even if allocation has not changed, SizeAllocation has to be called on all items to avoid redrawing issues. foreach (DockObject ob in VisibleObjects) ob.SizeAllocate (ob.Allocation); return; } if (VisibleObjects.Count > 1 && boundTabStrip != null) { int tabsHeight = boundTabStrip.SizeRequest ().Height; newAlloc.Height -= tabsHeight; boundTabStrip.QueueDraw (); } else if (VisibleObjects.Count != 0) { ((DockGroupItem)VisibleObjects [0]).Item.Widget.Show (); } allocStatus = AllocStatus.Valid; foreach (DockObject ob in VisibleObjects) { ob.Size = ob.PrefSize = -1; ob.SizeAllocate (newAlloc); } return; } bool horiz = type == DockGroupType.Horizontal; int pos = horiz ? Allocation.Left : Allocation.Top; if (allocStatus == AllocStatus.Valid && newAlloc == oldAlloc) { // The layout of this group (as a whole) has not changed, but the layout // of child items may have changed. Assign the new sizes. if (CheckMinSizes ()) allocStatus = AllocStatus.NewSizeRequest; else { foreach (DockObject ob in VisibleObjects) { Gdk.Rectangle rect; int ins = ob.AllocSize; if (horiz) rect = new Gdk.Rectangle (pos, Allocation.Y, ins, Allocation.Height); else rect = new Gdk.Rectangle (Allocation.X, pos, Allocation.Width, ins); ob.SizeAllocate (rect); pos += ins + Frame.TotalHandleSize; } return; } } // This is the space available for the child items (excluding size // required for the resize handles) int realSize = GetRealSize (VisibleObjects); if (allocStatus == AllocStatus.NotSet/* || allocStatus == AllocStatus.RestorePending*/) { // It is the first size allocation. Calculate all sizes. CalcNewSizes (); } else if (allocStatus != AllocStatus.NewSizeRequest) { // Available space has changed, so the size of the items must be changed. // First of all, get the change fraction double change; if (horiz) change = (double) newAlloc.Width / (double) oldAlloc.Width; else change = (double) newAlloc.Height / (double) oldAlloc.Height; // Get the old total size of the visible objects. Used to calculate the // proportion of size of each item. double tsize = 0; double rsize = 0; foreach (DockObject ob in VisibleObjects) { tsize += ob.PrefSize; rsize += ob.Size; } foreach (DockObject ob in dockObjects) { if (ob.Visible) { // Proportionally spread the new available space among all visible objects ob.Size = ob.PrefSize = (ob.PrefSize / tsize) * (double) realSize; } else { // For non-visible objects, change the size by the same grow fraction. In this // way, when the item is shown again, it size will have the correct proportions. ob.Size = ob.Size * change; ob.PrefSize = ob.PrefSize * change; } ob.DefaultSize = ob.DefaultSize * change; } CheckMinSizes (); } allocStatus = AllocStatus.Valid; // Sizes for all items have been set. // Sizes are real numbers to ensure that the values are not degradated when resizing // pixel by pixel. Now those have to be converted to integers, that is, actual allocated sizes. int ts = 0; for (int n=0; n objects) { // Returns the space available for the child items (excluding size // required for the resize handles) int realSize; if (type == DockGroupType.Horizontal) realSize = Allocation.Width; else realSize = Allocation.Height; // Ignore space required for the handles if (objects.Count > 1) realSize -= (Frame.TotalHandleSize * (objects.Count - 1)); return realSize; } internal void CalcNewSizes () { // Calculates the size assigned by default to each child item. // Size is proportionally assigned to each item, taking into account // the available space, and the default size of each item. // If there are items with the Expand flag set, those will proportionally // take the space left after allocating the other (not exandable) items. // This is the space available for the child items (excluding size // required for the resize handles) double realSize = (double) GetRealSize (VisibleObjects); bool hasExpandItems = false; double noexpandSize = 0; double minExpandSize = 0; double defaultExpandSize = 0; for (int n=0; n avSize) regSize = avSize; double ratio = (avSize - regSize) / avSize; foreach (DockObject ob in VisibleObjects) { if (ob.Size <= ob.MinSize) continue; double avs = ob.Size - ob.MinSize; ob.Size = ob.MinSize + avs * ratio; } return sizesChanged; } internal override Gtk.Requisition SizeRequest () { bool getMaxW = true, getMaxH = true; if (type == DockGroupType.Horizontal) getMaxW = false; else if (type == DockGroupType.Vertical) getMaxH = false; Requisition ret = new Requisition (); ret.Height = VisibleObjects.Count * Frame.TotalHandleSize; foreach (DockObject ob in VisibleObjects) { Requisition req = ob.SizeRequest (); if (getMaxH) { if (req.Height > ret.Height) ret.Height = req.Height; } else ret.Height += req.Height; if (getMaxW) { if (req.Width > ret.Width) ret.Width = req.Width; } else ret.Width += req.Width; } if (type == DockGroupType.Tabbed && VisibleObjects.Count > 1 && boundTabStrip != null) { Gtk.Requisition tabs = boundTabStrip.SizeRequest (); ret.Height += tabs.Height; if (ret.Width < tabs.Width) ret.Width = tabs.Width; } return ret; } internal void UpdateNotebook (TabStrip ts) { Gtk.Widget oldpage = null; int oldtab = -1; if (tabFocus != null) { oldpage = tabFocus.Item.Widget; tabFocus = null; } else if (boundTabStrip != null) { oldpage = boundTabStrip.CurrentPage; oldtab = boundTabStrip.CurrentTab; } ts.Clear (); // Add missing pages foreach (DockObject ob in VisibleObjects) { DockGroupItem it = ob as DockGroupItem; ts.AddTab (it.Item.Widget, it.Item.Icon, it.Item.Label); } boundTabStrip = ts; if (currentTabPage != -1 && currentTabPage < boundTabStrip.TabCount) { boundTabStrip.CurrentTab = currentTabPage; // Discard the currentTabPage value. Current page is now tracked by the tab strip currentTabPage = -1; } else if (oldpage != null) boundTabStrip.CurrentPage = oldpage; if (boundTabStrip.CurrentTab == -1) { if (oldtab != -1) { if (oldtab < boundTabStrip.TabCount) boundTabStrip.CurrentTab = oldtab; else boundTabStrip.CurrentTab = boundTabStrip.TabCount - 1; } else boundTabStrip.CurrentTab = 0; } if (Frame.CompactGuiLevel == 3 && IsNextToMargin (PositionType.Bottom, true)) boundTabStrip.BottomPadding = 3; else boundTabStrip.BottomPadding = 0; } internal void Present (DockItem it, bool giveFocus) { if (type == DockGroupType.Tabbed) { for (int n=0; n= VisibleObjects.Count) return false; DockGroupItem dit = VisibleObjects[boundTabStrip.CurrentTab] as DockGroupItem; return dit.Item == it; } internal void UpdateTitle (DockItem it) { if (it.Visible && type == DockGroupType.Tabbed && boundTabStrip != null) boundTabStrip.SetTabLabel (it.Widget, it.Icon, it.Label); } internal void FocusItem (DockGroupItem it) { tabFocus = it; } internal void ResetNotebook () { boundTabStrip = null; } public void LayoutWidgets () { foreach (DockObject ob in VisibleObjects) { DockGroupItem it = ob as DockGroupItem; if (it != null) { if (it.Item.Widget.Parent == null) it.Item.Widget.Parent = Frame.Container; if (!it.Item.Widget.Visible && type != DockGroupType.Tabbed) it.Item.Widget.Show (); } else ((DockGroup)ob).LayoutWidgets (); } } internal override void GetDefaultSize (out int width, out int height) { if (type == DockGroupType.Tabbed) { width = -1; height = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetDefaultSize (out dw, out dh); if (dw > width) width = dw; if (dh > height) height = dh; } } else if (type == DockGroupType.Vertical) { height = VisibleObjects.Count > 0 ? (VisibleObjects.Count - 1) * Frame.TotalHandleSize : 0; width = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetDefaultSize (out dw, out dh); if (dw > width) width = dw; height += dh; } } else { width = VisibleObjects.Count > 0 ? (VisibleObjects.Count - 1) * Frame.TotalHandleSize : 0; height = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetDefaultSize (out dw, out dh); if (dh > height) height = dh; width += dw; } } } internal override void GetMinSize (out int width, out int height) { if (type == DockGroupType.Tabbed) { width = -1; height = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetMinSize (out dw, out dh); if (dw > width) width = dw; if (dh > height) height = dh; } } else if (type == DockGroupType.Vertical) { height = VisibleObjects.Count > 1 ? (VisibleObjects.Count - 1) * Frame.TotalHandleSize : 0; width = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetMinSize (out dw, out dh); if (dw > width) width = dw; height += dh; } } else { width = VisibleObjects.Count > 0 ? (VisibleObjects.Count - 1) * Frame.TotalHandleSize : 0; height = -1; foreach (DockObject ob in VisibleObjects) { int dh, dw; ob.GetMinSize (out dw, out dh); if (dh > height) height = dh; width += dw; } } } public void Draw (Gdk.Rectangle exposedArea, DockGroup currentHandleGrp, int currentHandleIndex) { if (type != DockGroupType.Tabbed) { DrawSeparators (exposedArea, currentHandleGrp, currentHandleIndex, false, false, null); foreach (DockObject it in VisibleObjects) { DockGroup grp = it as DockGroup; if (grp != null) grp.Draw (exposedArea, currentHandleGrp, currentHandleIndex); } } } public void DrawSeparators (Gdk.Rectangle exposedArea, DockGroup currentHandleGrp, int currentHandleIndex, bool invalidateOnly, List areasList) { DrawSeparators (exposedArea, currentHandleGrp, currentHandleIndex, invalidateOnly, true, areasList); } void DrawSeparators (Gdk.Rectangle exposedArea, DockGroup currentHandleGrp, int currentHandleIndex, bool invalidateOnly, bool drawChildrenSep, List areasList) { if (type == DockGroupType.Tabbed || VisibleObjects.Count == 0) return; DockObject last = VisibleObjects [VisibleObjects.Count - 1]; bool horiz = type == DockGroupType.Horizontal; int x = Allocation.X; int y = Allocation.Y; int hw = horiz ? Frame.HandleSize : Allocation.Width; int hh = horiz ? Allocation.Height : Frame.HandleSize; Gtk.Orientation or = horiz ? Gtk.Orientation.Vertical : Gtk.Orientation.Horizontal; for (int n=0; n 0 && o2.AllocSize - dsize < o2.MinSize) dsize = o2.AllocSize - o2.MinSize; // Assign the new sizes, applying the current ratio double sizeDif = (double)dsize; o1.AllocSize += dsize; o2.AllocSize -= dsize; o1.DefaultSize += (o1.DefaultSize * sizeDif) / o1.Size; o1.Size = o1.AllocSize; o1.PrefSize = o1.Size; o2.DefaultSize -= (o2.DefaultSize * sizeDif) / o2.Size; o2.Size = o2.AllocSize; o2.PrefSize = o2.Size; o1.QueueResize (); o2.QueueResize (); } internal override void QueueResize () { foreach (DockObject obj in VisibleObjects) obj.QueueResize (); } internal double GetObjectsSize () { double total = 0; foreach (DockObject obj in VisibleObjects) total += obj.Size; return total; } void DockTarget (DockItem item, int n) { DockGroupItem gitem = new DockGroupItem (Frame, item); dockObjects.Insert (n, gitem); gitem.ParentGroup = this; gitem.SetVisible (true); ResetVisibleGroups (); CalcNewSizes (); } internal override bool GetDockTarget (DockItem item, int px, int py, out DockDelegate dockDelegate, out Gdk.Rectangle rect) { if (!Allocation.Contains (px, py) || VisibleObjects.Count == 0) { dockDelegate = null; rect = Gdk.Rectangle.Zero; return false; } if (type == DockGroupType.Tabbed) { // Tabs can only contain DockGroupItems return ((DockGroupItem)VisibleObjects[0]).GetDockTarget (item, px, py, Allocation, out dockDelegate, out rect); } else if (type == DockGroupType.Horizontal) { if (px >= Allocation.Right - DockFrame.GroupDockSeparatorSize) { // Dock to the right of the group dockDelegate = delegate (DockItem it) { DockTarget (it, dockObjects.Count); }; rect = new Gdk.Rectangle (Allocation.Right - DockFrame.GroupDockSeparatorSize, Allocation.Y, DockFrame.GroupDockSeparatorSize, Allocation.Height); return true; } else if (px <= Allocation.Left + DockFrame.GroupDockSeparatorSize) { // Dock to the left of the group dockDelegate = delegate (DockItem it) { DockTarget (it, 0); }; rect = new Gdk.Rectangle (Allocation.Left, Allocation.Y, DockFrame.GroupDockSeparatorSize, Allocation.Height); return true; } // Dock in a separator for (int n=0; n= ob.Allocation.Right - DockFrame.GroupDockSeparatorSize/2 && px <= ob.Allocation.Right + DockFrame.GroupDockSeparatorSize/2) { int dn = dockObjects.IndexOf (ob); dockDelegate = delegate (DockItem it) { DockTarget (it, dn+1); }; rect = new Gdk.Rectangle (ob.Allocation.Right - DockFrame.GroupDockSeparatorSize/2, Allocation.Y, DockFrame.GroupDockSeparatorSize, Allocation.Height); return true; } else if (ob.GetDockTarget (item, px, py, out dockDelegate, out rect)) return true; } } else if (type == DockGroupType.Vertical) { if (py >= Allocation.Bottom - DockFrame.GroupDockSeparatorSize) { // Dock to the bottom of the group dockDelegate = delegate (DockItem it) { DockTarget (it, dockObjects.Count); }; rect = new Gdk.Rectangle (Allocation.X, Allocation.Bottom - DockFrame.GroupDockSeparatorSize, Allocation.Width, DockFrame.GroupDockSeparatorSize); return true; } else if (py <= Allocation.Top + DockFrame.GroupDockSeparatorSize) { // Dock to the top of the group dockDelegate = delegate (DockItem it) { DockTarget (it, 0); }; rect = new Gdk.Rectangle (Allocation.X, Allocation.Top, Allocation.Width, DockFrame.GroupDockSeparatorSize); return true; } // Dock in a separator for (int n=0; n= ob.Allocation.Bottom - DockFrame.GroupDockSeparatorSize/2 && py <= ob.Allocation.Bottom + DockFrame.GroupDockSeparatorSize/2) { int dn = dockObjects.IndexOf (ob); dockDelegate = delegate (DockItem it) { DockTarget (it, dn+1); }; rect = new Gdk.Rectangle (Allocation.X, ob.Allocation.Bottom - DockFrame.GroupDockSeparatorSize/2, Allocation.Width, DockFrame.GroupDockSeparatorSize); return true; } else if (ob.GetDockTarget (item, px, py, out dockDelegate, out rect)) return true; } } dockDelegate = null; rect = Gdk.Rectangle.Zero; return false; } public void ReplaceItem (DockObject ob1, DockObject ob2) { int i = dockObjects.IndexOf (ob1); dockObjects [i] = ob2; ob2.ParentGroup = this; ob2.ResetDefaultSize (); ob2.Size = ob1.Size; ob2.DefaultSize = ob1.DefaultSize; ob2.AllocSize = ob1.AllocSize; ResetVisibleGroups (); } public override void CopyFrom (DockObject other) { base.CopyFrom (other); DockGroup grp = (DockGroup) other; dockObjects = new List (); foreach (DockObject ob in grp.dockObjects) { DockObject cob = ob.Clone (); cob.ParentGroup = this; dockObjects.Add (cob); } type = grp.type; ResetVisibleGroups (); boundTabStrip = null; tabFocus = null; } internal override bool Visible { get { foreach (DockObject ob in dockObjects) if (ob.Visible) return true; return false; } } internal void Dump () { Dump (0); } internal override void Dump (int ind) { Console.WriteLine (new string (' ', ind) + "Group (" + type + ") size:" + Size + " DefaultSize:" + DefaultSize + " alloc:" + Allocation); foreach (DockObject ob in dockObjects) { ob.Dump (ind + 2); } } internal override void Write (XmlWriter writer) { base.Write (writer); writer.WriteAttributeString ("type", type.ToString ()); if (type == DockGroupType.Tabbed && currentTabPage != -1) writer.WriteAttributeString ("currentTabPage", currentTabPage.ToString ()); foreach (DockObject ob in dockObjects) { if (ob is DockGroupItem) writer.WriteStartElement ("item"); else writer.WriteStartElement ("group"); ob.Write (writer); writer.WriteEndElement (); } } internal override void Read (XmlReader reader) { base.Read (reader); type = (DockGroupType) Enum.Parse (typeof(DockGroupType), reader.GetAttribute ("type")); if (type == DockGroupType.Tabbed) { string s = reader.GetAttribute ("currentTabPage"); if (s != null) currentTabPage = int.Parse (s); } reader.MoveToElement (); if (reader.IsEmptyElement) { reader.Skip (); return; } reader.ReadStartElement (); reader.MoveToContent (); while (reader.NodeType != XmlNodeType.EndElement) { if (reader.NodeType == XmlNodeType.Element) { if (reader.LocalName == "item") { string id = reader.GetAttribute ("id"); DockItem it = Frame.GetItem (id); if (it == null) { it = Frame.AddItem (id); it.IsPositionMarker = true; } DockGroupItem gitem = new DockGroupItem (Frame, it); gitem.Read (reader); AddObject (gitem); reader.MoveToElement (); reader.Skip (); } else if (reader.LocalName == "group") { DockGroup grp = new DockGroup (Frame); grp.Read (reader); AddObject (grp); } } else reader.Skip (); reader.MoveToContent (); } reader.ReadEndElement (); } public bool IsChildNextToMargin (Gtk.PositionType margin, DockObject obj, bool visibleOnly) { if (type == DockGroupType.Tabbed) return true; else if (type == DockGroupType.Horizontal) { if (margin == PositionType.Top || margin == PositionType.Bottom) return true; int i = visibleOnly ? VisibleObjects.IndexOf (obj) : Objects.IndexOf (obj); if (margin == PositionType.Left && i == 0) return true; if (margin == PositionType.Right && i == (visibleOnly ? VisibleObjects.Count - 1 : Objects.Count - 1)) return true; } else if (type == DockGroupType.Vertical) { if (margin == PositionType.Left || margin == PositionType.Right) return true; int i = visibleOnly ? VisibleObjects.IndexOf (obj) : Objects.IndexOf (obj); if (margin == PositionType.Top && i == 0) return true; if (margin == PositionType.Bottom && i == (visibleOnly ? VisibleObjects.Count - 1 : Objects.Count - 1)) return true; } return false; } internal TabStrip TabStrip { get { return boundTabStrip; } } public override string ToString () { return "[DockGroup " + type + "]"; } } } pinta-1.3/Pinta/DockLibrary/DockGroupItem.cs0000664000175000017500000002772211747026475022176 0ustar00cameroncameron00000000000000// // DockGroupItem.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using Gtk; namespace MonoDevelop.Components.Docking { internal class DockGroupItem: DockObject { DockItem item; bool visibleFlag; DockItemStatus status; Gdk.Rectangle floatRect; Gtk.PositionType barDocPosition; int autoHideSize = -1; public DockItem Item { get { return item; } set { item = value; } } public string Id { get { return item.Id; } } public DockGroupItem (DockFrame frame, DockItem item): base (frame) { this.item = item; visibleFlag = item.Visible; } internal override void GetDefaultSize (out int width, out int height) { width = item.DefaultWidth; height = item.DefaultHeight; } internal override void GetMinSize (out int width, out int height) { Requisition req = SizeRequest (); width = req.Width; height = req.Height; } internal override Requisition SizeRequest () { return item.Widget.SizeRequest (); } public override void SizeAllocate (Gdk.Rectangle newAlloc) { item.Widget.SizeAllocate (newAlloc); base.SizeAllocate (newAlloc); } public override bool Expand { get { return item.Expand; } } internal override void QueueResize () { item.Widget.QueueResize (); } internal override bool GetDockTarget (DockItem item, int px, int py, out DockDelegate dockDelegate, out Gdk.Rectangle rect) { return GetDockTarget (item, px, py, Allocation, out dockDelegate, out rect); } public bool GetDockTarget (DockItem item, int px, int py, Gdk.Rectangle rect, out DockDelegate dockDelegate, out Gdk.Rectangle outrect) { dockDelegate = null; if (item != this.item && this.item.Visible && rect.Contains (px, py)) { int xdockMargin = (int) ((double)rect.Width * (1.0 - DockFrame.ItemDockCenterArea)) / 2; int ydockMargin = (int) ((double)rect.Height * (1.0 - DockFrame.ItemDockCenterArea)) / 2; DockPosition pos; /* if (ParentGroup.Type == DockGroupType.Tabbed) { rect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin, rect.Width - xdockMargin*2, rect.Height - ydockMargin*2); pos = DockPosition.CenterAfter; } */ if (px <= rect.X + xdockMargin && ParentGroup.Type != DockGroupType.Horizontal) { outrect = new Gdk.Rectangle (rect.X, rect.Y, xdockMargin, rect.Height); pos = DockPosition.Left; } else if (px >= rect.Right - xdockMargin && ParentGroup.Type != DockGroupType.Horizontal) { outrect = new Gdk.Rectangle (rect.Right - xdockMargin, rect.Y, xdockMargin, rect.Height); pos = DockPosition.Right; } else if (py <= rect.Y + ydockMargin && ParentGroup.Type != DockGroupType.Vertical) { outrect = new Gdk.Rectangle (rect.X, rect.Y, rect.Width, ydockMargin); pos = DockPosition.Top; } else if (py >= rect.Bottom - ydockMargin && ParentGroup.Type != DockGroupType.Vertical) { outrect = new Gdk.Rectangle (rect.X, rect.Bottom - ydockMargin, rect.Width, ydockMargin); pos = DockPosition.Bottom; } else { outrect = new Gdk.Rectangle (rect.X + xdockMargin, rect.Y + ydockMargin, rect.Width - xdockMargin*2, rect.Height - ydockMargin*2); pos = DockPosition.Center; } dockDelegate = delegate (DockItem dit) { DockGroupItem it = ParentGroup.AddObject (dit, pos, Id); it.SetVisible (true); ParentGroup.FocusItem (it); }; return true; } outrect = Gdk.Rectangle.Zero; return false; } internal override void Dump (int ind) { Console.WriteLine (new string (' ', ind) + item.Id + " size:" + Size + " alloc:" + Allocation); } internal override void Write (XmlWriter writer) { base.Write (writer); writer.WriteAttributeString ("id", item.Id); writer.WriteAttributeString ("visible", visibleFlag.ToString ()); writer.WriteAttributeString ("status", status.ToString ()); if (status == DockItemStatus.AutoHide) writer.WriteAttributeString ("autoHidePosition", barDocPosition.ToString ()); if (autoHideSize != -1) writer.WriteAttributeString ("autoHideSize", autoHideSize.ToString ()); if (!floatRect.Equals (Gdk.Rectangle.Zero)) { writer.WriteAttributeString ("floatX", floatRect.X.ToString ()); writer.WriteAttributeString ("floatY", floatRect.Y.ToString ()); writer.WriteAttributeString ("floatWidth", floatRect.Width.ToString ()); writer.WriteAttributeString ("floatHeight", floatRect.Height.ToString ()); } } internal override void Read (XmlReader reader) { base.Read (reader); visibleFlag = bool.Parse (reader.GetAttribute ("visible")) && !item.IsPositionMarker; status = (DockItemStatus) Enum.Parse (typeof (DockItemStatus), reader.GetAttribute ("status")); int fx=0, fy=0, fw=0, fh=0; string s = reader.GetAttribute ("floatX"); if (s != null) fx = int.Parse (s); s = reader.GetAttribute ("floatY"); if (s != null) fy = int.Parse (s); s = reader.GetAttribute ("floatWidth"); if (s != null) fw = int.Parse (s); s = reader.GetAttribute ("floatHeight"); if (s != null) fh = int.Parse (s); s = reader.GetAttribute ("autoHidePosition"); if (s != null) barDocPosition = (PositionType) Enum.Parse (typeof (PositionType), s); s = reader.GetAttribute ("autoHideSize"); if (s != null) autoHideSize = int.Parse (s); floatRect = new Gdk.Rectangle (fx, fy, fw, fh); } public override void CopyFrom (DockObject ob) { base.CopyFrom (ob); DockGroupItem it = (DockGroupItem)ob; item = it.item; visibleFlag = it.visibleFlag; floatRect = it.floatRect; } internal override bool Visible { get { return visibleFlag && status == DockItemStatus.Dockable; } } internal bool VisibleFlag { get { return visibleFlag; } } public DockItemStatus Status { get { return status; } set { if (status == value) return; DockItemStatus oldValue = status; status = value; if (status == DockItemStatus.Floating) { if (floatRect.Equals (Gdk.Rectangle.Zero)) { int x, y; item.Widget.TranslateCoordinates (item.Widget.Toplevel, 0, 0, out x, out y); Gtk.Window win = Frame.Toplevel as Window; if (win != null) { int wx, wy; win.GetPosition (out wx, out wy); floatRect = new Gdk.Rectangle (wx + x, wy + y, Allocation.Width, Allocation.Height); } } item.SetFloatMode (floatRect); } else if (status == DockItemStatus.AutoHide) { SetBarDocPosition (); item.SetAutoHideMode (barDocPosition, GetAutoHideSize (barDocPosition)); } else item.ResetMode (); if (oldValue == DockItemStatus.Dockable || status == DockItemStatus.Dockable) { // Update visibility if changing from/to dockable mode if (ParentGroup != null) ParentGroup.UpdateVisible (this); } } } void SetBarDocPosition () { // Determine the best position for docking the item if (Allocation.IsEmpty) { int uniqueTrue = -1; int uniqueFalse = -1; for (int n=0; n<4; n++) { bool inMargin = IsNextToMargin ((PositionType) n, false); if (inMargin) { if (uniqueTrue == -1) uniqueTrue = n; else uniqueTrue = -2; } else { if (uniqueFalse == -1) uniqueFalse = n; else uniqueFalse = -2; } } if (uniqueTrue >= 0) { barDocPosition = (PositionType) uniqueTrue; autoHideSize = 200; return; } else if (uniqueFalse >= 0) { barDocPosition = (PositionType) uniqueFalse; switch (barDocPosition) { case PositionType.Left: barDocPosition = PositionType.Right; break; case PositionType.Right: barDocPosition = PositionType.Left; break; case PositionType.Top: barDocPosition = PositionType.Bottom; break; case PositionType.Bottom: barDocPosition = PositionType.Top; break; } autoHideSize = 200; return; } // If the item is in a group, use the dock location of other items DockObject current = this; do { if (EstimateBarDocPosition (current.ParentGroup, current, out barDocPosition, out autoHideSize)) return; current = current.ParentGroup; } while (current.ParentGroup != null); // Can't find a good location. Just guess. barDocPosition = PositionType.Bottom; autoHideSize = 200; return; } barDocPosition = CalcBarDocPosition (); } bool EstimateBarDocPosition (DockGroup grp, DockObject ignoreChild, out PositionType pos, out int size) { foreach (DockObject ob in grp.Objects) { if (ob == ignoreChild) continue; if (ob is DockGroup) { if (EstimateBarDocPosition ((DockGroup)ob, null, out pos, out size)) return true; } else if (ob is DockGroupItem) { DockGroupItem it = (DockGroupItem) ob; if (it.status == DockItemStatus.AutoHide) { pos = it.barDocPosition; size = it.autoHideSize; return true; } if (!it.Allocation.IsEmpty) { pos = it.CalcBarDocPosition (); size = it.GetAutoHideSize (pos); return true; } } } pos = PositionType.Bottom; size = 0; return false; } PositionType CalcBarDocPosition () { if (Allocation.Width < Allocation.Height) { int mid = Allocation.Left + Allocation.Width / 2; if (mid > Frame.Allocation.Left + Frame.Allocation.Width / 2) return PositionType.Right; else return PositionType.Left; } else { int mid = Allocation.Top + Allocation.Height / 2; if (mid > Frame.Allocation.Top + Frame.Allocation.Height / 2) return PositionType.Bottom; else return PositionType.Top; } } internal void SetVisible (bool value) { if (visibleFlag != value) { visibleFlag = value; if (visibleFlag) item.ShowWidget (); else item.HideWidget (); if (ParentGroup != null) ParentGroup.UpdateVisible (this); } } internal override void StoreAllocation () { base.StoreAllocation (); if (Status == DockItemStatus.Floating) floatRect = item.FloatingPosition; else if (Status == DockItemStatus.AutoHide) autoHideSize = item.AutoHideSize; } internal override void RestoreAllocation () { base.RestoreAllocation (); item.UpdateVisibleStatus (); if (Status == DockItemStatus.Floating) item.SetFloatMode (floatRect); else if (Status == DockItemStatus.AutoHide) item.SetAutoHideMode (barDocPosition, GetAutoHideSize (barDocPosition)); else item.ResetMode (); if (!visibleFlag) item.HideWidget (); } int GetAutoHideSize (Gtk.PositionType pos) { if (autoHideSize != -1) return autoHideSize; if (pos == PositionType.Left || pos == PositionType.Right) return Allocation.Width; else return Allocation.Height; } public Gdk.Rectangle FloatRect { get { return floatRect; } set { floatRect = value; } } public override string ToString () { return "[DockItem " + Item.Id + "]"; } } } pinta-1.3/Pinta/DockLibrary/DockGroupType.cs0000664000175000017500000000246311747026475022214 0ustar00cameroncameron00000000000000// // DockGroupType.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; namespace MonoDevelop.Components.Docking { enum DockGroupType { Horizontal, Vertical, Tabbed } } pinta-1.3/Pinta/DockLibrary/DockItem.cs0000664000175000017500000002713511747026475021157 0ustar00cameroncameron00000000000000// // DockItem.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using Gtk; using Mono.Unix; namespace MonoDevelop.Components.Docking { public class DockItem { Widget content; DockItemContainer widget; string defaultLocation; bool defaultVisible = true; DockItemStatus defaultStatus = DockItemStatus.Dockable; string id; DockFrame frame; int defaultWidth = -1; int defaultHeight = -1; string label; Gdk.Pixbuf icon; bool expand; bool drawFrame = true; DockItemBehavior behavior; Gtk.Window floatingWindow; DockBarItem dockBarItem; bool lastVisibleStatus; bool lastContentVisibleStatus; bool gettingContent; bool isPositionMarker; bool stickyVisible; IDockItemLabelProvider dockLabelProvider; DockItemToolbar toolbarTop; DockItemToolbar toolbarBottom; DockItemToolbar toolbarLeft; DockItemToolbar toolbarRight; public event EventHandler VisibleChanged; public event EventHandler ContentVisibleChanged; public event EventHandler ContentRequired; internal DockItem (DockFrame frame, string id) { this.frame = frame; this.id = id; } internal DockItem (DockFrame frame, Widget w, string id) { this.frame = frame; this.id = id; content = w; } public string Id { get { return id; } } internal bool StickyVisible { get { return stickyVisible; } set { stickyVisible = value; } } public string Label { get { return label ?? string.Empty; } set { label = value; if (widget != null) widget.Label = label; frame.UpdateTitle (this); if (floatingWindow != null) floatingWindow.Title = GetWindowTitle (); } } public bool Visible { get { return frame.GetVisible (this); } set { stickyVisible = value; frame.SetVisible (this, value); UpdateVisibleStatus (); } } public bool VisibleInLayout (string layout) { return frame.GetVisible (this, layout); } public DockItemStatus Status { get { return frame.GetStatus (this); } set { frame.SetStatus (this, value); } } public IDockItemLabelProvider DockLabelProvider { get { return this.dockLabelProvider; } set { this.dockLabelProvider = value; } } internal DockItemContainer Widget { get { if (widget == null) { widget = new DockItemContainer (frame, this); widget.Visible = false; // Required to ensure that the Shown event is fired widget.Label = label; widget.Shown += SetupContent; } return widget; } } void SetupContent (object ob, EventArgs args) { widget.Shown -= SetupContent; if (ContentRequired != null) { gettingContent = true; try { ContentRequired (this, EventArgs.Empty); } finally { gettingContent = false; } } widget.UpdateContent (); widget.Shown += delegate { UpdateContentVisibleStatus (); }; widget.Hidden += delegate { UpdateContentVisibleStatus (); }; widget.ParentSet += delegate { UpdateContentVisibleStatus (); }; UpdateContentVisibleStatus (); } public Widget Content { get { return content; } set { content = value; if (!gettingContent && widget != null) widget.UpdateContent (); } } public DockItemToolbar GetToolbar (PositionType position) { switch (position) { case PositionType.Top: if (toolbarTop == null) toolbarTop = new DockItemToolbar (this, PositionType.Top); return toolbarTop; case PositionType.Bottom: if (toolbarBottom == null) toolbarBottom = new DockItemToolbar (this, PositionType.Bottom); return toolbarBottom; case PositionType.Left: if (toolbarLeft == null) toolbarLeft = new DockItemToolbar (this, PositionType.Left); return toolbarLeft; case PositionType.Right: if (toolbarRight == null) toolbarRight = new DockItemToolbar (this, PositionType.Right); return toolbarRight; default: throw new ArgumentException (); } } internal bool HasWidget { get { return widget != null; } } public string DefaultLocation { get { return defaultLocation; } set { defaultLocation = value; } } public bool DefaultVisible { get { return defaultVisible; } set { defaultVisible = value; } } public DockItemStatus DefaultStatus { get { return defaultStatus; } set { defaultStatus = value; } } public int DefaultWidth { get { return defaultWidth; } set { defaultWidth = value; } } public int DefaultHeight { get { return defaultHeight; } set { defaultHeight = value; } } public Gdk.Pixbuf Icon { get { return icon; } set { icon = value; } } public DockItemBehavior Behavior { get { return behavior; } set { behavior = value; if (widget != null) widget.UpdateBehavior (); } } public bool Expand { get { return expand; } set { expand = value; } } public bool DrawFrame { get { return drawFrame; } set { drawFrame = value; } } public void Present (bool giveFocus) { if (dockBarItem != null) dockBarItem.Present (Status == DockItemStatus.AutoHide || giveFocus); else frame.Present (this, Status == DockItemStatus.AutoHide || giveFocus); } public bool ContentVisible { get { if (widget == null) return false; return widget.Parent != null && widget.Visible; } } public void SetDockLocation (string location) { frame.SetDockLocation (this, location); } internal void SetFocus () { SetFocus (Content); } internal static void SetFocus (Widget w) { w.ChildFocus (DirectionType.Down); Window win = w.Toplevel as Gtk.Window; if (win == null) return; // Make sure focus is not given to internal children if (win.Focus != null) { Container c = win.Focus.Parent as Container; if (c.Children.Length == 0) win.Focus = c; } } internal void UpdateVisibleStatus () { bool vis = frame.GetVisible (this); if (vis != lastVisibleStatus) { lastVisibleStatus = vis; if (VisibleChanged != null) VisibleChanged (this, EventArgs.Empty); } UpdateContentVisibleStatus (); } internal void UpdateContentVisibleStatus () { bool vis = ContentVisible; if (vis != lastContentVisibleStatus) { lastContentVisibleStatus = vis; if (ContentVisibleChanged != null) ContentVisibleChanged (this, EventArgs.Empty); } } internal void ShowWidget () { if (floatingWindow != null) floatingWindow.Show (); if (dockBarItem != null) dockBarItem.Show (); Widget.Show (); } internal void HideWidget () { if (floatingWindow != null) floatingWindow.Hide (); else if (dockBarItem != null) dockBarItem.Hide (); else if (widget != null) widget.Hide (); } internal void SetFloatMode (Gdk.Rectangle rect) { ResetBarUndockMode (); if (floatingWindow == null) { if (Widget.Parent != null) Widget.Unparent (); floatingWindow = new Window (GetWindowTitle ()); floatingWindow.TransientFor = frame.Toplevel as Gtk.Window; floatingWindow.TypeHint = Gdk.WindowTypeHint.Utility; floatingWindow.Add (Widget); floatingWindow.DeleteEvent += delegate (object o, DeleteEventArgs a) { if (behavior == DockItemBehavior.CantClose) Status = DockItemStatus.Dockable; else Visible = false; a.RetVal = true; }; } floatingWindow.Move (rect.X, rect.Y); floatingWindow.Resize (rect.Width, rect.Height); floatingWindow.Show (); Widget.UpdateBehavior (); Widget.Show (); } internal void ResetFloatMode () { if (floatingWindow != null) { floatingWindow.Remove (Widget); floatingWindow.Destroy (); floatingWindow = null; widget.UpdateBehavior (); } } internal Gdk.Rectangle FloatingPosition { get { if (floatingWindow != null) { int x,y,w,h; floatingWindow.GetPosition (out x, out y); floatingWindow.GetSize (out w, out h); return new Gdk.Rectangle (x,y,w,h); } else return Gdk.Rectangle.Zero; } } internal void ResetMode () { ResetFloatMode (); ResetBarUndockMode (); } internal void SetAutoHideMode (Gtk.PositionType pos, int size) { ResetMode (); if (widget != null) { widget.Hide (); // Avoids size allocation warning widget.Unparent (); } dockBarItem = frame.BarDock (pos, this, size); if (widget != null) widget.UpdateBehavior (); } void ResetBarUndockMode () { if (dockBarItem != null) { dockBarItem.Close (); dockBarItem = null; if (widget != null) widget.UpdateBehavior (); } } internal int AutoHideSize { get { if (dockBarItem != null) return dockBarItem.Size; else return -1; } } internal bool IsPositionMarker { get { return isPositionMarker; } set { isPositionMarker = value; } } string GetWindowTitle () { if (Label.IndexOf ('<') == -1) return Label; try { XmlDocument doc = new XmlDocument (); doc.LoadXml ("" + Label + ""); return doc.InnerText; } catch { return label; } } internal void ShowDockPopupMenu (uint time) { Menu menu = new Menu (); // Hide menuitem if ((Behavior & DockItemBehavior.CantClose) == 0) { MenuItem mitem = new MenuItem (Catalog.GetString("Hide")); mitem.Activated += delegate { Visible = false; }; menu.Append (mitem); } CheckMenuItem citem; // Dockable menuitem citem = new CheckMenuItem (Catalog.GetString("Dockable")); citem.Active = Status == DockItemStatus.Dockable; citem.DrawAsRadio = true; citem.Toggled += delegate { Status = DockItemStatus.Dockable; }; menu.Append (citem); // Floating menuitem if ((Behavior & DockItemBehavior.NeverFloating) == 0) { citem = new CheckMenuItem (Catalog.GetString("Floating")); citem.Active = Status == DockItemStatus.Floating; citem.DrawAsRadio = true; citem.Toggled += delegate { Status = DockItemStatus.Floating; }; menu.Append (citem); } // Auto Hide menuitem if ((Behavior & DockItemBehavior.CantAutoHide) == 0) { citem = new CheckMenuItem (Catalog.GetString("Auto Hide")); citem.Active = Status == DockItemStatus.AutoHide; citem.DrawAsRadio = true; citem.Toggled += delegate { Status = DockItemStatus.AutoHide; }; menu.Append (citem); } menu.ShowAll (); menu.Popup (null, null, null, 3, time); } } public interface IDockItemLabelProvider { Gtk.Widget CreateLabel (Orientation orientation); } } pinta-1.3/Pinta/DockLibrary/DockItemBehavior.cs0000664000175000017500000000302211747026475022624 0ustar00cameroncameron00000000000000// // DockItemBehavior.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; namespace MonoDevelop.Components.Docking { [Flags] public enum DockItemBehavior { Normal, NeverFloating = 1 << 0, NeverVertical = 1 << 1, NeverHorizontal = 1 << 2, CantClose = 1 << 3, CantAutoHide = 1 << 4, NoGrip = 1 << 5, Sticky = 1 << 6, // Visibility is the same for al layouts Locked = NoGrip, } } pinta-1.3/Pinta/DockLibrary/DockItemContainer.cs0000664000175000017500000003062111747026475023014 0ustar00cameroncameron00000000000000// // DockItemContainer.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gtk; using Mono.Unix; namespace MonoDevelop.Components.Docking { class DockItemContainer: VBox { static Gdk.Pixbuf pixClose; static Gdk.Pixbuf pixAutoHide; static Gdk.Pixbuf pixDock; Gtk.Label title; Gtk.Button btnClose; Gtk.Button btnDock; string txt; Gtk.EventBox header; Gtk.Alignment headerAlign; DockFrame frame; DockItem item; Widget widget; Container borderFrame; bool allowPlaceholderDocking; bool pointerHover; Box contentBox; static Gdk.Cursor fleurCursor = new Gdk.Cursor (Gdk.CursorType.Fleur); static Gdk.Cursor handCursor = new Gdk.Cursor (Gdk.CursorType.Hand2); static DockItemContainer () { try { pixClose = Gdk.Pixbuf.LoadFromResource ("stock-close-12.png"); pixAutoHide = Gdk.Pixbuf.LoadFromResource ("stock-auto-hide.png"); pixDock = Gdk.Pixbuf.LoadFromResource ("stock-dock.png"); } catch (Exception) { } } public DockItemContainer (DockFrame frame, DockItem item) { this.frame = frame; this.item = item; ResizeMode = Gtk.ResizeMode.Queue; Spacing = 0; title = new Gtk.Label (); title.Xalign = 0; title.Xpad = 3; title.UseMarkup = true; title.Ellipsize = Pango.EllipsizeMode.End; btnDock = new Button (new Gtk.Image (pixAutoHide)); btnDock.Relief = ReliefStyle.None; btnDock.CanFocus = false; btnDock.WidthRequest = btnDock.HeightRequest = 17; btnDock.Clicked += OnClickDock; btnClose = new Button (new Gtk.Image (pixClose)); btnClose.TooltipText = Catalog.GetString ("Hide"); btnClose.Relief = ReliefStyle.None; btnClose.CanFocus = false; btnClose.WidthRequest = btnClose.HeightRequest = 17; btnClose.Clicked += delegate { item.Visible = false; }; HBox box = new HBox (false, 0); box.PackStart (title, true, true, 0); box.PackEnd (btnClose, false, false, 0); box.PackEnd (btnDock, false, false, 0); headerAlign = new Alignment (0.0f, 0.0f, 1.0f, 1.0f); headerAlign.TopPadding = headerAlign.BottomPadding = headerAlign.RightPadding = headerAlign.LeftPadding = 1; headerAlign.Add (box); header = new EventBox (); header.Events |= Gdk.EventMask.KeyPressMask | Gdk.EventMask.KeyReleaseMask; header.ButtonPressEvent += HeaderButtonPress; header.ButtonReleaseEvent += HeaderButtonRelease; header.MotionNotifyEvent += HeaderMotion; header.KeyPressEvent += HeaderKeyPress; header.KeyReleaseEvent += HeaderKeyRelease; header.Add (headerAlign); header.ExposeEvent += HeaderExpose; header.Realized += delegate { header.GdkWindow.Cursor = handCursor; }; foreach (Widget w in new Widget [] { header, btnDock, btnClose }) { w.EnterNotifyEvent += HeaderEnterNotify; w.LeaveNotifyEvent += HeaderLeaveNotify; } PackStart (header, false, false, 0); ShowAll (); PackStart (item.GetToolbar (PositionType.Top).Container, false, false, 0); HBox hbox = new HBox (); hbox.Show (); hbox.PackStart (item.GetToolbar (PositionType.Left).Container, false, false, 0); contentBox = new HBox (); contentBox.Show (); hbox.PackStart (contentBox, true, true, 0); hbox.PackStart (item.GetToolbar (PositionType.Right).Container, false, false, 0); PackStart (hbox, true, true, 0); PackStart (item.GetToolbar (PositionType.Bottom).Container, false, false, 0); UpdateBehavior (); } void OnClickDock (object s, EventArgs a) { if (item.Status == DockItemStatus.AutoHide || item.Status == DockItemStatus.Floating) item.Status = DockItemStatus.Dockable; else item.Status = DockItemStatus.AutoHide; } public void UpdateContent () { if (widget != null) ((Gtk.Container)widget.Parent).Remove (widget); widget = item.Content; if (item.DrawFrame) { if (borderFrame == null) { borderFrame = new CustomFrame (1, 1, 1, 1); borderFrame.Show (); contentBox.Add (borderFrame); } if (widget != null) { borderFrame.Add (widget); widget.Show (); } } else if (widget != null) { if (borderFrame != null) { contentBox.Remove (borderFrame); borderFrame = null; } contentBox.Add (widget); widget.Show (); } } public void UpdateBehavior () { btnClose.Visible = (item.Behavior & DockItemBehavior.CantClose) == 0; header.Visible = (item.Behavior & DockItemBehavior.Locked) == 0; btnDock.Visible = (item.Behavior & DockItemBehavior.CantAutoHide) == 0; if (item.Status == DockItemStatus.AutoHide || item.Status == DockItemStatus.Floating) { btnDock.Image = new Gtk.Image (pixDock); btnDock.TooltipText = Catalog.GetString ("Dock"); } else { btnDock.Image = new Gtk.Image (pixAutoHide); btnDock.TooltipText = Catalog.GetString ("Auto Hide"); } } void HeaderButtonPress (object ob, Gtk.ButtonPressEventArgs args) { if (args.Event.Button == 1) { frame.ShowPlaceholder (); header.GdkWindow.Cursor = fleurCursor; frame.Toplevel.KeyPressEvent += HeaderKeyPress; frame.Toplevel.KeyReleaseEvent += HeaderKeyRelease; allowPlaceholderDocking = true; } else if (args.Event.Button == 3) { item.ShowDockPopupMenu (args.Event.Time); } } void HeaderButtonRelease (object ob, Gtk.ButtonReleaseEventArgs args) { if (args.Event.Button == 1) { frame.DockInPlaceholder (item); frame.HidePlaceholder (); if (header.GdkWindow != null) header.GdkWindow.Cursor = handCursor; frame.Toplevel.KeyPressEvent -= HeaderKeyPress; frame.Toplevel.KeyReleaseEvent -= HeaderKeyRelease; } } void HeaderMotion (object ob, Gtk.MotionNotifyEventArgs args) { frame.UpdatePlaceholder (item, Allocation.Size, allowPlaceholderDocking); } [GLib.ConnectBeforeAttribute] void HeaderKeyPress (object ob, Gtk.KeyPressEventArgs a) { if (a.Event.Key == Gdk.Key.Control_L || a.Event.Key == Gdk.Key.Control_R) { allowPlaceholderDocking = false; frame.UpdatePlaceholder (item, Allocation.Size, false); } if (a.Event.Key == Gdk.Key.Escape) { frame.HidePlaceholder (); frame.Toplevel.KeyPressEvent -= HeaderKeyPress; frame.Toplevel.KeyReleaseEvent -= HeaderKeyRelease; Gdk.Pointer.Ungrab (0); } } [GLib.ConnectBeforeAttribute] void HeaderKeyRelease (object ob, Gtk.KeyReleaseEventArgs a) { if (a.Event.Key == Gdk.Key.Control_L || a.Event.Key == Gdk.Key.Control_R) { allowPlaceholderDocking = true; frame.UpdatePlaceholder (item, Allocation.Size, true); } } private void HeaderExpose (object ob, Gtk.ExposeEventArgs a) { Gdk.Rectangle rect = new Gdk.Rectangle (0, 0, header.Allocation.Width - 1, header.Allocation.Height); HslColor gcol = frame.Style.Background (Gtk.StateType.Normal); if (pointerHover) gcol.L *= 1.05; gcol.L = Math.Min (1, gcol.L); using (Cairo.Context cr = Gdk.CairoHelper.Create (a.Event.Window)) { cr.NewPath (); cr.MoveTo (0, 0); cr.RelLineTo (rect.Width, 0); cr.RelLineTo (0, rect.Height); cr.RelLineTo (-rect.Width, 0); cr.RelLineTo (0, -rect.Height); cr.ClosePath (); Cairo.SolidPattern solidPattern = new Cairo.SolidPattern (gcol); cr.Pattern = solidPattern; cr.FillPreserve (); solidPattern.Destroy (); } header.GdkWindow.DrawRectangle (frame.Style.DarkGC (Gtk.StateType.Normal), false, rect); foreach (Widget child in header.Children) header.PropagateExpose (child, a.Event); } private void HeaderLeaveNotify (object ob, EventArgs a) { pointerHover = false; header.QueueDraw (); } private void HeaderEnterNotify (object ob, EventArgs a) { pointerHover = true; header.QueueDraw (); } public string Label { get { return txt; } set { title.Markup = "" + value + ""; txt = value; } } } class CustomFrame: Bin { Gtk.Widget child; int topMargin; int bottomMargin; int leftMargin; int rightMargin; int topPadding; int bottomPadding; int leftPadding; int rightPadding; public CustomFrame () { } public CustomFrame (int topMargin, int bottomMargin, int leftMargin, int rightMargin) { SetMargins (topMargin, bottomMargin, leftMargin, rightMargin); } public void SetMargins (int topMargin, int bottomMargin, int leftMargin, int rightMargin) { this.topMargin = topMargin; this.bottomMargin = bottomMargin; this.leftMargin = leftMargin; this.rightMargin = rightMargin; } public void SetPadding (int topPadding, int bottomPadding, int leftPadding, int rightPadding) { this.topPadding = topPadding; this.bottomPadding = bottomPadding; this.leftPadding = leftPadding; this.rightPadding = rightPadding; } public bool GradientBackround { get; set; } protected override void OnAdded (Widget widget) { base.OnAdded (widget); child = widget; } protected override void OnSizeRequested (ref Requisition requisition) { if (child != null) { requisition = child.SizeRequest (); requisition.Width += leftMargin + rightMargin + leftPadding + rightPadding; requisition.Height += topMargin + bottomMargin + topPadding + bottomPadding; } else { requisition.Width = 0; requisition.Height = 0; } } protected override void OnSizeAllocated (Gdk.Rectangle allocation) { base.OnSizeAllocated (allocation); if (allocation.Width > leftMargin + rightMargin + leftPadding + rightPadding) { allocation.X += leftMargin + leftPadding; allocation.Width -= leftMargin + rightMargin + leftPadding + rightPadding; } if (allocation.Height > topMargin + bottomMargin + topPadding + bottomPadding) { allocation.Y += topMargin + topPadding; allocation.Height -= topMargin + bottomMargin + topPadding + bottomPadding; } if (child != null) child.SizeAllocate (allocation); } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { Gdk.Rectangle rect; if (GradientBackround) { rect = new Gdk.Rectangle (Allocation.X, Allocation.Y, Allocation.Width, Allocation.Height); HslColor gcol = Style.Background (Gtk.StateType.Normal); using (Cairo.Context cr = Gdk.CairoHelper.Create (GdkWindow)) { cr.NewPath (); cr.MoveTo (rect.X, rect.Y); cr.RelLineTo (rect.Width, 0); cr.RelLineTo (0, rect.Height); cr.RelLineTo (-rect.Width, 0); cr.RelLineTo (0, -rect.Height); cr.ClosePath (); Cairo.Gradient pat = new Cairo.LinearGradient (rect.X, rect.Y, rect.X, rect.Bottom); Cairo.Color color1 = gcol; pat.AddColorStop (0, color1); gcol.L -= 0.1; if (gcol.L < 0) gcol.L = 0; pat.AddColorStop (1, gcol); cr.Pattern = pat; cr.FillPreserve (); } } bool res = base.OnExposeEvent (evnt); Gdk.GC borderColor = Style.DarkGC (Gtk.StateType.Normal); rect = Allocation; for (int n=0; n // // Copyright (c) 2010 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace MonoDevelop.Components.Docking { public class DockItemToolbar { DockItem parentItem; CustomFrame frame; Box box; PositionType position; bool empty = true; internal DockItemToolbar (DockItem parentItem, PositionType position) { this.parentItem = parentItem; frame = new CustomFrame (); switch (position) { case PositionType.Top: frame.SetMargins (0, 0, 1, 1); frame.SetPadding (0, 2, 2, 0); break; case PositionType.Bottom: frame.SetMargins (0, 1, 1, 1); frame.SetPadding (2, 2, 2, 0); break; case PositionType.Left: frame.SetMargins (0, 1, 1, 0); frame.SetPadding (0, 0, 2, 2); break; case PositionType.Right: frame.SetMargins (0, 1, 0, 1); frame.SetPadding (0, 0, 2, 2); break; } this.position = position; if (position == PositionType.Top || position == PositionType.Bottom) box = new HBox (false, 3); else box = new VBox (false, 3); box.Show (); frame.Add (box); frame.GradientBackround = true; } public DockItem DockItem { get { return parentItem; } } internal Widget Container { get { return frame; } } public PositionType Position { get { return this.position; } } public void Add (Widget widget) { Add (widget, false); } public void Add (Widget widget, bool fill) { Add (widget, fill, -1); } public void Add (Widget widget, bool fill, int padding) { Add (widget, fill, padding, -1); } void Add (Widget widget, bool fill, int padding, int index) { int defaultPadding = 3; if (widget is Button) { ((Button)widget).Relief = ReliefStyle.None; ((Button)widget).FocusOnClick = false; defaultPadding = 0; } else if (widget is Entry) { ((Entry)widget).HasFrame = false; } else if (widget is ComboBox) { ((ComboBox)widget).HasFrame = false; } else if (widget is VSeparator) ((VSeparator)widget).HeightRequest = 10; if (padding == -1) padding = defaultPadding; box.PackStart (widget, fill, fill, (uint)padding); if (empty) { empty = false; frame.Show (); } if (index != -1) { Box.BoxChild bc = (Box.BoxChild) box [widget]; bc.Position = index; } } public void Insert (Widget w, int index) { Add (w, false, 0, index); } public void Remove (Widget widget) { box.Remove (widget); } public bool Visible { get { return empty || frame.Visible; } set { frame.Visible = value; } } public bool Sensitive { get { return frame.Sensitive; } set { frame.Sensitive = value; } } public void ShowAll () { frame.ShowAll (); } public Widget[] Children { get { return box.Children; } } } public class DockToolButton: Gtk.Button { public DockToolButton (string stockId) { Image = new Gtk.Image (stockId, IconSize.Menu); Image.Show (); } public DockToolButton (string stockId, string label) { Label = label; Image = new Gtk.Image (stockId, IconSize.Menu); Image.Show (); } } } pinta-1.3/Pinta/DockLibrary/DockLayout.cs0000664000175000017500000000546711747026475021542 0ustar00cameroncameron00000000000000// // MonoDevelop.Components.Docking.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using System.Collections.Generic; namespace MonoDevelop.Components.Docking { class DockLayout: DockGroup { string name; int layoutWidth = 1024; int layoutHeight = 768; public DockLayout (DockFrame frame): base (frame, DockGroupType.Horizontal) { } public string Name { get { return name; } set { name = value; } } internal override void Write (XmlWriter writer) { writer.WriteStartElement ("layout"); writer.WriteAttributeString ("name", name); writer.WriteAttributeString ("width", layoutWidth.ToString ()); writer.WriteAttributeString ("height", layoutHeight.ToString ()); base.Write (writer); writer.WriteEndElement (); } internal override void Read (XmlReader reader) { name = reader.GetAttribute ("name"); string s = reader.GetAttribute ("width"); if (s != null) layoutWidth = int.Parse (s); s = reader.GetAttribute ("height"); if (s != null) layoutHeight = int.Parse (s); base.Read (reader); } public static DockLayout Read (DockFrame frame, XmlReader reader) { DockLayout layout = new DockLayout (frame); layout.Read (reader); return layout; } public override void SizeAllocate (Gdk.Rectangle rect) { Size = rect.Width; base.SizeAllocate (rect); } internal override void StoreAllocation () { base.StoreAllocation (); layoutWidth = Allocation.Width; layoutHeight = Allocation.Height; } internal override void RestoreAllocation () { Allocation = new Gdk.Rectangle (0, 0, layoutWidth, layoutHeight); base.RestoreAllocation (); } } } pinta-1.3/Pinta/DockLibrary/DockObject.cs0000664000175000017500000001640211747026475021462 0ustar00cameroncameron00000000000000// // DockObject.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using System.Xml; using Gtk; using System.Globalization; namespace MonoDevelop.Components.Docking { internal abstract class DockObject { DockGroup parentGroup; DockFrame frame; Gdk.Rectangle rect; // The current size in pixels of this item double size = -1; // The current size in pixels of this item, but as an integer. // In general it is the same value as size, but it may change a bit due to rounding. int allocSize = -1; double defaultHorSize = -1; double defaultVerSize = -1; double prefSize = 0; // Those are the last known coordinates of the item. They are stored in StoreAllocation // and restored to rect in RestoreAllocation. This is needed for example when a layout // is cloned. It is convenient to have allocation information in the cloned layout, even // if the layout has never been displayed (e.g., to decide the autohide dock location) int ax=-1, ay=-1; public DockObject (DockFrame frame) { this.frame = frame; } internal DockGroup ParentGroup { get { return parentGroup; } set { parentGroup = value; if (size < 0) size = prefSize = DefaultSize; } } public double Size { get { return size; } set { size = value; } } public bool HasAllocatedSize { get { return allocSize != -1; } } public double DefaultSize { get { if (defaultHorSize < 0) InitDefaultSizes (); if (parentGroup != null) { if (parentGroup.Type == DockGroupType.Horizontal) return defaultHorSize; else if (parentGroup.Type == DockGroupType.Vertical) return defaultVerSize; } return 0; } set { if (parentGroup != null) { if (parentGroup.Type == DockGroupType.Horizontal) defaultHorSize = value; else if (parentGroup.Type == DockGroupType.Vertical) defaultVerSize = value; } } } internal void ResetDefaultSize () { defaultHorSize = -1; defaultVerSize = -1; } public int MinSize { get { int w,h; GetMinSize (out w, out h); if (parentGroup != null) { if (parentGroup.Type == DockGroupType.Horizontal) return w; else if (parentGroup.Type == DockGroupType.Vertical) return h; } return w; } } public abstract bool Expand { get; } public virtual void SizeAllocate (Gdk.Rectangle rect) { this.rect = rect; } internal Gdk.Rectangle Allocation { get { return rect; } set { rect = value; } } public int AllocSize { get { return allocSize; } set { allocSize = value; } } public MonoDevelop.Components.Docking.DockFrame Frame { get { return frame; } } public double PrefSize { get { return prefSize; } set { prefSize = value; } } void InitDefaultSizes () { int width, height; GetDefaultSize (out width, out height); if (width == -1) width = frame.DefaultItemWidth; if (height == -1) height = frame.DefaultItemHeight; defaultHorSize = (double) width; defaultVerSize = (double) height; } internal virtual void GetDefaultSize (out int width, out int height) { width = -1; height = -1; } internal virtual void GetMinSize (out int width, out int height) { width = 0; height = 0; } internal abstract void QueueResize (); internal abstract bool GetDockTarget (DockItem item, int px, int py, out DockDelegate dockDelegate, out Gdk.Rectangle rect); internal abstract Gtk.Requisition SizeRequest (); internal abstract bool Visible { get; } internal abstract void Dump (int ind); internal virtual void RestoreAllocation () { if (parentGroup != null) { int x = ax != -1 ? ax : 0; int y = ay != -1 ? ay : 0; if (parentGroup.Type == DockGroupType.Horizontal) rect = new Gdk.Rectangle (x, y, (int)size, parentGroup.Allocation.Height); else if (parentGroup.Type == DockGroupType.Vertical) rect = new Gdk.Rectangle (x, y, parentGroup.Allocation.Width, (int)size); } } internal virtual void StoreAllocation () { if (Visible) { if (parentGroup == null || parentGroup.Type == DockGroupType.Horizontal) size = prefSize = (int) rect.Width; else if (parentGroup.Type == DockGroupType.Vertical) size = prefSize = (int) rect.Height; ax = Allocation.X; ay = Allocation.Y; } } internal virtual void Write (XmlWriter writer) { writer.WriteAttributeString ("size", size.ToString (CultureInfo.InvariantCulture)); writer.WriteAttributeString ("prefSize", prefSize.ToString (CultureInfo.InvariantCulture)); writer.WriteAttributeString ("defaultHorSize", defaultHorSize.ToString (CultureInfo.InvariantCulture)); writer.WriteAttributeString ("defaultVerSize", defaultVerSize.ToString (CultureInfo.InvariantCulture)); } internal virtual void Read (XmlReader reader) { size = double.Parse (reader.GetAttribute ("size"), CultureInfo.InvariantCulture); prefSize = double.Parse (reader.GetAttribute ("prefSize"), CultureInfo.InvariantCulture); defaultHorSize = double.Parse (reader.GetAttribute ("defaultHorSize"), CultureInfo.InvariantCulture); defaultVerSize = double.Parse (reader.GetAttribute ("defaultVerSize"), CultureInfo.InvariantCulture); } public virtual void CopyFrom (DockObject ob) { parentGroup = null; frame = ob.frame; rect = ob.rect; size = ob.size; allocSize = ob.allocSize; defaultHorSize = ob.defaultHorSize; defaultVerSize = ob.defaultVerSize; prefSize = ob.prefSize; } public DockObject Clone () { DockObject ob = (DockObject) this.MemberwiseClone (); ob.CopyFrom (this); return ob; } public virtual void CopySizeFrom (DockObject obj) { size = obj.size; allocSize = obj.allocSize; defaultHorSize = obj.defaultHorSize; defaultVerSize = obj.defaultVerSize; prefSize = obj.prefSize; } public virtual bool IsNextToMargin (Gtk.PositionType margin, bool visibleOnly) { if (ParentGroup == null) return true; if (!ParentGroup.IsNextToMargin (margin, visibleOnly)) return false; return ParentGroup.IsChildNextToMargin (margin, this, visibleOnly); } } } pinta-1.3/Pinta/DockLibrary/DockPosition.cs0000664000175000017500000000251211747026475022055 0ustar00cameroncameron00000000000000// // DockPosition.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; namespace MonoDevelop.Components.Docking { enum DockPosition { Left, Right, Top, Bottom, Center, CenterBefore } } pinta-1.3/Pinta/DockLibrary/HslColor.cs0000664000175000017500000001012611747026475021175 0ustar00cameroncameron00000000000000// // HslColor.cs // // Author: // Mike Krüger // // Copyright (c) 2009 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; using Pinta.Core; namespace MonoDevelop.Components { public struct HslColor { public double H { get; set; } public double S { get; set; } public double L { get; set; } static Gdk.Color black = new Gdk.Color (0, 0, 0); public static implicit operator Color (HslColor hsl) { if (hsl.L > 1) hsl.L = 1; if (hsl.L < 0) hsl.L = 0; if (hsl.H > 1) hsl.H = 1; if (hsl.H < 0) hsl.H = 0; if (hsl.S > 1) hsl.S = 1; if (hsl.S < 0) hsl.S = 0; double r = 0, g = 0, b = 0; if (hsl.L == 0) return black; if (hsl.S == 0) { r = g = b = hsl.L; } else { double temp2 = hsl.L <= 0.5 ? hsl.L * (1.0 + hsl.S) : hsl.L + hsl.S -(hsl.L * hsl.S); double temp1 = 2.0 * hsl.L - temp2; double[] t3 = new double[] { hsl.H + 1.0 / 3.0, hsl.H, hsl.H - 1.0 / 3.0}; double[] clr= new double[] { 0, 0, 0}; for (int i = 0; i < 3; i++) { if (t3[i] < 0) t3[i] += 1.0; if (t3[i] > 1) t3[i]-=1.0; if (6.0 * t3[i] < 1.0) clr[i] = temp1 + (temp2 - temp1) * t3[i] * 6.0; else if (2.0 * t3[i] < 1.0) clr[i] = temp2; else if (3.0 * t3[i] < 2.0) clr[i] = (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - t3[i]) * 6.0); else clr[i] = temp1; } r = clr[0]; g = clr[1]; b = clr[2]; } return new Color ((byte)(255 * r), (byte)(255 * g), (byte)(255 * b)); } public static implicit operator Cairo.Color (HslColor hsl) { return ((Gdk.Color)hsl).ToCairoColor (); } public static implicit operator HslColor (Color color) { return new HslColor (color); } public HslColor (Color color) : this () { double r = color.Red / (double)ushort.MaxValue; double g = color.Green / (double)ushort.MaxValue; double b = color.Blue / (double)ushort.MaxValue; double v = System.Math.Max (r, g); v = System.Math.Max (v, b); double m = System.Math.Min (r, g); m = System.Math.Min (m, b); this.L = (m + v) / 2.0; if (this.L <= 0.0) return; double vm = v - m; this.S = vm; if (this.S > 0.0) { this.S /= (this.L <= 0.5) ? (v + m) : (2.0 - v - m); } else { return; } double r2 = (v - r) / vm; double g2 = (v - g) / vm; double b2 = (v - b) / vm; if (r == v) { this.H = (g == m ? 5.0 + b2 : 1.0 - g2); } else if (g == v) { this.H = (b == m ? 1.0 + r2 : 3.0 - b2); } else { this.H = (r == m ? 3.0 + g2 : 5.0 - r2); } this.H /= 6.0; } public static double Brightness (Gdk.Color c) { double r = c.Red / (double)ushort.MaxValue; double g = c.Green / (double)ushort.MaxValue; double b = c.Blue / (double)ushort.MaxValue; return System.Math.Sqrt (r * .241 + g * .691 + b * .068); } public override string ToString () { return string.Format ("[HslColor: H={0}, S={1}, L={2}]", H, S, L); } } } pinta-1.3/Pinta/DockLibrary/PlaceholderWindow.cs0000664000175000017500000000720111747026475023062 0ustar00cameroncameron00000000000000// // PlaceholderWindow.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; using Gdk; using Gtk; namespace MonoDevelop.Components.Docking { internal class PlaceholderWindow: Gtk.Window { Gdk.GC redgc; uint anim; int rx, ry, rw, rh; bool allowDocking; public bool AllowDocking { get { return allowDocking; } set { allowDocking = value; } } public PlaceholderWindow (DockFrame frame): base (Gtk.WindowType.Popup) { SkipTaskbarHint = true; Decorated = false; TransientFor = (Gtk.Window) frame.Toplevel; TypeHint = WindowTypeHint.Utility; // Create the mask for the arrow Realize (); redgc = new Gdk.GC (GdkWindow); redgc.RgbFgColor = frame.Style.Background (StateType.Selected); } void CreateShape (int width, int height) { Gdk.Color black, white; black = new Gdk.Color (0, 0, 0); black.Pixel = 1; white = new Gdk.Color (255, 255, 255); white.Pixel = 0; Gdk.Pixmap pm = new Pixmap (this.GdkWindow, width, height, 1); Gdk.GC gc = new Gdk.GC (pm); gc.Background = white; gc.Foreground = white; pm.DrawRectangle (gc, true, 0, 0, width, height); gc.Foreground = black; pm.DrawRectangle (gc, false, 0, 0, width - 1, height - 1); pm.DrawRectangle (gc, false, 1, 1, width - 3, height - 3); this.ShapeCombineMask (pm, 0, 0); } protected override void OnSizeAllocated (Rectangle allocation) { base.OnSizeAllocated (allocation); CreateShape (allocation.Width, allocation.Height); } protected override bool OnExposeEvent (Gdk.EventExpose args) { //base.OnExposeEvent (args); int w, h; this.GetSize (out w, out h); this.GdkWindow.DrawRectangle (redgc, false, 0, 0, w-1, h-1); this.GdkWindow.DrawRectangle (redgc, false, 1, 1, w-3, h-3); return true; } public void Relocate (int x, int y, int w, int h, bool animate) { if (x != rx || y != ry || w != rw || h != rh) { Move (x, y); Resize (w, h); rx = x; ry = y; rw = w; rh = h; if (anim != 0) { GLib.Source.Remove (anim); anim = 0; } if (animate && w < 150 && h < 150) { int sa = 7; Move (rx-sa, ry-sa); Resize (rw+sa*2, rh+sa*2); anim = GLib.Timeout.Add (10, RunAnimation); } } } bool RunAnimation () { int cx, cy, ch, cw; GetSize (out cw, out ch); GetPosition (out cx, out cy); if (cx != rx) { cx++; cy++; ch-=2; cw-=2; Move (cx, cy); Resize (cw, ch); return true; } anim = 0; return false; } } } pinta-1.3/Pinta/DockLibrary/ShadedContainer.cs0000664000175000017500000002275711747026475022520 0ustar00cameroncameron00000000000000// // ShadedContainer.cs // // Author: // Lluis Sanchez Gual // // Copyright (c) 2010 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Gtk; using MonoDevelop.Components; using Pinta.Core; namespace MonoDevelop.Components.Docking { public class ShadedContainer { struct Section { public int Offset; public int Size; } Gdk.Color lightColor; Gdk.Color darkColor; int shadowSize = 2; List widgets = new List (); Dictionary allocations = new Dictionary (); public ShadedContainer () { } public int ShadowSize { get { return this.shadowSize; } set { this.shadowSize = value; RedrawAll (); } } public Gdk.Color LightColor { get { return this.lightColor; } set { this.lightColor = value; RedrawAll (); } } public Gdk.Color DarkColor { get { return this.darkColor; } set { this.darkColor = value; RedrawAll (); } } public void Add (Gtk.Widget w) { widgets.Add (w); UpdateAllocation (w); w.Destroyed += HandleWDestroyed; w.Shown += HandleWShown; w.Hidden += HandleWHidden; w.SizeAllocated += HandleWSizeAllocated; w.Realized += HandleWRealized; IShadedWidget sw = w as IShadedWidget; if (sw != null) sw.AreasChanged += HandleSwAreasChanged; RedrawAll (); } public void Remove (Widget w) { widgets.Remove (w); allocations.Remove (w); w.Destroyed -= HandleWDestroyed; w.Shown -= HandleWShown; w.Hidden -= HandleWHidden; w.Realized -= HandleWRealized; IShadedWidget sw = w as IShadedWidget; if (sw != null) sw.AreasChanged -= HandleSwAreasChanged; RedrawAll (); } bool UpdateAllocation (Widget w) { if (w.IsRealized) { IShadedWidget sw = w as IShadedWidget; Gdk.Rectangle[] newAllocations; if (sw != null) { List rects = new List (); foreach (Gdk.Rectangle ar in sw.GetShadedAreas ()) rects.Add (ar); newAllocations = rects.ToArray (); } else { newAllocations = new Gdk.Rectangle [] { w.Allocation }; } Gdk.Rectangle[] oldAllocations; if (allocations.TryGetValue (w, out oldAllocations)) { if (oldAllocations.Length == newAllocations.Length) { bool changed = false; for (int n=0; n secsT = new List
(); List
secsB = new List
(); List
secsR = new List
(); List
secsL = new List
(); int x, y; w.GdkWindow.GetOrigin (out x, out y); Gdk.Rectangle rect = new Gdk.Rectangle (x + allocation.X, y + allocation.Y, allocation.Width, allocation.Height); Section s = new Section (); s.Size = rect.Width; secsT.Add (s); secsB.Add (s); s.Size = rect.Height; secsL.Add (s); secsR.Add (s); foreach (var rects in allocations) { int sx, sy; rects.Key.GdkWindow.GetOrigin (out sx, out sy); foreach (Gdk.Rectangle srt in rects.Value) { if (srt == rect) continue; Gdk.Rectangle sr = srt; sr.Offset (sx, sy); if (sr.Right == rect.X) RemoveSection (secsL, sr.Y - rect.Y, sr.Height); if (sr.Bottom == rect.Y) RemoveSection (secsT, sr.X - rect.X, sr.Width); if (sr.X == rect.Right) RemoveSection (secsR, sr.Y - rect.Y, sr.Height); if (sr.Y == rect.Bottom) RemoveSection (secsB, sr.X - rect.X, sr.Width); } } Gdk.Rectangle r = new Gdk.Rectangle (allocation.X, allocation.Y, allocation.Width, allocation.Height); using (Cairo.Context ctx = Gdk.CairoHelper.Create (w.GdkWindow)) { ctx.Rectangle (r.X, r.Y, r.Width, r.Height); ctx.Color = lightColor.ToCairoColor (); ctx.Fill (); DrawShadow (ctx, r, PositionType.Left, secsL); DrawShadow (ctx, r, PositionType.Top, secsT); DrawShadow (ctx, r, PositionType.Right, secsR); DrawShadow (ctx, r, PositionType.Bottom, secsB); } } void DrawShadow (Cairo.Context ctx, Gdk.Rectangle ar, PositionType pos, List
secs) { foreach (Section s in secs) { Cairo.Gradient pat = null; Gdk.Rectangle r = ar; switch (pos) { case PositionType.Top: r.Height = shadowSize > r.Height ? r.Height / 2 : shadowSize; r.X += s.Offset; r.Width = s.Size; pat = new Cairo.LinearGradient (r.X, r.Y, r.X, r.Bottom); break; case PositionType.Bottom: r.Y = r.Bottom - shadowSize; r.Height = shadowSize > r.Height ? r.Height / 2 : shadowSize; r.X = r.X + s.Offset; r.Width = s.Size; pat = new Cairo.LinearGradient (r.X, r.Bottom, r.X, r.Y); break; case PositionType.Left: r.Width = shadowSize > r.Width ? r.Width / 2 : shadowSize; r.Y += s.Offset; r.Height = s.Size; pat = new Cairo.LinearGradient (r.X, r.Y, r.Right, r.Y); break; case PositionType.Right: r.X = r.Right - shadowSize; r.Width = shadowSize > r.Width ? r.Width / 2 : shadowSize; r.Y += s.Offset; r.Height = s.Size; pat = new Cairo.LinearGradient (r.Right, r.Y, r.X, r.Y); break; } Cairo.Color c = darkColor.ToCairoColor (); pat.AddColorStop (0, c); c.A = 0; pat.AddColorStop (1, c); ctx.NewPath (); ctx.Rectangle (r.X, r.Y, r.Width, r.Height); ctx.Pattern = pat; ctx.Fill (); pat.Destroy (); } } void RemoveSection (List
secs, int offset, int size) { if (offset < 0) { size += offset; offset = 0; } if (size <= 0 || secs.Count == 0) return; Section last = secs [secs.Count - 1]; int rem = (last.Offset + last.Size) - (offset + size); if (rem < 0) { size += rem; if (size <= 0) return; } for (int n=0; n= offset + size) continue; if (offset >= s.Offset + s.Size) continue; if (offset <= s.Offset && offset + size >= s.Offset + s.Size) { // Remove the whole section secs.RemoveAt (n); n--; continue; } if (offset <= s.Offset) { int newOfs = offset + size; s.Size = s.Size - (newOfs - s.Offset); s.Offset = newOfs; secs [n] = s; // Nothing else to remove return; } if (offset + size >= s.Offset + s.Size) { s.Size = offset - s.Offset; secs [n] = s; continue; } // Split section Section s2 = new Section (); s2.Offset = offset + size; s2.Size = (s.Offset + s.Size) - (offset + size); secs.Insert (n + 1, s2); s.Size = offset - s.Offset; secs [n] = s; } } } public interface IShadedWidget { IEnumerable GetShadedAreas (); event EventHandler AreasChanged; } } pinta-1.3/Pinta/DockLibrary/TabStrip.cs0000664000175000017500000002267411747026475021213 0ustar00cameroncameron00000000000000// // TabStrip.cs // // Author: // Lluis Sanchez Gual // // // Copyright (C) 2007 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using Gtk; using System; namespace MonoDevelop.Components.Docking { class TabStrip: Notebook { int currentTab = -1; bool ellipsized = true; HBox box = new HBox (); DockFrame frame; Label bottomFiller = new Label (); public TabStrip (DockFrame frame) { this.frame = frame; frame.ShadedContainer.Add (this); VBox vbox = new VBox (); box = new HBox (); vbox.PackStart (box, false, false, 0); vbox.PackStart (bottomFiller, false, false, 0); AppendPage (vbox, null); ShowBorder = false; ShowTabs = false; ShowAll (); bottomFiller.Hide (); BottomPadding = 3; } public int BottomPadding { get { return bottomFiller.HeightRequest; } set { bottomFiller.HeightRequest = value; bottomFiller.Visible = value > 0; } } public void AddTab (Gtk.Widget page, Gdk.Pixbuf icon, string label) { Tab tab = new Tab (); tab.SetLabel (page, icon, label); tab.ShowAll (); box.PackStart (tab, true, true, 0); if (currentTab == -1) CurrentTab = box.Children.Length - 1; else { tab.Active = false; page.Hide (); } tab.ButtonPressEvent += OnTabPress; } public void SetTabLabel (Gtk.Widget page, Gdk.Pixbuf icon, string label) { foreach (Tab tab in box.Children) { if (tab.Page == page) { tab.SetLabel (page, icon, label); UpdateEllipsize (Allocation); break; } } } public int TabCount { get { return box.Children.Length; } } public int CurrentTab { get { return currentTab; } set { if (currentTab == value) return; if (currentTab != -1) { Tab t = (Tab) box.Children [currentTab]; t.Page.Hide (); t.Active = false; } currentTab = value; if (currentTab != -1) { Tab t = (Tab) box.Children [currentTab]; t.Active = true; t.Page.Show (); } } } new public Gtk.Widget CurrentPage { get { if (currentTab != -1) { Tab t = (Tab) box.Children [currentTab]; return t.Page; } else return null; } set { if (value != null) { Gtk.Widget[] tabs = box.Children; for (int n = 0; n < tabs.Length; n++) { Tab tab = (Tab) tabs [n]; if (tab.Page == value) { CurrentTab = n; return; } } } CurrentTab = -1; } } public void Clear () { ellipsized = true; currentTab = -1; foreach (Widget w in box.Children) { box.Remove (w); w.Destroy (); } } void OnTabPress (object s, Gtk.ButtonPressEventArgs args) { CurrentTab = Array.IndexOf (box.Children, s); Tab t = (Tab) s; DockItem.SetFocus (t.Page); QueueDraw (); } protected override void OnSizeAllocated (Gdk.Rectangle allocation) { UpdateEllipsize (allocation); base.OnSizeAllocated (allocation); } void UpdateEllipsize (Gdk.Rectangle allocation) { int tsize = 0; foreach (Tab tab in box.Children) tsize += tab.LabelWidth; bool ellipsize = tsize > allocation.Width; if (ellipsize != ellipsized) { foreach (Tab tab in box.Children) { tab.SetEllipsize (ellipsize); Gtk.Box.BoxChild bc = (Gtk.Box.BoxChild) box [tab]; bc.Expand = bc.Fill = ellipsize; } ellipsized = ellipsize; } } public Gdk.Rectangle GetTabArea (int ntab) { Gtk.Widget[] tabs = box.Children; Tab tab = (Tab) tabs[ntab]; Gdk.Rectangle rect = GetTabArea (tab, ntab); int x, y; tab.GdkWindow.GetRootOrigin (out x, out y); rect.X += x; rect.Y += y; return rect; } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { frame.ShadedContainer.DrawBackground (this); Gtk.Widget[] tabs = box.Children; for (int n=tabs.Length - 1; n>=0; n--) { Tab tab = (Tab) tabs [n]; if (n != currentTab) DrawTab (evnt, tab, n); } if (currentTab != -1) { Tab ctab = (Tab) tabs [currentTab]; // GdkWindow.DrawLine (Style.DarkGC (Gtk.StateType.Normal), Allocation.X, Allocation.Y, Allocation.Right, Allocation.Y); DrawTab (evnt, ctab, currentTab); } return base.OnExposeEvent (evnt); } public Gdk.Rectangle GetTabArea (Tab tab, int pos) { Gdk.Rectangle rect = tab.Allocation; int xdif = 0; if (pos > 0) xdif = 2; int reqh; // StateType st; if (tab.Active) { // st = StateType.Normal; reqh = tab.Allocation.Height; } else { reqh = tab.Allocation.Height - 3; // st = StateType.Active; } if (DockFrame.IsWindows) { rect.Height = reqh - 1; rect.Width--; if (pos > 0) { rect.X--; rect.Width++; } return rect; } else { rect.X -= xdif; rect.Width += xdif; rect.Height = reqh; return rect; } } void DrawTab (Gdk.EventExpose evnt, Tab tab, int pos) { Gdk.Rectangle rect = GetTabArea (tab, pos); StateType st; if (tab.Active) st = StateType.Normal; else st = StateType.Active; if (DockFrame.IsWindows) { GdkWindow.DrawRectangle (Style.DarkGC (Gtk.StateType.Normal), false, rect); rect.X++; rect.Width--; if (tab.Active) { GdkWindow.DrawRectangle (Style.LightGC (Gtk.StateType.Normal), true, rect); } else { using (Cairo.Context cr = Gdk.CairoHelper.Create (evnt.Window)) { cr.NewPath (); cr.MoveTo (rect.X, rect.Y); cr.RelLineTo (rect.Width, 0); cr.RelLineTo (0, rect.Height); cr.RelLineTo (-rect.Width, 0); cr.RelLineTo (0, -rect.Height); cr.ClosePath (); Cairo.Gradient pat = new Cairo.LinearGradient (rect.X, rect.Y, rect.X, rect.Y + rect.Height); Cairo.Color color1 = DockFrame.ToCairoColor (Style.Mid (Gtk.StateType.Normal)); pat.AddColorStop (0, color1); color1.R *= 1.2; color1.G *= 1.2; color1.B *= 1.2; pat.AddColorStop (1, color1); cr.Pattern = pat; cr.FillPreserve (); } } } else Gtk.Style.PaintExtension (Style, GdkWindow, st, ShadowType.Out, evnt.Area, this, "tab", rect.X, rect.Y, rect.Width, rect.Height, Gtk.PositionType.Top); } } class Tab: Gtk.EventBox { bool active; Gtk.Widget page; Gtk.Label labelWidget; int labelWidth; const int TopPadding = 2; const int BottomPadding = 4; const int TopPaddingActive = 3; const int BottomPaddingActive = 5; const int HorzPadding = 5; public Tab () { this.VisibleWindow = false; } public void SetLabel (Gtk.Widget page, Gdk.Pixbuf icon, string label) { Pango.EllipsizeMode oldMode = Pango.EllipsizeMode.End; this.page = page; if (Child != null) { if (labelWidget != null) oldMode = labelWidget.Ellipsize; Gtk.Widget oc = Child; Remove (oc); oc.Destroy (); } Gtk.HBox box = new HBox (); box.Spacing = 2; if (icon != null) box.PackStart (new Gtk.Image (icon), false, false, 0); if (!string.IsNullOrEmpty (label)) { labelWidget = new Gtk.Label (label); labelWidget.UseMarkup = true; box.PackStart (labelWidget, true, true, 0); } else { labelWidget = null; } Add (box); // Get the required size before setting the ellipsize property, since ellipsized labels // have a width request of 0 ShowAll (); labelWidth = SizeRequest ().Width; if (labelWidget != null) labelWidget.Ellipsize = oldMode; } public void SetEllipsize (bool elipsize) { if (labelWidget != null) { if (elipsize) labelWidget.Ellipsize = Pango.EllipsizeMode.End; else labelWidget.Ellipsize = Pango.EllipsizeMode.None; } } public int LabelWidth { get { return labelWidth; } } public bool Active { get { return active; } set { active = value; this.QueueResize (); QueueDraw (); } } public Widget Page { get { return page; } } protected override void OnSizeRequested (ref Gtk.Requisition req) { req = Child.SizeRequest (); req.Width += HorzPadding * 2; if (active) req.Height += TopPaddingActive + BottomPaddingActive; else req.Height += TopPadding + BottomPadding; } protected override void OnSizeAllocated (Gdk.Rectangle rect) { base.OnSizeAllocated (rect); rect.X += HorzPadding; rect.Width -= HorzPadding * 2; if (active) { rect.Y += TopPaddingActive; rect.Height = Child.SizeRequest ().Height; } else { rect.Y += TopPadding; rect.Height = Child.SizeRequest ().Height; } Child.SizeAllocate (rect); } } } pinta-1.3/Pinta/DockLibrary/stock-auto-hide.png0000664000175000017500000000032311747026475022625 0ustar00cameroncameron00000000000000PNG  IHDRRWbKGDC pHYs  ~tIME '(gMG>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3XIDATc`dJbf§)اQIENDB`pinta-1.3/Pinta/DockLibrary/stock-close-12.png0000664000175000017500000000035711747026475022302 0ustar00cameroncameron00000000000000PNG  IHDRRWbKGD pHYs  ~tIME # H%V>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3X2IDATc```b``d@ Vh|F$蠜(di'>X $ kIENDB`pinta-1.3/Pinta/DockLibrary/stock-dock.png0000664000175000017500000000035511747026475021673 0ustar00cameroncameron00000000000000PNG  IHDRRWbKGD pHYs  ~tIME  5#>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3X0IDATcd``heX ,r,HHl_&<$ Q$-h IENDB`pinta-1.3/Pinta/DockLibrary/stock-menu-left-12.png0000664000175000017500000000030311747026475023060 0ustar00cameroncameron00000000000000PNG  IHDR Vu\IDATxڝ!Pᯥ  ] $H5؝[`iph243~$(A5alO ,qABzs.#=03NU18ă6Ck/\>VIENDB`pinta-1.3/Pinta/DockLibrary/stock-menu-right-12.png0000664000175000017500000000027711747026475023255 0ustar00cameroncameron00000000000000PNG  IHDR Vu\IDATxڕѡ Q?H u@ E qt@ `1pnd3;;l-øbK*T }._!Wjt8`VK R$xn4 X<IENDB`pinta-1.3/Pinta/ExtensionPoints.cs0000664000175000017500000000317111747026475020416 0ustar00cameroncameron00000000000000// // ExtensionPoints.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.ComponentModel.Composition; using Pinta.Core; namespace Pinta { class ExtensionPoints { [ImportMany] public IEnumerable Extensions { get; set; } [ImportMany] public IEnumerable Tools { get; set; } [ImportMany] public IEnumerable Effects { get; set; } [ImportMany] public IEnumerable PaintBrushes { get; set; } } } pinta-1.3/Pinta/Extensions/0000775000175000017500000000000011747026475017053 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Extensions/GtkExtensions.cs0000664000175000017500000000364611747026475022220 0ustar00cameroncameron00000000000000// // GtkExtensions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using MonoDevelop.Components.Docking; namespace Pinta { public static class GtkExtensions { public static DockToolButton CreateDockToolBarItem (this Gtk.Action action) { DockToolButton item = new DockToolButton (action.StockId); action.ConnectProxy (item); item.Show (); item.TooltipText = action.Label; item.Label = string.Empty; item.Image.Show (); return item; } public static Gtk.ToolItem CreateToolBarItem (this Gtk.Action action) { Gtk.ToolItem item = (Gtk.ToolItem)action.CreateToolItem (); item.TooltipText = action.Label; return item; } public static void AppendItem (this Toolbar tb, ToolItem item) { item.Show (); tb.Insert (item, tb.NItems); } } } pinta-1.3/Pinta/IgeMacMenu.cs0000664000175000017500000000652111747026475017221 0ustar00cameroncameron00000000000000// // IgeMacMenu.cs // // Author: // Eoin Hennessy // jurgenobernolte // // Copyright (c) 2010 Eoin Hennessy // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // Ported by jurgenobernolte from: // http://github.com/eoin/ige-mac-integration-sharp/tree/master/bindings/ige-mac-integration-sharp using System; using System.Runtime.InteropServices; namespace Pinta { public class IgeMacMenu { [DllImport ("libigemacintegration.dylib")] static extern void ige_mac_menu_connect_window_key_handler (IntPtr window); public static void ConnectWindowKeyHandler (Gtk.Window window) { ige_mac_menu_connect_window_key_handler (window.Handle); } [DllImport ("libigemacintegration.dylib")] static extern void ige_mac_menu_set_global_key_handler_enabled (bool enabled); public static bool GlobalKeyHandlerEnabled { set { ige_mac_menu_set_global_key_handler_enabled (value); } } [DllImport ("libigemacintegration.dylib")] static extern void ige_mac_menu_set_menu_bar (IntPtr menu_shell); public static Gtk.MenuShell MenuBar { set { ige_mac_menu_set_menu_bar (value == null ? IntPtr.Zero : value.Handle); } } [DllImport ("libigemacintegration.dylib")] static extern void ige_mac_menu_set_quit_menu_item (IntPtr quit_item); public static Gtk.MenuItem QuitMenuItem { set { ige_mac_menu_set_quit_menu_item (value == null ? IntPtr.Zero : value.Handle); } } [DllImport ("libigemacintegration.dylib")] static extern IntPtr ige_mac_menu_add_app_menu_group (); public static Pinta.IgeMacMenuGroup AddAppMenuGroup () { IntPtr raw_ret = ige_mac_menu_add_app_menu_group (); Pinta.IgeMacMenuGroup ret = raw_ret == IntPtr.Zero ? null : (Pinta.IgeMacMenuGroup)GLib.Opaque.GetOpaque (raw_ret, typeof(Pinta.IgeMacMenuGroup), false); return ret; } } public class IgeMacMenuGroup : GLib.Opaque { [DllImport ("libigemacintegration.dylib")] static extern void ige_mac_menu_add_app_menu_item (IntPtr raw, IntPtr menu_item, IntPtr label); public void AddMenuItem (Gtk.MenuItem menu_item, string label) { IntPtr native_label = GLib.Marshaller.StringToPtrGStrdup (label); ige_mac_menu_add_app_menu_item (Handle, menu_item == null ? IntPtr.Zero : menu_item.Handle, native_label); GLib.Marshaller.Free (native_label); } public IgeMacMenuGroup (IntPtr raw) : base(raw) { } } } pinta-1.3/Pinta/Main.cs0000664000175000017500000000755711747026475016145 0ustar00cameroncameron00000000000000// // Main.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Options; using System.Collections.Generic; using Pinta.Core; using Mono.Unix; using System.IO; using System.Reflection; namespace Pinta { class MainClass { public static void Main (string[] args) { string app_dir = Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location); string locale_dir; bool devel_mode = File.Exists (Path.Combine (Path.Combine (app_dir, ".."), "Pinta.sln")); if (SystemManager.GetOperatingSystem () != OS.X11 || devel_mode) locale_dir = Path.Combine (app_dir, "locale"); else { // From MonoDevelop: // Pinta is located at $prefix/lib/pinta // adding "../.." should give us $prefix string prefix = Path.Combine (Path.Combine (app_dir, ".."), ".."); //normalise it prefix = Path.GetFullPath (prefix); //catalog is installed to "$prefix/share/locale" by default locale_dir = Path.Combine (Path.Combine (prefix, "share"), "locale"); } try { Catalog.Init ("pinta", locale_dir); } catch (Exception ex) { Console.WriteLine (ex); } int threads = -1; var p = new OptionSet () { { "rt|render-threads=", Catalog.GetString ("number of threads to use for rendering"), (int v) => threads = v } }; List extra; try { extra = p.Parse (args); } catch (OptionException e) { Console.Write ("Pinta: "); Console.WriteLine (e.Message); return; } GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler (ExceptionManager_UnhandledException); Application.Init (); MainWindow win = new MainWindow (); //win.Show (); if (threads != -1) Pinta.Core.PintaCore.System.RenderThreads = threads; OpenFilesFromCommandLine (extra); Application.Run (); } private static void OpenFilesFromCommandLine (List extra) { // Ignore the process serial number parameter on Mac OS X if (PintaCore.System.OperatingSystem == OS.Mac && extra.Count > 0) { if (extra[0].StartsWith ("-psn_")) { extra.RemoveAt (0); } } if (extra.Count > 0) { foreach (var file in extra) PintaCore.Workspace.OpenFile (file); } else { // Create a blank document PintaCore.Workspace.NewDocument (new Gdk.Size (800, 600), false); } } private static void ExceptionManager_UnhandledException (GLib.UnhandledExceptionArgs args) { ErrorDialog errorDialog = new ErrorDialog (null); Exception ex = (Exception)args.ExceptionObject; try { errorDialog.Message = string.Format ("{0}:\n{1}", "Unhandled exception", ex.Message); errorDialog.AddDetails (ex.ToString (), false); errorDialog.Run (); } finally { errorDialog.Destroy (); } } } } pinta-1.3/Pinta/MainWindow.cs0000664000175000017500000003247011747026475017325 0ustar00cameroncameron00000000000000// // MainWindow.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Mono.Addins; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; namespace Pinta { public class MainWindow { WindowShell window_shell; ScrolledWindow sw; DockFrame dock; Menu show_pad; ActionHandlers dialog_handlers; public MainWindow () { // Build our window CreateWindow (); // Initialize interface things window_shell.AddAccelGroup (PintaCore.Actions.AccelGroup); dialog_handlers = new ActionHandlers (); PintaCore.Chrome.InitializeProgessDialog (new ProgressDialog ()); PintaCore.Initialize (); // Initialize extensions AddinManager.Initialize (); AddinManager.Registry.Update (); foreach (var extension in PintaCore.System.GetExtensions ()) extension.Initialize (); // Try to set the default tool to the PaintBrush PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Paintbrush")); // Load the user's previous settings LoadUserSettings (); // Give the canvas focus PintaCore.Chrome.Canvas.GrabFocus (); // We support drag and drop for URIs window_shell.AddDragDropSupport (new Gtk.TargetEntry ("text/uri-list", 0, 100)); // Handle a few main window specific actions PintaCore.Actions.File.BeforeQuit += delegate { SaveUserSettings (); }; window_shell.DeleteEvent += MainWindow_DeleteEvent; window_shell.DragDataReceived += MainWindow_DragDataReceived; // TODO: These need to be [re]moved when we redo zoom support PintaCore.Actions.View.ZoomToWindow.Activated += new EventHandler (ZoomToWindow_Activated); PintaCore.Actions.View.ZoomToSelection.Activated += new EventHandler (ZoomToSelection_Activated); PintaCore.Workspace.ActiveDocumentChanged += ActiveDocumentChanged; } #region GUI Construction private void CreateWindow () { // Check for stored window settings var width = PintaCore.Settings.GetSetting ("window-size-width", 1100); var height = PintaCore.Settings.GetSetting ("window-size-height", 750); var maximize = PintaCore.Settings.GetSetting ("window-maximized", false); window_shell = new WindowShell ("Pinta.GenericWindow", "Pinta", width, height, maximize); CreateMainMenu (window_shell); CreateMainToolBar (window_shell); CreateToolToolBar (window_shell); CreatePanels (window_shell); window_shell.ShowAll (); PintaCore.Chrome.InitializeWindowShell (window_shell); } private void CreateMainMenu (WindowShell shell) { var main_menu = window_shell.CreateMainMenu ("main_menu"); main_menu.Append (new Gtk.Action ("file", Catalog.GetString ("_File")).CreateMenuItem ()); main_menu.Append (new Gtk.Action ("edit", Catalog.GetString ("_Edit")).CreateMenuItem ()); MenuItem view_menu = (MenuItem)new Gtk.Action ("view", Catalog.GetString ("_View")).CreateMenuItem (); main_menu.Append (view_menu); main_menu.Append (new Gtk.Action ("image", Catalog.GetString ("_Image")).CreateMenuItem ()); main_menu.Append (new Gtk.Action ("layers", Catalog.GetString ("_Layers")).CreateMenuItem ()); main_menu.Append (new Gtk.Action ("adjustments", Catalog.GetString ("_Adjustments")).CreateMenuItem ()); main_menu.Append (new Gtk.Action ("effects", Catalog.GetString ("Effe_cts")).CreateMenuItem ()); MenuItem window_menu = (MenuItem)new Gtk.Action ("window", Catalog.GetString ("_Window")).CreateMenuItem (); window_menu.Submenu = new Menu (); main_menu.Append (window_menu); Gtk.Action pads = new Gtk.Action ("pads", Mono.Unix.Catalog.GetString ("Tool Windows"), null, null); view_menu.Submenu = new Menu (); show_pad = (Menu)((Menu)(view_menu.Submenu)).AppendItem (pads.CreateSubMenuItem ()).Submenu; main_menu.Append (new Gtk.Action ("help", Catalog.GetString ("_Help")).CreateMenuItem ()); PintaCore.Actions.CreateMainMenu (main_menu); if (PintaCore.System.OperatingSystem == OS.Mac) { try { //enable the global key handler for keyboard shortcuts IgeMacMenu.GlobalKeyHandlerEnabled = true; //Tell the IGE library to use your GTK menu as the Mac main menu IgeMacMenu.MenuBar = main_menu; /* //tell IGE which menu item should be used for the app menu's quit item IgeMacMenu.QuitMenuItem = yourQuitMenuItem; */ //add a new group to the app menu, and add some items to it var appGroup = IgeMacMenu.AddAppMenuGroup (); MenuItem aboutItem = (MenuItem)PintaCore.Actions.Help.About.CreateMenuItem (); appGroup.AddMenuItem (aboutItem, Catalog.GetString ("About")); main_menu.Hide (); } catch { // If things don't work out, just use a normal menu. } } PintaCore.Chrome.InitializeMainMenu (main_menu); } private void CreateMainToolBar (WindowShell shell) { var main_toolbar = window_shell.CreateToolBar ("main_toolbar"); if (PintaCore.System.OperatingSystem == OS.Windows) { main_toolbar.ToolbarStyle = ToolbarStyle.Icons; main_toolbar.IconSize = IconSize.SmallToolbar; } PintaCore.Actions.CreateToolBar (main_toolbar); PintaCore.Chrome.InitializeMainToolBar (main_toolbar); } private void CreateToolToolBar (WindowShell shell) { var tool_toolbar = window_shell.CreateToolBar ("tool_toolbar"); tool_toolbar.ToolbarStyle = ToolbarStyle.Icons; tool_toolbar.IconSize = IconSize.SmallToolbar; if (PintaCore.System.OperatingSystem == OS.Windows) tool_toolbar.HeightRequest = 28; else tool_toolbar.HeightRequest = 32; PintaCore.Chrome.InitializeToolToolBar (tool_toolbar); } private void CreatePanels (WindowShell shell) { HBox panel_container = shell.CreateWorkspace (); CreateDockAndPads (panel_container); panel_container.ShowAll (); } private void CreateDockAndPads (HBox container) { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Tools.Pencil.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.Pencil.png"))); fact.Add ("Pinta.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Pinta.png"))); fact.AddDefault (); // Dock widget dock = new DockFrame (); dock.CompactGuiLevel = 5; // Toolbox pad var toolboxpad = new ToolBoxPad (); toolboxpad.Initialize (dock, show_pad); // Palette pad var palettepad = new ColorPalettePad (); palettepad.Initialize (dock, show_pad); // Canvas pad var canvas_pad = new CanvasPad (); canvas_pad.Initialize (dock, show_pad); sw = canvas_pad.ScrolledWindow; // Layer pad var layers_pad = new LayersPad (); layers_pad.Initialize (dock, show_pad); // History pad var history_pad = new HistoryPad (); history_pad.Initialize (dock, show_pad); // Open Images pad var open_images_pad = new OpenImagesPad (); open_images_pad.Initialize (dock, show_pad); container.PackStart (dock, true, true, 0); string layout_file = System.IO.Path.Combine (PintaCore.Settings.GetUserSettingsDirectory (), "layouts.xml"); if (System.IO.File.Exists(layout_file)) { try { dock.LoadLayouts(layout_file); } // If parsing layouts.xml fails for some reason, proceed to create the default layout. catch (Exception e) { System.Console.Error.WriteLine ("Error reading layouts.xml: " + e.ToString()); } } if (!dock.HasLayout ("Default")) dock.CreateLayout ("Default", false); dock.CurrentLayout = "Default"; } #endregion #region User Settings private const string LastDialogDirSettingKey = "last-dialog-directory"; private void LoadUserSettings () { PintaCore.Actions.View.Rulers.Active = PintaCore.Settings.GetSetting ("ruler-shown", false); PintaCore.Actions.View.ToolBar.Active = PintaCore.Settings.GetSetting ("toolbar-shown", true); PintaCore.Actions.View.PixelGrid.Active = PintaCore.Settings.GetSetting ("pixel-grid-shown", false); PintaCore.System.LastDialogDirectory = PintaCore.Settings.GetSetting (LastDialogDirSettingKey, PintaCore.System.DefaultDialogDirectory); var ruler_metric = (MetricType) PintaCore.Settings.GetSetting ("ruler-metric", (int) MetricType.Pixels); switch (ruler_metric) { case MetricType.Centimeters: PintaCore.Actions.View.Centimeters.Activate (); break; case MetricType.Inches: PintaCore.Actions.View.Inches.Activate (); break; } } private void SaveUserSettings () { dock.SaveLayouts (System.IO.Path.Combine (PintaCore.Settings.GetUserSettingsDirectory (), "layouts.xml")); // Don't store the maximized height if the window is maximized if ((window_shell.GdkWindow.State & Gdk.WindowState.Maximized) == 0) { PintaCore.Settings.PutSetting ("window-size-width", window_shell.GdkWindow.GetSize ().Width); PintaCore.Settings.PutSetting ("window-size-height", window_shell.GdkWindow.GetSize ().Height); } var ruler_metric = MetricType.Pixels; if (PintaCore.Actions.View.Inches.Active) ruler_metric = MetricType.Inches; else if (PintaCore.Actions.View.Centimeters.Active) ruler_metric = MetricType.Centimeters; PintaCore.Settings.PutSetting ("ruler-metric", (int)ruler_metric); PintaCore.Settings.PutSetting ("window-maximized", (window_shell.GdkWindow.State & Gdk.WindowState.Maximized) != 0); PintaCore.Settings.PutSetting ("ruler-shown", PintaCore.Actions.View.Rulers.Active); PintaCore.Settings.PutSetting ("toolbar-shown", PintaCore.Actions.View.ToolBar.Active); PintaCore.Settings.PutSetting ("pixel-grid-shown", PintaCore.Actions.View.PixelGrid.Active); PintaCore.Settings.PutSetting (LastDialogDirSettingKey, PintaCore.System.LastDialogDirectory); PintaCore.Settings.SaveSettings (); } #endregion #region Action Handlers private void MainWindow_DeleteEvent (object o, DeleteEventArgs args) { // leave window open so user can cancel quitting args.RetVal = true; PintaCore.Actions.File.Exit.Activate (); } private void MainWindow_DragDataReceived (object o, DragDataReceivedArgs args) { // Only handle URIs if (args.Info != 100) return; string fullData = System.Text.Encoding.UTF8.GetString (args.SelectionData.Data); foreach (string individualFile in fullData.Split ('\n')) { string file = individualFile.Trim (); if (file.StartsWith ("file://")) PintaCore.Workspace.OpenFile (new Uri (file).LocalPath); } } private void ZoomToSelection_Activated (object sender, EventArgs e) { PintaCore.Workspace.ActiveWorkspace.ZoomToRectangle (PintaCore.Workspace.ActiveDocument.SelectionPath.GetBounds ().ToCairoRectangle ()); } private void ZoomToWindow_Activated (object sender, EventArgs e) { // The image is small enough to fit in the window if (PintaCore.Workspace.ImageFitsInWindow) { PintaCore.Actions.View.ActualSize.Activate (); } else { int image_x = PintaCore.Workspace.ImageSize.Width; int image_y = PintaCore.Workspace.ImageSize.Height; int window_x = sw.Children[0].Allocation.Width; int window_y = sw.Children[0].Allocation.Height; double ratio; // The image is more constrained by width than height if ((double)image_x / (double)window_x >= (double)image_y / (double)window_y) { ratio = (double)(window_x - 20) / (double)image_x; } else { ratio = (double)(window_y - 20) / (double)image_y; } PintaCore.Workspace.Scale = ratio; PintaCore.Actions.View.SuspendZoomUpdate (); (PintaCore.Actions.View.ZoomComboBox.ComboBox as ComboBoxEntry).Entry.Text = string.Format ("{0}%", (int)(PintaCore.Workspace.Scale * 100)); PintaCore.Actions.View.ResumeZoomUpdate (); } PintaCore.Actions.View.ZoomToWindowActivated = true; } private void ActiveDocumentChanged (object sender, EventArgs e) { if (PintaCore.Workspace.HasOpenDocuments) { int zoom = (int)(PintaCore.Workspace.ActiveWorkspace.Scale * 100); PintaCore.Actions.View.SuspendZoomUpdate (); (PintaCore.Actions.View.ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = string.Format ("{0}%", zoom); PintaCore.Actions.View.ResumeZoomUpdate (); PintaCore.Workspace.OnCanvasSizeChanged (); } PintaCore.Workspace.Invalidate (); } #endregion } } pinta-1.3/Pinta/Makefile.am0000664000175000017500000000363311747026475016755 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta TARGET = exe REFERENCES = \ -r:Mono.Posix \ -r:System \ -r:System.Core \ -r:System.Xml \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(MONO_CAIRO_LIBS) \ -r:../bin/Pinta.Core.dll \ -r:../bin/Pinta.Gui.Widgets.dll \ -r:../bin/System.Composition.ComponentModel.dll SOURCES = \ Dialogs/AboutPintaTabPage.cs \ Dialogs/AboutDialog.cs \ Dialogs/ErrorDialog.cs \ Dialogs/JpegCompressionDialog.cs \ Dialogs/SpinButtonEntryDialog.cs \ Dialogs/VersionInformationTabPage.cs \ DockLibrary/AutoHideBox.cs \ DockLibrary/DockBar.cs \ DockLibrary/DockBarItem.cs \ DockLibrary/DockContainer.cs \ DockLibrary/DockFrame.cs \ DockLibrary/DockFrameTopLevel.cs \ DockLibrary/DockGroup.cs \ DockLibrary/DockGroupItem.cs \ DockLibrary/DockGroupType.cs \ DockLibrary/DockItem.cs \ DockLibrary/DockItemBehavior.cs \ DockLibrary/DockItemContainer.cs \ DockLibrary/DockItemStatus.cs \ DockLibrary/DockItemToolbar.cs \ DockLibrary/DockLayout.cs \ DockLibrary/DockObject.cs \ DockLibrary/DockPosition.cs \ DockLibrary/HslColor.cs \ DockLibrary/PlaceholderWindow.cs \ DockLibrary/ShadedContainer.cs \ DockLibrary/TabStrip.cs \ ExtensionPoints.cs \ Extensions/GtkExtensions.cs \ gtk-gui/generated.cs \ Main.cs \ AssemblyInfo.cs \ Options.cs \ Dialogs/NewImageDialog.cs \ gtk-gui/Pinta.NewImageDialog.cs \ DialogHandlers.cs \ Dialogs/LayerPropertiesDialog.cs \ gtk-gui/Pinta.LayerPropertiesDialog.cs \ Dialogs/ResizeImageDialog.cs \ gtk-gui/Pinta.ResizeImageDialog.cs \ Dialogs/ResizeCanvasDialog.cs \ gtk-gui/Pinta.ResizeCanvasDialog.cs \ Platform.cs \ IgeMacMenu.cs \ gtk-gui/Pinta.ProgressDialog.cs \ Dialogs/ProgressDialog.cs \ MainWindow.cs RESOURCES = \ gtk-gui/gui.stetic \ DockLibrary/stock-auto-hide.png \ DockLibrary/stock-close-12.png \ DockLibrary/stock-dock.png \ DockLibrary/stock-menu-left-12.png \ DockLibrary/stock-menu-right-12.png pinta-1.3/Pinta/Options.cs0000664000175000017500000007665511747026475016721 0ustar00cameroncameron00000000000000// // Options.cs // // Authors: // Jonathan Pryor // // Copyright (C) 2008 Novell (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // Compile With: // gmcs -debug+ -r:System.Core Options.cs -o:NDesk.Options.dll // gmcs -debug+ -d:LINQ -r:System.Core Options.cs -o:NDesk.Options.dll // // The LINQ version just changes the implementation of // OptionSet.Parse(IEnumerable), and confers no semantic changes. // // A Getopt::Long-inspired option parsing library for C#. // // NDesk.Options.OptionSet is built upon a key/value table, where the // key is a option format string and the value is a delegate that is // invoked when the format string is matched. // // Option format strings: // Regex-like BNF Grammar: // name: .+ // type: [=:] // sep: ( [^{}]+ | '{' .+ '}' )? // aliases: ( name type sep ) ( '|' name type sep )* // // Each '|'-delimited name is an alias for the associated action. If the // format string ends in a '=', it has a required value. If the format // string ends in a ':', it has an optional value. If neither '=' or ':' // is present, no value is supported. `=' or `:' need only be defined on one // alias, but if they are provided on more than one they must be consistent. // // Each alias portion may also end with a "key/value separator", which is used // to split option values if the option accepts > 1 value. If not specified, // it defaults to '=' and ':'. If specified, it can be any character except // '{' and '}' OR the *string* between '{' and '}'. If no separator should be // used (i.e. the separate values should be distinct arguments), then "{}" // should be used as the separator. // // Options are extracted either from the current option by looking for // the option name followed by an '=' or ':', or is taken from the // following option IFF: // - The current option does not contain a '=' or a ':' // - The current option requires a value (i.e. not a Option type of ':') // // The `name' used in the option format string does NOT include any leading // option indicator, such as '-', '--', or '/'. All three of these are // permitted/required on any named option. // // Option bundling is permitted so long as: // - '-' is used to start the option group // - all of the bundled options are a single character // - at most one of the bundled options accepts a value, and the value // provided starts from the next character to the end of the string. // // This allows specifying '-a -b -c' as '-abc', and specifying '-D name=value' // as '-Dname=value'. // // Option processing is disabled by specifying "--". All options after "--" // are returned by OptionSet.Parse() unchanged and unprocessed. // // Unprocessed options are returned from OptionSet.Parse(). // // Examples: // int verbose = 0; // OptionSet p = new OptionSet () // .Add ("v", v => ++verbose) // .Add ("name=|value=", v => Console.WriteLine (v)); // p.Parse (new string[]{"-v", "--v", "/v", "-name=A", "/name", "B", "extra"}); // // The above would parse the argument string array, and would invoke the // lambda expression three times, setting `verbose' to 3 when complete. // It would also print out "A" and "B" to standard output. // The returned array would contain the string "extra". // // C# 3.0 collection initializers are supported and encouraged: // var p = new OptionSet () { // { "h|?|help", v => ShowHelp () }, // }; // // System.ComponentModel.TypeConverter is also supported, allowing the use of // custom data types in the callback type; TypeConverter.ConvertFromString() // is used to convert the value option to an instance of the specified // type: // // var p = new OptionSet () { // { "foo=", (Foo f) => Console.WriteLine (f.ToString ()) }, // }; // // Random other tidbits: // - Boolean options (those w/o '=' or ':' in the option format string) // are explicitly enabled if they are followed with '+', and explicitly // disabled if they are followed with '-': // string a = null; // var p = new OptionSet () { // { "a", s => a = s }, // }; // p.Parse (new string[]{"-a"}); // sets v != null // p.Parse (new string[]{"-a+"}); // sets v != null // p.Parse (new string[]{"-a-"}); // sets v == null // using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Globalization; using System.IO; using System.Runtime.Serialization; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; #if LINQ using System.Linq; #endif #if TEST using NDesk.Options; #endif #if NDESK_OPTIONS namespace NDesk.Options #else namespace Mono.Options #endif { public class OptionValueCollection : IList, IList { List values = new List (); OptionContext c; internal OptionValueCollection (OptionContext c) { this.c = c; } #region ICollection void ICollection.CopyTo (Array array, int index) {(values as ICollection).CopyTo (array, index);} bool ICollection.IsSynchronized {get {return (values as ICollection).IsSynchronized;}} object ICollection.SyncRoot {get {return (values as ICollection).SyncRoot;}} #endregion #region ICollection public void Add (string item) {values.Add (item);} public void Clear () {values.Clear ();} public bool Contains (string item) {return values.Contains (item);} public void CopyTo (string[] array, int arrayIndex) {values.CopyTo (array, arrayIndex);} public bool Remove (string item) {return values.Remove (item);} public int Count {get {return values.Count;}} public bool IsReadOnly {get {return false;}} #endregion #region IEnumerable IEnumerator IEnumerable.GetEnumerator () {return values.GetEnumerator ();} #endregion #region IEnumerable public IEnumerator GetEnumerator () {return values.GetEnumerator ();} #endregion #region IList int IList.Add (object value) {return (values as IList).Add (value);} bool IList.Contains (object value) {return (values as IList).Contains (value);} int IList.IndexOf (object value) {return (values as IList).IndexOf (value);} void IList.Insert (int index, object value) {(values as IList).Insert (index, value);} void IList.Remove (object value) {(values as IList).Remove (value);} void IList.RemoveAt (int index) {(values as IList).RemoveAt (index);} bool IList.IsFixedSize {get {return false;}} object IList.this [int index] {get {return this [index];} set {(values as IList)[index] = value;}} #endregion #region IList public int IndexOf (string item) {return values.IndexOf (item);} public void Insert (int index, string item) {values.Insert (index, item);} public void RemoveAt (int index) {values.RemoveAt (index);} private void AssertValid (int index) { if (c.Option == null) throw new InvalidOperationException ("OptionContext.Option is null."); if (index >= c.Option.MaxValueCount) throw new ArgumentOutOfRangeException ("index"); if (c.Option.OptionValueType == OptionValueType.Required && index >= values.Count) throw new OptionException (string.Format ( c.OptionSet.MessageLocalizer ("Missing required value for option '{0}'."), c.OptionName), c.OptionName); } public string this [int index] { get { AssertValid (index); return index >= values.Count ? null : values [index]; } set { values [index] = value; } } #endregion public List ToList () { return new List (values); } public string[] ToArray () { return values.ToArray (); } public override string ToString () { return string.Join (", ", values.ToArray ()); } } public class OptionContext { private Option option; private string name; private int index; private OptionSet set; private OptionValueCollection c; public OptionContext (OptionSet set) { this.set = set; this.c = new OptionValueCollection (this); } public Option Option { get {return option;} set {option = value;} } public string OptionName { get {return name;} set {name = value;} } public int OptionIndex { get {return index;} set {index = value;} } public OptionSet OptionSet { get {return set;} } public OptionValueCollection OptionValues { get {return c;} } } public enum OptionValueType { None, Optional, Required, } public abstract class Option { string prototype, description; string[] names; OptionValueType type; int count; string[] separators; protected Option (string prototype, string description) : this (prototype, description, 1) { } protected Option (string prototype, string description, int maxValueCount) { if (prototype == null) throw new ArgumentNullException ("prototype"); if (prototype.Length == 0) throw new ArgumentException ("Cannot be the empty string.", "prototype"); if (maxValueCount < 0) throw new ArgumentOutOfRangeException ("maxValueCount"); this.prototype = prototype; this.names = prototype.Split ('|'); this.description = description; this.count = maxValueCount; this.type = ParsePrototype (); if (this.count == 0 && type != OptionValueType.None) throw new ArgumentException ( "Cannot provide maxValueCount of 0 for OptionValueType.Required or " + "OptionValueType.Optional.", "maxValueCount"); if (this.type == OptionValueType.None && maxValueCount > 1) throw new ArgumentException ( string.Format ("Cannot provide maxValueCount of {0} for OptionValueType.None.", maxValueCount), "maxValueCount"); if (Array.IndexOf (names, "<>") >= 0 && ((names.Length == 1 && this.type != OptionValueType.None) || (names.Length > 1 && this.MaxValueCount > 1))) throw new ArgumentException ( "The default option handler '<>' cannot require values.", "prototype"); } public string Prototype {get {return prototype;}} public string Description {get {return description;}} public OptionValueType OptionValueType {get {return type;}} public int MaxValueCount {get {return count;}} public string[] GetNames () { return (string[]) names.Clone (); } public string[] GetValueSeparators () { if (separators == null) return new string [0]; return (string[]) separators.Clone (); } protected static T Parse (string value, OptionContext c) { Type tt = typeof (T); bool nullable = tt.IsValueType && tt.IsGenericType && !tt.IsGenericTypeDefinition && tt.GetGenericTypeDefinition () == typeof (Nullable<>); Type targetType = nullable ? tt.GetGenericArguments () [0] : typeof (T); TypeConverter conv = TypeDescriptor.GetConverter (targetType); T t = default (T); try { if (value != null) t = (T) conv.ConvertFromString (value); } catch (Exception e) { throw new OptionException ( string.Format ( c.OptionSet.MessageLocalizer ("Could not convert string `{0}' to type {1} for option `{2}'."), value, targetType.Name, c.OptionName), c.OptionName, e); } return t; } internal string[] Names {get {return names;}} internal string[] ValueSeparators {get {return separators;}} static readonly char[] NameTerminator = new char[]{'=', ':'}; private OptionValueType ParsePrototype () { char type = '\0'; List seps = new List (); for (int i = 0; i < names.Length; ++i) { string name = names [i]; if (name.Length == 0) throw new ArgumentException ("Empty option names are not supported.", "prototype"); int end = name.IndexOfAny (NameTerminator); if (end == -1) continue; names [i] = name.Substring (0, end); if (type == '\0' || type == name [end]) type = name [end]; else throw new ArgumentException ( string.Format ("Conflicting option types: '{0}' vs. '{1}'.", type, name [end]), "prototype"); AddSeparators (name, end, seps); } if (type == '\0') return OptionValueType.None; if (count <= 1 && seps.Count != 0) throw new ArgumentException ( string.Format ("Cannot provide key/value separators for Options taking {0} value(s).", count), "prototype"); if (count > 1) { if (seps.Count == 0) this.separators = new string[]{":", "="}; else if (seps.Count == 1 && seps [0].Length == 0) this.separators = null; else this.separators = seps.ToArray (); } return type == '=' ? OptionValueType.Required : OptionValueType.Optional; } private static void AddSeparators (string name, int end, ICollection seps) { int start = -1; for (int i = end+1; i < name.Length; ++i) { switch (name [i]) { case '{': if (start != -1) throw new ArgumentException ( string.Format ("Ill-formed name/value separator found in \"{0}\".", name), "prototype"); start = i+1; break; case '}': if (start == -1) throw new ArgumentException ( string.Format ("Ill-formed name/value separator found in \"{0}\".", name), "prototype"); seps.Add (name.Substring (start, i-start)); start = -1; break; default: if (start == -1) seps.Add (name [i].ToString ()); break; } } if (start != -1) throw new ArgumentException ( string.Format ("Ill-formed name/value separator found in \"{0}\".", name), "prototype"); } public void Invoke (OptionContext c) { OnParseComplete (c); c.OptionName = null; c.Option = null; c.OptionValues.Clear (); } protected abstract void OnParseComplete (OptionContext c); public override string ToString () { return Prototype; } } [Serializable] public class OptionException : Exception { private string option; public OptionException () { } public OptionException (string message, string optionName) : base (message) { this.option = optionName; } public OptionException (string message, string optionName, Exception innerException) : base (message, innerException) { this.option = optionName; } protected OptionException (SerializationInfo info, StreamingContext context) : base (info, context) { this.option = info.GetString ("OptionName"); } public string OptionName { get {return this.option;} } [SecurityPermission (SecurityAction.LinkDemand, SerializationFormatter = true)] public override void GetObjectData (SerializationInfo info, StreamingContext context) { base.GetObjectData (info, context); info.AddValue ("OptionName", option); } } public delegate void OptionAction (TKey key, TValue value); public class OptionSet : KeyedCollection { public OptionSet () : this (delegate (string f) {return f;}) { } public OptionSet (Converter localizer) { this.localizer = localizer; } Converter localizer; public Converter MessageLocalizer { get {return localizer;} } protected override string GetKeyForItem (Option item) { if (item == null) throw new ArgumentNullException ("option"); if (item.Names != null && item.Names.Length > 0) return item.Names [0]; // This should never happen, as it's invalid for Option to be // constructed w/o any names. throw new InvalidOperationException ("Option has no names!"); } [Obsolete ("Use KeyedCollection.this[string]")] protected Option GetOptionForName (string option) { if (option == null) throw new ArgumentNullException ("option"); try { return base [option]; } catch (KeyNotFoundException) { return null; } } protected override void InsertItem (int index, Option item) { base.InsertItem (index, item); AddImpl (item); } protected override void RemoveItem (int index) { base.RemoveItem (index); Option p = Items [index]; // KeyedCollection.RemoveItem() handles the 0th item for (int i = 1; i < p.Names.Length; ++i) { Dictionary.Remove (p.Names [i]); } } protected override void SetItem (int index, Option item) { base.SetItem (index, item); RemoveItem (index); AddImpl (item); } private void AddImpl (Option option) { if (option == null) throw new ArgumentNullException ("option"); List added = new List (option.Names.Length); try { // KeyedCollection.InsertItem/SetItem handle the 0th name. for (int i = 1; i < option.Names.Length; ++i) { Dictionary.Add (option.Names [i], option); added.Add (option.Names [i]); } } catch (Exception) { foreach (string name in added) Dictionary.Remove (name); throw; } } public new OptionSet Add (Option option) { base.Add (option); return this; } sealed class ActionOption : Option { Action action; public ActionOption (string prototype, string description, int count, Action action) : base (prototype, description, count) { if (action == null) throw new ArgumentNullException ("action"); this.action = action; } protected override void OnParseComplete (OptionContext c) { action (c.OptionValues); } } public OptionSet Add (string prototype, Action action) { return Add (prototype, null, action); } public OptionSet Add (string prototype, string description, Action action) { if (action == null) throw new ArgumentNullException ("action"); Option p = new ActionOption (prototype, description, 1, delegate (OptionValueCollection v) { action (v [0]); }); base.Add (p); return this; } public OptionSet Add (string prototype, OptionAction action) { return Add (prototype, null, action); } public OptionSet Add (string prototype, string description, OptionAction action) { if (action == null) throw new ArgumentNullException ("action"); Option p = new ActionOption (prototype, description, 2, delegate (OptionValueCollection v) {action (v [0], v [1]);}); base.Add (p); return this; } sealed class ActionOption : Option { Action action; public ActionOption (string prototype, string description, Action action) : base (prototype, description, 1) { if (action == null) throw new ArgumentNullException ("action"); this.action = action; } protected override void OnParseComplete (OptionContext c) { action (Parse (c.OptionValues [0], c)); } } sealed class ActionOption : Option { OptionAction action; public ActionOption (string prototype, string description, OptionAction action) : base (prototype, description, 2) { if (action == null) throw new ArgumentNullException ("action"); this.action = action; } protected override void OnParseComplete (OptionContext c) { action ( Parse (c.OptionValues [0], c), Parse (c.OptionValues [1], c)); } } public OptionSet Add (string prototype, Action action) { return Add (prototype, null, action); } public OptionSet Add (string prototype, string description, Action action) { return Add (new ActionOption (prototype, description, action)); } public OptionSet Add (string prototype, OptionAction action) { return Add (prototype, null, action); } public OptionSet Add (string prototype, string description, OptionAction action) { return Add (new ActionOption (prototype, description, action)); } protected virtual OptionContext CreateOptionContext () { return new OptionContext (this); } #if LINQ public List Parse (IEnumerable arguments) { bool process = true; OptionContext c = CreateOptionContext (); c.OptionIndex = -1; var def = GetOptionForName ("<>"); var unprocessed = from argument in arguments where ++c.OptionIndex >= 0 && (process || def != null) ? process ? argument == "--" ? (process = false) : !Parse (argument, c) ? def != null ? Unprocessed (null, def, c, argument) : true : false : def != null ? Unprocessed (null, def, c, argument) : true : true select argument; List r = unprocessed.ToList (); if (c.Option != null) c.Option.Invoke (c); return r; } #else public List Parse (IEnumerable arguments) { OptionContext c = CreateOptionContext (); c.OptionIndex = -1; bool process = true; List unprocessed = new List (); Option def = Contains ("<>") ? this ["<>"] : null; foreach (string argument in arguments) { ++c.OptionIndex; if (argument == "--") { process = false; continue; } if (!process) { Unprocessed (unprocessed, def, c, argument); continue; } if (!Parse (argument, c)) Unprocessed (unprocessed, def, c, argument); } if (c.Option != null) c.Option.Invoke (c); return unprocessed; } #endif private static bool Unprocessed (ICollection extra, Option def, OptionContext c, string argument) { if (def == null) { extra.Add (argument); return false; } c.OptionValues.Add (argument); c.Option = def; c.Option.Invoke (c); return false; } private readonly Regex ValueOption = new Regex ( @"^(?--|-|/)(?[^:=]+)((?[:=])(?.*))?$"); protected bool GetOptionParts (string argument, out string flag, out string name, out string sep, out string value) { if (argument == null) throw new ArgumentNullException ("argument"); flag = name = sep = value = null; Match m = ValueOption.Match (argument); if (!m.Success) { return false; } flag = m.Groups ["flag"].Value; name = m.Groups ["name"].Value; if (m.Groups ["sep"].Success && m.Groups ["value"].Success) { sep = m.Groups ["sep"].Value; value = m.Groups ["value"].Value; } return true; } protected virtual bool Parse (string argument, OptionContext c) { if (c.Option != null) { ParseValue (argument, c); return true; } string f, n, s, v; if (!GetOptionParts (argument, out f, out n, out s, out v)) return false; Option p; if (Contains (n)) { p = this [n]; c.OptionName = f + n; c.Option = p; switch (p.OptionValueType) { case OptionValueType.None: c.OptionValues.Add (n); c.Option.Invoke (c); break; case OptionValueType.Optional: case OptionValueType.Required: ParseValue (v, c); break; } return true; } // no match; is it a bool option? if (ParseBool (argument, n, c)) return true; // is it a bundled option? if (ParseBundledValue (f, string.Concat (n + s + v), c)) return true; return false; } private void ParseValue (string option, OptionContext c) { if (option != null) foreach (string o in c.Option.ValueSeparators != null ? option.Split (c.Option.ValueSeparators, StringSplitOptions.None) : new string[]{option}) { c.OptionValues.Add (o); } if (c.OptionValues.Count == c.Option.MaxValueCount || c.Option.OptionValueType == OptionValueType.Optional) c.Option.Invoke (c); else if (c.OptionValues.Count > c.Option.MaxValueCount) { throw new OptionException (localizer (string.Format ( "Error: Found {0} option values when expecting {1}.", c.OptionValues.Count, c.Option.MaxValueCount)), c.OptionName); } } private bool ParseBool (string option, string n, OptionContext c) { Option p; string rn; if (n.Length >= 1 && (n [n.Length-1] == '+' || n [n.Length-1] == '-') && Contains ((rn = n.Substring (0, n.Length-1)))) { p = this [rn]; string v = n [n.Length-1] == '+' ? option : null; c.OptionName = option; c.Option = p; c.OptionValues.Add (v); p.Invoke (c); return true; } return false; } private bool ParseBundledValue (string f, string n, OptionContext c) { if (f != "-") return false; for (int i = 0; i < n.Length; ++i) { Option p; string opt = f + n [i].ToString (); string rn = n [i].ToString (); if (!Contains (rn)) { if (i == 0) return false; throw new OptionException (string.Format (localizer ( "Cannot bundle unregistered option '{0}'."), opt), opt); } p = this [rn]; switch (p.OptionValueType) { case OptionValueType.None: Invoke (c, opt, n, p); break; case OptionValueType.Optional: case OptionValueType.Required: { string v = n.Substring (i+1); c.Option = p; c.OptionName = opt; ParseValue (v.Length != 0 ? v : null, c); return true; } default: throw new InvalidOperationException ("Unknown OptionValueType: " + p.OptionValueType); } } return true; } private static void Invoke (OptionContext c, string name, string value, Option option) { c.OptionName = name; c.Option = option; c.OptionValues.Add (value); option.Invoke (c); } private const int OptionWidth = 29; public void WriteOptionDescriptions (TextWriter o) { foreach (Option p in this) { int written = 0; if (!WriteOptionPrototype (o, p, ref written)) continue; if (written < OptionWidth) o.Write (new string (' ', OptionWidth - written)); else { o.WriteLine (); o.Write (new string (' ', OptionWidth)); } bool indent = false; string prefix = new string (' ', OptionWidth+2); foreach (string line in GetLines (localizer (GetDescription (p.Description)))) { if (indent) o.Write (prefix); o.WriteLine (line); indent = true; } } } bool WriteOptionPrototype (TextWriter o, Option p, ref int written) { string[] names = p.Names; int i = GetNextOptionIndex (names, 0); if (i == names.Length) return false; if (names [i].Length == 1) { Write (o, ref written, " -"); Write (o, ref written, names [0]); } else { Write (o, ref written, " --"); Write (o, ref written, names [0]); } for ( i = GetNextOptionIndex (names, i+1); i < names.Length; i = GetNextOptionIndex (names, i+1)) { Write (o, ref written, ", "); Write (o, ref written, names [i].Length == 1 ? "-" : "--"); Write (o, ref written, names [i]); } if (p.OptionValueType == OptionValueType.Optional || p.OptionValueType == OptionValueType.Required) { if (p.OptionValueType == OptionValueType.Optional) { Write (o, ref written, localizer ("[")); } Write (o, ref written, localizer ("=" + GetArgumentName (0, p.MaxValueCount, p.Description))); string sep = p.ValueSeparators != null && p.ValueSeparators.Length > 0 ? p.ValueSeparators [0] : " "; for (int c = 1; c < p.MaxValueCount; ++c) { Write (o, ref written, localizer (sep + GetArgumentName (c, p.MaxValueCount, p.Description))); } if (p.OptionValueType == OptionValueType.Optional) { Write (o, ref written, localizer ("]")); } } return true; } static int GetNextOptionIndex (string[] names, int i) { while (i < names.Length && names [i] == "<>") { ++i; } return i; } static void Write (TextWriter o, ref int n, string s) { n += s.Length; o.Write (s); } private static string GetArgumentName (int index, int maxIndex, string description) { if (description == null) return maxIndex == 1 ? "VALUE" : "VALUE" + (index + 1); string[] nameStart; if (maxIndex == 1) nameStart = new string[]{"{0:", "{"}; else nameStart = new string[]{"{" + index + ":"}; for (int i = 0; i < nameStart.Length; ++i) { int start, j = 0; do { start = description.IndexOf (nameStart [i], j); } while (start >= 0 && j != 0 ? description [j++ - 1] == '{' : false); if (start == -1) continue; int end = description.IndexOf ("}", start); if (end == -1) continue; return description.Substring (start + nameStart [i].Length, end - start - nameStart [i].Length); } return maxIndex == 1 ? "VALUE" : "VALUE" + (index + 1); } private static string GetDescription (string description) { if (description == null) return string.Empty; StringBuilder sb = new StringBuilder (description.Length); int start = -1; for (int i = 0; i < description.Length; ++i) { switch (description [i]) { case '{': if (i == start) { sb.Append ('{'); start = -1; } else if (start < 0) start = i + 1; break; case '}': if (start < 0) { if ((i+1) == description.Length || description [i+1] != '}') throw new InvalidOperationException ("Invalid option description: " + description); ++i; sb.Append ("}"); } else { sb.Append (description.Substring (start, i - start)); start = -1; } break; case ':': if (start < 0) goto default; start = i + 1; break; default: if (start < 0) sb.Append (description [i]); break; } } return sb.ToString (); } private static IEnumerable GetLines (string description) { if (string.IsNullOrEmpty (description)) { yield return string.Empty; yield break; } int length = 80 - OptionWidth - 1; int start = 0, end; do { end = GetLineEnd (start, length, description); char c = description [end-1]; if (char.IsWhiteSpace (c)) --end; bool writeContinuation = end != description.Length && !IsEolChar (c); string line = description.Substring (start, end - start) + (writeContinuation ? "-" : ""); yield return line; start = end; if (char.IsWhiteSpace (c)) ++start; length = 80 - OptionWidth - 2 - 1; } while (end < description.Length); } private static bool IsEolChar (char c) { return !char.IsLetterOrDigit (c); } private static int GetLineEnd (int start, int length, string description) { int end = System.Math.Min (start + length, description.Length); int sep = -1; for (int i = start; i < end; ++i) { if (description [i] == '\n') return i+1; if (IsEolChar (description [i])) sep = i+1; } if (sep == -1 || end == description.Length) return end; return sep; } } } pinta-1.3/Pinta/Pads/0000775000175000017500000000000011747026475015603 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Pads/CanvasPad.cs0000664000175000017500000001273011747026475017775 0ustar00cameroncameron00000000000000// // CanvasPad.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; using Pinta.Gui.Widgets; using System; namespace Pinta { public class CanvasPad : IDockPad { private ScrolledWindow sw; private PintaCanvas canvas; private HRuler hruler; private VRuler vruler; public ScrolledWindow ScrolledWindow { get { return sw; } } public PintaCanvas Canvas { get { return canvas; } } public HRuler HorizontalRuler { get { return hruler; } } public VRuler VerticalRuler { get { return vruler; } } public void Initialize (DockFrame workspace, Menu padMenu) { // Create canvas Table mainTable = new Table (2, 2, false); sw = new ScrolledWindow () { Name = "sw", ShadowType = ShadowType.EtchedOut }; Viewport vp = new Viewport () { ShadowType = ShadowType.None }; canvas = new PintaCanvas () { Name = "canvas", CanDefault = true, CanFocus = true, Events = (Gdk.EventMask)16134 }; // Canvas pad DockItem documentDockItem = workspace.AddItem ("Canvas"); documentDockItem.Behavior = DockItemBehavior.Locked; documentDockItem.Expand = true; documentDockItem.DrawFrame = false; documentDockItem.Label = Catalog.GetString ("Documents"); documentDockItem.Content = mainTable; //rulers hruler = new HRuler (); hruler.Metric = MetricType.Pixels; mainTable.Attach (hruler, 1, 2, 0, 1, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0); vruler = new VRuler (); vruler.Metric = MetricType.Pixels; mainTable.Attach (vruler, 0, 1, 1, 2, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0); sw.Hadjustment.ValueChanged += delegate { UpdateRulerRange (); }; sw.Vadjustment.ValueChanged += delegate { UpdateRulerRange (); }; PintaCore.Workspace.CanvasSizeChanged += delegate { UpdateRulerRange (); }; canvas.MotionNotifyEvent += delegate (object o, MotionNotifyEventArgs args) { if (!PintaCore.Workspace.HasOpenDocuments) return; Cairo.PointD point = PintaCore.Workspace.WindowPointToCanvas (args.Event.X, args.Event.Y); hruler.Position = point.X; vruler.Position = point.Y; }; mainTable.Attach (sw, 1, 2, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Expand | AttachOptions.Fill, 0, 0); sw.Add (vp); vp.Add (canvas); mainTable.ShowAll (); canvas.Show (); vp.Show (); hruler.Visible = false; vruler.Visible = false; PintaCore.Chrome.InitializeCanvas (canvas); canvas.SizeAllocated += delegate { UpdateRulerRange (); }; PintaCore.Actions.View.Rulers.Toggled += HandleRulersToggled; PintaCore.Actions.View.Pixels.Activated += (o, e) => { SetRulersUnit (MetricType.Pixels); }; PintaCore.Actions.View.Inches.Activated += (o, e) => { SetRulersUnit (MetricType.Inches); }; PintaCore.Actions.View.Centimeters.Activated += (o, e) => { SetRulersUnit (MetricType.Centimeters); }; } private void HandleRulersToggled (object sender, EventArgs e) { var visible = ((ToggleAction)sender).Active; hruler.Visible = visible; vruler.Visible = visible; } public void UpdateRulerRange () { Gtk.Main.Iteration (); //Force update of scrollbar upper before recenter Cairo.PointD lower = new Cairo.PointD (0, 0); Cairo.PointD upper = new Cairo.PointD (0, 0); if (PintaCore.Workspace.HasOpenDocuments) { if (PintaCore.Workspace.Offset.X > 0) { lower.X = -PintaCore.Workspace.Offset.X / PintaCore.Workspace.Scale; upper.X = PintaCore.Workspace.ImageSize.Width - lower.X; } else { lower.X = sw.Hadjustment.Value / PintaCore.Workspace.Scale; upper.X = (sw.Hadjustment.Value + sw.Hadjustment.PageSize) / PintaCore.Workspace.Scale; } if (PintaCore.Workspace.Offset.Y > 0) { lower.Y = -PintaCore.Workspace.Offset.Y / PintaCore.Workspace.Scale; upper.Y = PintaCore.Workspace.ImageSize.Height - lower.Y; } else { lower.Y = sw.Vadjustment.Value / PintaCore.Workspace.Scale; upper.Y = (sw.Vadjustment.Value + sw.Vadjustment.PageSize) / PintaCore.Workspace.Scale; } } hruler.SetRange (lower.X, upper.X, 0, upper.X); vruler.SetRange (lower.Y, upper.Y, 0, upper.Y); } private void SetRulersUnit (Gtk.MetricType metric) { hruler.Metric = metric; vruler.Metric = metric; } } } pinta-1.3/Pinta/Pads/ColorPalettePad.cs0000664000175000017500000000434011747026475021155 0ustar00cameroncameron00000000000000// // ColorPalettePad.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta { public class ColorPalettePad : IDockPad { public void Initialize (DockFrame workspace, Menu padMenu) { DockItem palette_item = workspace.AddItem ("Palette"); ColorPaletteWidget palette = new ColorPaletteWidget () { Name = "palette" }; palette_item.Label = Catalog.GetString ("Palette"); palette_item.Content = palette; palette_item.Icon = PintaCore.Resources.GetIcon ("Pinta.png"); palette_item.DefaultLocation = "Toolbox/Bottom"; palette_item.Behavior |= DockItemBehavior.CantClose; palette_item.DefaultWidth = 65; Gtk.ToggleAction show_palette = padMenu.AppendToggleAction ("Palette", Catalog.GetString ("Palette"), null, "Pinta.png"); show_palette.Activated += delegate { palette_item.Visible = show_palette.Active; }; palette_item.VisibleChanged += delegate { show_palette.Active = palette_item.Visible; }; palette.Initialize (); show_palette.Active = palette_item.Visible; } } } pinta-1.3/Pinta/Pads/HistoryPad.cs0000664000175000017500000000450611747026475020225 0ustar00cameroncameron00000000000000// // HistoryPad.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta { public class HistoryPad : IDockPad { public void Initialize (DockFrame workspace, Menu padMenu) { var history = new HistoryTreeView (); DockItem history_item = workspace.AddItem ("History"); DockItemToolbar history_tb = history_item.GetToolbar (PositionType.Bottom); history_item.Label = Catalog.GetString ("History"); history_item.DefaultLocation = "Images/Bottom"; history_item.Content = history; history_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.DuplicateLayer.png"); history_tb.Add (PintaCore.Actions.Edit.Undo.CreateDockToolBarItem ()); history_tb.Add (PintaCore.Actions.Edit.Redo.CreateDockToolBarItem ()); Gtk.ToggleAction show_history = padMenu.AppendToggleAction ("History", Catalog.GetString ("History"), null, "Menu.Layers.DuplicateLayer.png"); show_history.Activated += delegate { history_item.Visible = show_history.Active; }; history_item.VisibleChanged += delegate { show_history.Active = history_item.Visible; }; show_history.Active = history_item.Visible; } } } pinta-1.3/Pinta/Pads/IDockPad.cs0000664000175000017500000000021011747026475017541 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pinta { interface IDockPad { } } pinta-1.3/Pinta/Pads/LayersPad.cs0000664000175000017500000000525611747026475020026 0ustar00cameroncameron00000000000000// // LayersPad.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta { public class LayersPad : IDockPad { public void Initialize (DockFrame workspace, Menu padMenu) { var layers = new LayersListWidget (); DockItem layers_item = workspace.AddItem ("Layers"); DockItemToolbar layers_tb = layers_item.GetToolbar (PositionType.Bottom); layers_item.Label = Catalog.GetString ("Layers"); layers_item.Content = layers; layers_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.MergeLayerDown.png"); layers_tb.Add (PintaCore.Actions.Layers.AddNewLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DeleteLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DuplicateLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MergeLayerDown.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerUp.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerDown.CreateDockToolBarItem ()); Gtk.ToggleAction show_layers = padMenu.AppendToggleAction ("Layers", Catalog.GetString ("Layers"), null, "Menu.Layers.MergeLayerDown.png"); show_layers.Activated += delegate { layers_item.Visible = show_layers.Active; }; layers_item.VisibleChanged += delegate { show_layers.Active = layers_item.Visible; }; show_layers.Active = layers_item.Visible; PintaCore.Workspace.ActiveDocumentChanged += delegate { layers.Reset (); }; } } } pinta-1.3/Pinta/Pads/OpenImagesPad.cs0000664000175000017500000000424311747026475020611 0ustar00cameroncameron00000000000000// // OpenImagesPad.cs // // Author: // Cameron White // // Copyright (c) 2011 2011 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using MonoDevelop.Components.Docking; using Mono.Unix; using Gtk; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta { public class OpenImagesPad : IDockPad { public void Initialize (DockFrame workspace, Menu padMenu) { const string pad_name = "Images"; DockItem open_images_item = workspace.AddItem (pad_name); open_images_item.DefaultLocation = "Layers/Bottom"; open_images_item.Label = Catalog.GetString (pad_name); open_images_item.Content = new OpenImagesListWidget (); open_images_item.Icon = PintaCore.Resources.GetIcon ("Menu.Effects.Default.png"); ToggleAction show_open_images = padMenu.AppendToggleAction (pad_name, Catalog.GetString (pad_name), null, null); show_open_images.Activated += delegate { open_images_item.Visible = show_open_images.Active; }; open_images_item.VisibleChanged += delegate { show_open_images.Active = open_images_item.Visible; }; show_open_images.Active = open_images_item.Visible; } } } pinta-1.3/Pinta/Pads/ToolBoxPad.cs0000664000175000017500000000420611747026475020147 0ustar00cameroncameron00000000000000// // ToolBoxPad.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using Gtk; using Mono.Unix; using MonoDevelop.Components.Docking; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta { public class ToolBoxPad : IDockPad { public void Initialize (DockFrame workspace, Menu padMenu) { DockItem toolbox_item = workspace.AddItem ("Toolbox"); ToolBoxWidget toolbox = new ToolBoxWidget () { Name = "toolbox" }; toolbox_item.Label = Catalog.GetString ("Tools"); toolbox_item.Content = toolbox; toolbox_item.Icon = PintaCore.Resources.GetIcon ("Tools.Pencil.png"); toolbox_item.Behavior |= DockItemBehavior.CantClose; toolbox_item.DefaultWidth = 65; Gtk.ToggleAction show_toolbox = padMenu.AppendToggleAction ("Tools", Catalog.GetString ("Tools"), null, "Tools.Pencil.png"); show_toolbox.Activated += delegate { toolbox_item.Visible = show_toolbox.Active; }; toolbox_item.VisibleChanged += delegate { show_toolbox.Active = toolbox_item.Visible; }; show_toolbox.Active = toolbox_item.Visible; } } } pinta-1.3/Pinta/Pinta.csproj0000664000175000017500000002417111747026475017216 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0} Exe Pinta Pinta v4.0 65001 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin DEBUG prompt 4 x86 false AllRules.ruleset true none false ..\bin prompt 4 x86 AllRules.ruleset true ..\bin\ x86 false AllRules.ruleset none 4 false AllRules.ruleset bin\Release none 4 false Pinta.ico ..\lib\Mono.Addins.dll ..\lib\Mono.Addins.Gui.dll ..\lib\Mono.Addins.Setup.dll gui.stetic stock-auto-hide.png stock-close-12.png stock-dock.png stock-menu-left-12.png stock-menu-right-12.png {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Pinta.Core {83F0C0AD-D587-457C-B72A-1A184D6D76B3} Pinta.Gui.Widgets pinta-1.3/Pinta/Pinta.ico0000664000175000017500000003535611747026475016477 0ustar00cameroncameron0000000000000000 %6  % h6(0`      #%()+++)(%#   "$')888[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[:::  J/0000/-,.0134;VVV[[[E !!! GCCA>;888899@WWW]]]W%%% &&&,,,///...+++BB@=:7433227WWW\\\ o///RRR::::::===<<<777///G//.,*(%#"!!777ZZZaaafffeeeeeedddddddddddddddcccccccccccccccbbbddd^^^[[[YYY %%%QQQuuuFFFKKKJJJCCC999i ///y{{{YYY9***999YYYwww]]]MMM@@@+,+x TTTdmmmYYY000:::GGGoooQQQHHH_YYYXaaaYYY<<<EEEXXXkkkWWWRRRYYYK[[[JJJ4NNN]gih{YYY?YYYYYY2{{{YYY ѿ҄ YYY&qqqYYY+焉5YYYlllYYYda򄉇OYYYhhhYYYFY"YYY bbbwvtYYY)ׯvYYYea]ɳżǺ`ȴhebYYY3Hn8fAYYYb^[мѤzݼ¦¦Х}“f^V{OrGj?d:ɶ_][YYYmEaw=n9g8f3_][̸ӧ~¦ʱʱЦ“f^V{OrGj?nF°ZYYRw J9h=o9g8f"[ZZɴԩȯѻѻЧ“f^V{OrGj?yTYYY$z?|q ] H9g=n8fRW[İլηЧ“f^V{OrGj?bYYYbs~H =i Uvp Z F9g;kAP]Ӿ֮ԿЦ“f^V{OrGj?pYYYu9g0:i Ywn Y D{9g=O`ɽ۹Ц~“f^W}RyQ~\ıYYYW9gC;k ]xl WBx9L^YYY:9gVpexh)XaaaYYY 8f@uhwfEZnYYY8f8fBxlwdnsw[[[YYY8f8fD|n$ngSGg]VxN2Q8f8f GjQEvJpQ{cOo^Pj\Qg\Sh\Rl]Pt_OdJf:J 8f 9gtG*b̞sƓcÎ]YTPM~J|Fv@K!8f ~H$bϨǔeֽÏ_ȝuSNJ|Fv@K!IbϨǔe׿Ð`ɠzSNJ|Fv@K!IһZΥǔe׿Ð`ɠzSNJ|Fs>K IYO$nBTǜt\ĔgRLvCe4O#IzI)II΅K#P%R'O%L&tG*I"I7I'=T0:`Wtf Av8fo8f2:i `w a:j8f'8f9;j cv T8f8f8fA;kftD{8fd8fH;lio:h8f8fP >o!e:i8f8fC8f8f6 ?`` ??????????( @     !&+/11.+&! 1>I=3'*,--,*+.1=\\\ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ___ %%%"""MGGB<767999orrrZZZ +++000:::<<<11100/,)%#DDDauuuZZZNNNRRRMMMQQQEEE$ @@@___```dddddddddccccccccccccccccccddd___ddd2111\\\bbbNNN}ZZZ0tttjjjWWW#,,,EGGGuuuRRRuvuXXX lll\\\UUU333 >>>:} YYYddd___ى```\\\bbbK낈-[[[bbbzw___]]]4Tp@aaaǼȹƳYYYm!Jf~9g9j$ccc߿ʰ۷Ǘk_~SrG\\\NR_ `=n:gdeeѿǭݻǗk_~SrGǯ~wqZZZ0 nz.Rs Y{ \;jV^gоͶǗk_~SrGκifcUUU:h9i ^x YNZf¥Ǘk_X`^^^UU9g:i cuG_uaaa+U9g;jgn:ga9h:gT?@@(  [G v ---@@@333dKKK''' hhh???!!!jnl4ABB]^]󄉉6􆋆9>x@i52m?rԦ:;U9gkx[^sd9"psO M'9gCOGb~7|;k2Yr.|=nA?A?A?AAAAAAAAAAìAAApinta-1.3/Pinta/Properties/0000775000175000017500000000000011747026475017050 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/Properties/AssemblyInfo.cs0000664000175000017500000000171511747026475021776 0ustar00cameroncameron00000000000000using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("Pinta")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion ("1.3.0.0")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] pinta-1.3/Pinta/WindowShell.cs0000664000175000017500000000545511747026475017513 0ustar00cameroncameron00000000000000// // WindowShell.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta { public class WindowShell : Window { private VBox shell_layout; private VBox menu_layout; private HBox workspace_layout; private MenuBar main_menu; private Toolbar main_toolbar; public WindowShell (string name, string title, int width, int height, bool maximize) : base (WindowType.Toplevel) { Name = name; Title = title; DefaultWidth = width; DefaultHeight = height; WindowPosition = WindowPosition.Center; AllowShrink = true; if (maximize) Maximize (); shell_layout = new VBox () { Name = "shell_layout" }; menu_layout = new VBox () { Name = "menu_layout" }; shell_layout.PackStart (menu_layout, false, false, 0); Add (shell_layout); shell_layout.ShowAll (); } public MenuBar CreateMainMenu (string name) { main_menu = new MenuBar (); main_menu.Name = name; menu_layout.PackStart (main_menu, false, false, 0); main_menu.Show (); return main_menu; } public Toolbar CreateToolBar (string name) { main_toolbar = new Toolbar (); main_toolbar.Name = name; menu_layout.PackStart (main_toolbar, false, false, 0); main_toolbar.Show (); return main_toolbar; } public HBox CreateWorkspace () { workspace_layout = new HBox (); workspace_layout.Name = "workspace_layout"; shell_layout.PackStart (workspace_layout); workspace_layout.ShowAll (); return workspace_layout; } public void AddDragDropSupport (params TargetEntry[] entries) { Gtk.Drag.DestSet (this, Gtk.DestDefaults.Motion | Gtk.DestDefaults.Highlight | Gtk.DestDefaults.Drop, entries, Gdk.DragAction.Copy); } } } pinta-1.3/Pinta/gtk-gui/0000775000175000017500000000000011747026475016263 5ustar00cameroncameron00000000000000pinta-1.3/Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs0000664000175000017500000001536711747026475024151 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta { public partial class LayerPropertiesDialog { private global::Gtk.VBox vbox2; private global::Gtk.HBox hbox1; private global::Gtk.Label label1; private global::Gtk.Entry layerNameEntry; private global::Gtk.CheckButton visibilityCheckbox; private global::Gtk.HSeparator hseparator2; private global::Gtk.HBox hbox2; private global::Gtk.Label label2; private global::Gtk.SpinButton opacitySpinner; private global::Gtk.HScale opacitySlider; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.LayerPropertiesDialog this.Name = "Pinta.LayerPropertiesDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Layer Properties"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child Pinta.LayerPropertiesDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 10; this.vbox2.BorderWidth = ((uint)(9)); // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Name:"); this.hbox1.Add (this.label1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.label1])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.layerNameEntry = new global::Gtk.Entry (); this.layerNameEntry.CanFocus = true; this.layerNameEntry.Name = "layerNameEntry"; this.layerNameEntry.IsEditable = true; this.layerNameEntry.InvisibleChar = '?'; this.hbox1.Add (this.layerNameEntry); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.layerNameEntry])); w3.Position = 1; this.vbox2.Add (this.hbox1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.visibilityCheckbox = new global::Gtk.CheckButton (); this.visibilityCheckbox.CanFocus = true; this.visibilityCheckbox.Name = "visibilityCheckbox"; this.visibilityCheckbox.Label = global::Mono.Unix.Catalog.GetString ("Visible"); this.visibilityCheckbox.DrawIndicator = true; this.visibilityCheckbox.UseUnderline = true; this.vbox2.Add (this.visibilityCheckbox); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.visibilityCheckbox])); w5.Position = 1; w5.Expand = false; w5.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hseparator2 = new global::Gtk.HSeparator (); this.hseparator2.Name = "hseparator2"; this.vbox2.Add (this.hseparator2); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hseparator2])); w6.Position = 2; w6.Expand = false; w6.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 16; // Container child hbox2.Gtk.Box+BoxChild this.label2 = new global::Gtk.Label (); this.label2.Name = "label2"; this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Opacity:"); this.hbox2.Add (this.label2); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label2])); w7.Position = 0; w7.Expand = false; w7.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.opacitySpinner = new global::Gtk.SpinButton (0, 100, 1); this.opacitySpinner.CanFocus = true; this.opacitySpinner.Name = "opacitySpinner"; this.opacitySpinner.Adjustment.PageIncrement = 10; this.opacitySpinner.ClimbRate = 1; this.opacitySpinner.Numeric = true; this.hbox2.Add (this.opacitySpinner); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.opacitySpinner])); w8.Position = 1; w8.Expand = false; w8.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.opacitySlider = new global::Gtk.HScale (null); this.opacitySlider.CanFocus = true; this.opacitySlider.Name = "opacitySlider"; this.opacitySlider.Adjustment.Upper = 100; this.opacitySlider.Adjustment.PageIncrement = 10; this.opacitySlider.Adjustment.StepIncrement = 1; this.opacitySlider.DrawValue = true; this.opacitySlider.Digits = 0; this.opacitySlider.ValuePos = ((global::Gtk.PositionType)(2)); this.hbox2.Add (this.opacitySlider); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.opacitySlider])); w9.Position = 2; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox2])); w10.Position = 3; w10.Expand = false; w10.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Internal child Pinta.LayerPropertiesDialog.ActionArea global::Gtk.HButtonBox w12 = this.ActionArea; w12.Name = "dialog1_ActionArea"; w12.Spacing = 10; w12.BorderWidth = ((uint)(5)); w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w13 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonCancel])); w13.Expand = false; w13.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonOk])); w14.Position = 1; w14.Expand = false; w14.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 349; this.DefaultHeight = 224; this.Show (); } } } pinta-1.3/Pinta/gtk-gui/Pinta.NewImageDialog.cs0000664000175000017500000002155411747026475022507 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta { public partial class NewImageDialog { private global::Gtk.Label label5; private global::Gtk.Table table1; private global::Gtk.Alignment alignment1; private global::Gtk.Alignment alignment2; private global::Gtk.Alignment alignment3; private global::Gtk.Alignment alignment4; private global::Gtk.SpinButton heightSpinner; private global::Gtk.Label label1; private global::Gtk.Label label2; private global::Gtk.Label label3; private global::Gtk.Label label4; private global::Gtk.SpinButton widthSpinner; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.NewImageDialog this.Name = "Pinta.NewImageDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("New Image"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child Pinta.NewImageDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.Xalign = 0F; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("New Image Size "); w1.Add (this.label5); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1 [this.label5])); w2.Position = 0; w2.Expand = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(4)), ((uint)(5)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(10)); this.table1.ColumnSpacing = ((uint)(8)); // Container child table1.Gtk.Table+TableChild this.alignment1 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment1.Name = "alignment1"; this.table1.Add (this.alignment1); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1 [this.alignment1])); w3.LeftAttach = ((uint)(1)); w3.RightAttach = ((uint)(2)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.alignment2 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment2.Name = "alignment2"; this.table1.Add (this.alignment2); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1 [this.alignment2])); w4.TopAttach = ((uint)(3)); w4.BottomAttach = ((uint)(4)); w4.LeftAttach = ((uint)(1)); w4.RightAttach = ((uint)(2)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.alignment3 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment3.Name = "alignment3"; this.table1.Add (this.alignment3); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.alignment3])); w5.TopAttach = ((uint)(1)); w5.BottomAttach = ((uint)(2)); w5.LeftAttach = ((uint)(4)); w5.RightAttach = ((uint)(5)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.alignment4 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.alignment4.Name = "alignment4"; this.table1.Add (this.alignment4); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1 [this.alignment4])); w6.TopAttach = ((uint)(1)); w6.BottomAttach = ((uint)(2)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.heightSpinner = new global::Gtk.SpinButton (1, 10000, 1); this.heightSpinner.CanFocus = true; this.heightSpinner.Name = "heightSpinner"; this.heightSpinner.Adjustment.PageIncrement = 10; this.heightSpinner.ClimbRate = 1; this.heightSpinner.Numeric = true; this.heightSpinner.Value = 600; this.table1.Add (this.heightSpinner); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1 [this.heightSpinner])); w7.TopAttach = ((uint)(2)); w7.BottomAttach = ((uint)(3)); w7.LeftAttach = ((uint)(2)); w7.RightAttach = ((uint)(3)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("pixels"); this.table1.Add (this.label1); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1 [this.label1])); w8.TopAttach = ((uint)(1)); w8.BottomAttach = ((uint)(2)); w8.LeftAttach = ((uint)(3)); w8.RightAttach = ((uint)(4)); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label2 = new global::Gtk.Label (); this.label2.Name = "label2"; this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("pixels"); this.table1.Add (this.label2); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1 [this.label2])); w9.TopAttach = ((uint)(2)); w9.BottomAttach = ((uint)(3)); w9.LeftAttach = ((uint)(3)); w9.RightAttach = ((uint)(4)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.Xalign = 1F; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Width:"); this.table1.Add (this.label3); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1 [this.label3])); w10.TopAttach = ((uint)(1)); w10.BottomAttach = ((uint)(2)); w10.LeftAttach = ((uint)(1)); w10.RightAttach = ((uint)(2)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label4 = new global::Gtk.Label (); this.label4.Name = "label4"; this.label4.Xalign = 1F; this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Height:"); this.label4.Justify = ((global::Gtk.Justification)(1)); this.table1.Add (this.label4); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1 [this.label4])); w11.TopAttach = ((uint)(2)); w11.BottomAttach = ((uint)(3)); w11.LeftAttach = ((uint)(1)); w11.RightAttach = ((uint)(2)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.widthSpinner = new global::Gtk.SpinButton (1, 10000, 1); this.widthSpinner.CanFocus = true; this.widthSpinner.Name = "widthSpinner"; this.widthSpinner.Adjustment.PageIncrement = 10; this.widthSpinner.ClimbRate = 1; this.widthSpinner.Numeric = true; this.widthSpinner.Value = 800; this.table1.Add (this.widthSpinner); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1 [this.widthSpinner])); w12.TopAttach = ((uint)(1)); w12.BottomAttach = ((uint)(2)); w12.LeftAttach = ((uint)(2)); w12.RightAttach = ((uint)(3)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table1); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(w1 [this.table1])); w13.Position = 1; // Internal child Pinta.NewImageDialog.ActionArea global::Gtk.HButtonBox w14 = this.ActionArea; w14.Name = "dialog1_ActionArea"; w14.Spacing = 10; w14.BorderWidth = ((uint)(5)); w14.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14 [this.buttonCancel])); w15.Expand = false; w15.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w16 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14 [this.buttonOk])); w16.Position = 1; w16.Expand = false; w16.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 251; this.DefaultHeight = 179; this.Show (); } } } pinta-1.3/Pinta/gtk-gui/Pinta.ProgressDialog.cs0000664000175000017500000000552711747026475022621 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta { public partial class ProgressDialog { private Gtk.Label label; private Gtk.ProgressBar progress_bar; private Gtk.Button buttonCancel; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.ProgressDialog this.Name = "Pinta.ProgressDialog"; this.WindowPosition = ((Gtk.WindowPosition)(4)); // Internal child Pinta.ProgressDialog.VBox Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.label = new Gtk.Label(); this.label.Name = "label"; this.label.LabelProp = "label2"; w1.Add(this.label); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(w1[this.label])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.progress_bar = new Gtk.ProgressBar(); this.progress_bar.Name = "progress_bar"; w1.Add(this.progress_bar); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(w1[this.progress_bar])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Internal child Pinta.ProgressDialog.ActionArea Gtk.HButtonBox w4 = this.ActionArea; w4.Name = "dialog1_ActionArea"; w4.Spacing = 10; w4.BorderWidth = ((uint)(5)); w4.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new Gtk.Button(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget(this.buttonCancel, -6); Gtk.ButtonBox.ButtonBoxChild w5 = ((Gtk.ButtonBox.ButtonBoxChild)(w4[this.buttonCancel])); w5.Expand = false; w5.Fill = false; if ((this.Child != null)) { this.Child.ShowAll(); } this.DefaultWidth = 400; this.DefaultHeight = 114; this.Hide(); } } } pinta-1.3/Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs0000664000175000017500000006410711747026475023411 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta { public partial class ResizeCanvasDialog { private Gtk.VBox vbox2; private Gtk.HBox hbox1; private Gtk.RadioButton percentageRadio; private Gtk.SpinButton percentageSpinner; private Gtk.Label label1; private Gtk.HBox hbox2; private Gtk.RadioButton absoluteRadio; private Gtk.HBox hbox3; private Gtk.Label label2; private Gtk.SpinButton widthSpinner; private Gtk.Label label4; private Gtk.HBox hbox4; private Gtk.Label label3; private Gtk.SpinButton heightSpinner; private Gtk.Label label5; private Gtk.CheckButton aspectCheckbox; private Gtk.HBox hbox5; private Gtk.Alignment alignment1; private Gtk.Table table1; private Gtk.Button CenterButton; private Gtk.Button EButton; private Gtk.Button NButton; private Gtk.Button NEButton; private Gtk.Button NWButton; private Gtk.Button SButton; private Gtk.Button SEButton; private Gtk.Button SWButton; private Gtk.Button WButton; private Gtk.Alignment alignment2; private Gtk.Label label6; private Gtk.HSeparator hseparator1; private Gtk.Button buttonCancel; private Gtk.Button buttonOk; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.ResizeCanvasDialog this.Name = "Pinta.ResizeCanvasDialog"; this.Title = Mono.Unix.Catalog.GetString("Resize Canvas"); this.WindowPosition = ((Gtk.WindowPosition)(4)); this.Modal = true; this.DefaultWidth = 300; this.DefaultHeight = 200; // Internal child Pinta.ResizeCanvasDialog.VBox Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new Gtk.VBox(); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; this.vbox2.BorderWidth = ((uint)(12)); // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.percentageRadio = new Gtk.RadioButton(Mono.Unix.Catalog.GetString("By percentage:")); this.percentageRadio.CanFocus = true; this.percentageRadio.Name = "percentageRadio"; this.percentageRadio.DrawIndicator = true; this.percentageRadio.UseUnderline = true; this.percentageRadio.Group = new GLib.SList(System.IntPtr.Zero); this.hbox1.Add(this.percentageRadio); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.percentageRadio])); w2.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.percentageSpinner = new Gtk.SpinButton(1, 1000, 1); this.percentageSpinner.CanFocus = true; this.percentageSpinner.Name = "percentageSpinner"; this.percentageSpinner.Adjustment.PageIncrement = 10; this.percentageSpinner.ClimbRate = 1; this.percentageSpinner.Numeric = true; this.percentageSpinner.Value = 100; this.hbox1.Add(this.percentageSpinner); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.hbox1[this.percentageSpinner])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.label1 = new Gtk.Label(); this.label1.Name = "label1"; this.label1.LabelProp = "%"; this.hbox1.Add(this.label1); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1])); w4.Position = 2; w4.Expand = false; w4.Fill = false; this.vbox2.Add(this.hbox1); Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w5.Position = 0; w5.Expand = false; w5.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.absoluteRadio = new Gtk.RadioButton(Mono.Unix.Catalog.GetString("By absolute size:")); this.absoluteRadio.CanFocus = true; this.absoluteRadio.Name = "absoluteRadio"; this.absoluteRadio.DrawIndicator = true; this.absoluteRadio.UseUnderline = true; this.absoluteRadio.Group = this.percentageRadio.Group; this.hbox2.Add(this.absoluteRadio); Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.hbox2[this.absoluteRadio])); w6.Position = 0; this.vbox2.Add(this.hbox2); Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w7.Position = 1; w7.Expand = false; w7.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox3 = new Gtk.HBox(); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.label2 = new Gtk.Label(); this.label2.Name = "label2"; this.label2.LabelProp = Mono.Unix.Catalog.GetString("Width:"); this.hbox3.Add(this.label2); Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.hbox3[this.label2])); w8.Position = 0; w8.Expand = false; w8.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.widthSpinner = new Gtk.SpinButton(1, 10000, 1); this.widthSpinner.Sensitive = false; this.widthSpinner.CanFocus = true; this.widthSpinner.Name = "widthSpinner"; this.widthSpinner.Adjustment.PageIncrement = 10; this.widthSpinner.ClimbRate = 1; this.widthSpinner.Numeric = true; this.hbox3.Add(this.widthSpinner); Gtk.Box.BoxChild w9 = ((Gtk.Box.BoxChild)(this.hbox3[this.widthSpinner])); w9.Position = 1; w9.Expand = false; w9.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.label4 = new Gtk.Label(); this.label4.Name = "label4"; this.label4.LabelProp = Mono.Unix.Catalog.GetString("pixels"); this.hbox3.Add(this.label4); Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(this.hbox3[this.label4])); w10.Position = 2; w10.Expand = false; w10.Fill = false; this.vbox2.Add(this.hbox3); Gtk.Box.BoxChild w11 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox3])); w11.Position = 2; w11.Expand = false; w11.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox4 = new Gtk.HBox(); this.hbox4.Name = "hbox4"; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.label3 = new Gtk.Label(); this.label3.Name = "label3"; this.label3.LabelProp = Mono.Unix.Catalog.GetString("Height:"); this.hbox4.Add(this.label3); Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(this.hbox4[this.label3])); w12.Position = 0; w12.Expand = false; w12.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.heightSpinner = new Gtk.SpinButton(1, 10000, 1); this.heightSpinner.Sensitive = false; this.heightSpinner.CanFocus = true; this.heightSpinner.Name = "heightSpinner"; this.heightSpinner.Adjustment.PageIncrement = 10; this.heightSpinner.ClimbRate = 1; this.heightSpinner.Numeric = true; this.hbox4.Add(this.heightSpinner); Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.hbox4[this.heightSpinner])); w13.Position = 1; w13.Expand = false; w13.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.label5 = new Gtk.Label(); this.label5.Name = "label5"; this.label5.LabelProp = Mono.Unix.Catalog.GetString("pixels"); this.hbox4.Add(this.label5); Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.hbox4[this.label5])); w14.Position = 2; w14.Expand = false; w14.Fill = false; this.vbox2.Add(this.hbox4); Gtk.Box.BoxChild w15 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox4])); w15.Position = 3; w15.Expand = false; w15.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.aspectCheckbox = new Gtk.CheckButton(); this.aspectCheckbox.Sensitive = false; this.aspectCheckbox.CanFocus = true; this.aspectCheckbox.Name = "aspectCheckbox"; this.aspectCheckbox.Label = Mono.Unix.Catalog.GetString("Maintain aspect ratio"); this.aspectCheckbox.Active = true; this.aspectCheckbox.DrawIndicator = true; this.aspectCheckbox.UseUnderline = true; this.vbox2.Add(this.aspectCheckbox); Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.vbox2[this.aspectCheckbox])); w16.Position = 4; w16.Expand = false; w16.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox5 = new Gtk.HBox(); this.hbox5.Name = "hbox5"; this.hbox5.Spacing = 6; // Container child hbox5.Gtk.Box+BoxChild this.alignment1 = new Gtk.Alignment(0.5F, 0.5F, 1F, 1F); this.alignment1.Name = "alignment1"; this.hbox5.Add(this.alignment1); Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.hbox5[this.alignment1])); w17.Position = 0; // Container child hbox5.Gtk.Box+BoxChild this.table1 = new Gtk.Table(((uint)(3)), ((uint)(3)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.CenterButton = new Gtk.Button(); this.CenterButton.WidthRequest = 30; this.CenterButton.HeightRequest = 30; this.CenterButton.CanFocus = true; this.CenterButton.Name = "CenterButton"; this.CenterButton.UseUnderline = true; // Container child CenterButton.Gtk.Container+ContainerChild Gtk.Alignment w18 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w19 = new Gtk.HBox(); w19.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w20 = new Gtk.Image(); w19.Add(w20); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w22 = new Gtk.Label(); w19.Add(w22); w18.Add(w19); this.CenterButton.Add(w18); this.table1.Add(this.CenterButton); Gtk.Table.TableChild w26 = ((Gtk.Table.TableChild)(this.table1[this.CenterButton])); w26.TopAttach = ((uint)(1)); w26.BottomAttach = ((uint)(2)); w26.LeftAttach = ((uint)(1)); w26.RightAttach = ((uint)(2)); w26.XOptions = ((Gtk.AttachOptions)(4)); w26.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.EButton = new Gtk.Button(); this.EButton.WidthRequest = 30; this.EButton.HeightRequest = 30; this.EButton.CanFocus = true; this.EButton.Name = "EButton"; this.EButton.UseUnderline = true; // Container child EButton.Gtk.Container+ContainerChild Gtk.Alignment w27 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w28 = new Gtk.HBox(); w28.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w29 = new Gtk.Image(); w28.Add(w29); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w31 = new Gtk.Label(); w28.Add(w31); w27.Add(w28); this.EButton.Add(w27); this.table1.Add(this.EButton); Gtk.Table.TableChild w35 = ((Gtk.Table.TableChild)(this.table1[this.EButton])); w35.TopAttach = ((uint)(1)); w35.BottomAttach = ((uint)(2)); w35.LeftAttach = ((uint)(2)); w35.RightAttach = ((uint)(3)); w35.XOptions = ((Gtk.AttachOptions)(4)); w35.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.NButton = new Gtk.Button(); this.NButton.WidthRequest = 30; this.NButton.HeightRequest = 30; this.NButton.CanFocus = true; this.NButton.Name = "NButton"; this.NButton.UseUnderline = true; // Container child NButton.Gtk.Container+ContainerChild Gtk.Alignment w36 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w37 = new Gtk.HBox(); w37.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w38 = new Gtk.Image(); w37.Add(w38); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w40 = new Gtk.Label(); w37.Add(w40); w36.Add(w37); this.NButton.Add(w36); this.table1.Add(this.NButton); Gtk.Table.TableChild w44 = ((Gtk.Table.TableChild)(this.table1[this.NButton])); w44.LeftAttach = ((uint)(1)); w44.RightAttach = ((uint)(2)); w44.XOptions = ((Gtk.AttachOptions)(4)); w44.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.NEButton = new Gtk.Button(); this.NEButton.WidthRequest = 30; this.NEButton.HeightRequest = 30; this.NEButton.CanFocus = true; this.NEButton.Name = "NEButton"; this.NEButton.UseUnderline = true; // Container child NEButton.Gtk.Container+ContainerChild Gtk.Alignment w45 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w46 = new Gtk.HBox(); w46.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w47 = new Gtk.Image(); w46.Add(w47); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w49 = new Gtk.Label(); w46.Add(w49); w45.Add(w46); this.NEButton.Add(w45); this.table1.Add(this.NEButton); Gtk.Table.TableChild w53 = ((Gtk.Table.TableChild)(this.table1[this.NEButton])); w53.LeftAttach = ((uint)(2)); w53.RightAttach = ((uint)(3)); w53.XOptions = ((Gtk.AttachOptions)(4)); w53.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.NWButton = new Gtk.Button(); this.NWButton.WidthRequest = 30; this.NWButton.HeightRequest = 30; this.NWButton.CanFocus = true; this.NWButton.Name = "NWButton"; this.NWButton.UseUnderline = true; // Container child NWButton.Gtk.Container+ContainerChild Gtk.Alignment w54 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w55 = new Gtk.HBox(); w55.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w56 = new Gtk.Image(); w55.Add(w56); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w58 = new Gtk.Label(); w55.Add(w58); w54.Add(w55); this.NWButton.Add(w54); this.table1.Add(this.NWButton); Gtk.Table.TableChild w62 = ((Gtk.Table.TableChild)(this.table1[this.NWButton])); w62.XOptions = ((Gtk.AttachOptions)(4)); w62.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.SButton = new Gtk.Button(); this.SButton.WidthRequest = 30; this.SButton.HeightRequest = 30; this.SButton.CanFocus = true; this.SButton.Name = "SButton"; this.SButton.UseUnderline = true; // Container child SButton.Gtk.Container+ContainerChild Gtk.Alignment w63 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w64 = new Gtk.HBox(); w64.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w65 = new Gtk.Image(); w64.Add(w65); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w67 = new Gtk.Label(); w64.Add(w67); w63.Add(w64); this.SButton.Add(w63); this.table1.Add(this.SButton); Gtk.Table.TableChild w71 = ((Gtk.Table.TableChild)(this.table1[this.SButton])); w71.TopAttach = ((uint)(2)); w71.BottomAttach = ((uint)(3)); w71.LeftAttach = ((uint)(1)); w71.RightAttach = ((uint)(2)); w71.XOptions = ((Gtk.AttachOptions)(4)); w71.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.SEButton = new Gtk.Button(); this.SEButton.WidthRequest = 30; this.SEButton.HeightRequest = 30; this.SEButton.CanFocus = true; this.SEButton.Name = "SEButton"; this.SEButton.UseUnderline = true; // Container child SEButton.Gtk.Container+ContainerChild Gtk.Alignment w72 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w73 = new Gtk.HBox(); w73.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w74 = new Gtk.Image(); w73.Add(w74); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w76 = new Gtk.Label(); w73.Add(w76); w72.Add(w73); this.SEButton.Add(w72); this.table1.Add(this.SEButton); Gtk.Table.TableChild w80 = ((Gtk.Table.TableChild)(this.table1[this.SEButton])); w80.TopAttach = ((uint)(2)); w80.BottomAttach = ((uint)(3)); w80.LeftAttach = ((uint)(2)); w80.RightAttach = ((uint)(3)); w80.XOptions = ((Gtk.AttachOptions)(4)); w80.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.SWButton = new Gtk.Button(); this.SWButton.WidthRequest = 30; this.SWButton.HeightRequest = 30; this.SWButton.CanFocus = true; this.SWButton.Name = "SWButton"; this.SWButton.UseUnderline = true; // Container child SWButton.Gtk.Container+ContainerChild Gtk.Alignment w81 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w82 = new Gtk.HBox(); w82.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w83 = new Gtk.Image(); w82.Add(w83); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w85 = new Gtk.Label(); w82.Add(w85); w81.Add(w82); this.SWButton.Add(w81); this.table1.Add(this.SWButton); Gtk.Table.TableChild w89 = ((Gtk.Table.TableChild)(this.table1[this.SWButton])); w89.TopAttach = ((uint)(2)); w89.BottomAttach = ((uint)(3)); w89.XOptions = ((Gtk.AttachOptions)(4)); w89.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.WButton = new Gtk.Button(); this.WButton.WidthRequest = 30; this.WButton.HeightRequest = 30; this.WButton.CanFocus = true; this.WButton.Name = "WButton"; this.WButton.UseUnderline = true; // Container child WButton.Gtk.Container+ContainerChild Gtk.Alignment w90 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w91 = new Gtk.HBox(); w91.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w92 = new Gtk.Image(); w91.Add(w92); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w94 = new Gtk.Label(); w91.Add(w94); w90.Add(w91); this.WButton.Add(w90); this.table1.Add(this.WButton); Gtk.Table.TableChild w98 = ((Gtk.Table.TableChild)(this.table1[this.WButton])); w98.TopAttach = ((uint)(1)); w98.BottomAttach = ((uint)(2)); w98.XOptions = ((Gtk.AttachOptions)(4)); w98.YOptions = ((Gtk.AttachOptions)(4)); this.hbox5.Add(this.table1); Gtk.Box.BoxChild w99 = ((Gtk.Box.BoxChild)(this.hbox5[this.table1])); w99.Position = 1; w99.Expand = false; w99.Fill = false; // Container child hbox5.Gtk.Box+BoxChild this.alignment2 = new Gtk.Alignment(0.5F, 0.5F, 1F, 1F); this.alignment2.Name = "alignment2"; this.hbox5.Add(this.alignment2); Gtk.Box.BoxChild w100 = ((Gtk.Box.BoxChild)(this.hbox5[this.alignment2])); w100.Position = 2; this.vbox2.Add(this.hbox5); Gtk.Box.BoxChild w101 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox5])); w101.PackType = ((Gtk.PackType)(1)); w101.Position = 5; w101.Expand = false; w101.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label6 = new Gtk.Label(); this.label6.Name = "label6"; this.label6.Xalign = 0F; this.label6.LabelProp = Mono.Unix.Catalog.GetString("Anchor:"); this.vbox2.Add(this.label6); Gtk.Box.BoxChild w102 = ((Gtk.Box.BoxChild)(this.vbox2[this.label6])); w102.PackType = ((Gtk.PackType)(1)); w102.Position = 6; w102.Expand = false; w102.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hseparator1 = new Gtk.HSeparator(); this.hseparator1.Name = "hseparator1"; this.vbox2.Add(this.hseparator1); Gtk.Box.BoxChild w103 = ((Gtk.Box.BoxChild)(this.vbox2[this.hseparator1])); w103.PackType = ((Gtk.PackType)(1)); w103.Position = 7; w103.Expand = false; w103.Fill = false; w1.Add(this.vbox2); Gtk.Box.BoxChild w104 = ((Gtk.Box.BoxChild)(w1[this.vbox2])); w104.Position = 0; w104.Expand = false; w104.Fill = false; // Internal child Pinta.ResizeCanvasDialog.ActionArea Gtk.HButtonBox w105 = this.ActionArea; w105.Name = "dialog1_ActionArea"; w105.Spacing = 10; w105.BorderWidth = ((uint)(5)); w105.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new Gtk.Button(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget(this.buttonCancel, -6); Gtk.ButtonBox.ButtonBoxChild w106 = ((Gtk.ButtonBox.ButtonBoxChild)(w105[this.buttonCancel])); w106.Expand = false; w106.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new Gtk.Button(); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget(this.buttonOk, -5); Gtk.ButtonBox.ButtonBoxChild w107 = ((Gtk.ButtonBox.ButtonBoxChild)(w105[this.buttonOk])); w107.Position = 1; w107.Expand = false; w107.Fill = false; if ((this.Child != null)) { this.Child.ShowAll(); } this.Show(); } } } pinta-1.3/Pinta/gtk-gui/Pinta.ResizeImageDialog.cs0000664000175000017500000002662211747026475023220 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta { public partial class ResizeImageDialog { private Gtk.VBox vbox2; private Gtk.HBox hbox1; private Gtk.RadioButton percentageRadio; private Gtk.SpinButton percentageSpinner; private Gtk.Label label1; private Gtk.HBox hbox2; private Gtk.RadioButton absoluteRadio; private Gtk.HBox hbox3; private Gtk.Label label2; private Gtk.SpinButton widthSpinner; private Gtk.Label label4; private Gtk.HBox hbox4; private Gtk.Label label3; private Gtk.SpinButton heightSpinner; private Gtk.Label label5; private Gtk.CheckButton aspectCheckbox; private Gtk.Button buttonCancel; private Gtk.Button buttonOk; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.ResizeImageDialog this.Name = "Pinta.ResizeImageDialog"; this.Title = Mono.Unix.Catalog.GetString("Resize Image"); this.WindowPosition = ((Gtk.WindowPosition)(4)); this.Modal = true; this.DefaultWidth = 300; this.DefaultHeight = 200; // Internal child Pinta.ResizeImageDialog.VBox Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new Gtk.VBox(); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; this.vbox2.BorderWidth = ((uint)(12)); // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.percentageRadio = new Gtk.RadioButton(Mono.Unix.Catalog.GetString("By percentage:")); this.percentageRadio.CanFocus = true; this.percentageRadio.Name = "percentageRadio"; this.percentageRadio.Active = true; this.percentageRadio.DrawIndicator = true; this.percentageRadio.UseUnderline = true; this.percentageRadio.Group = new GLib.SList(System.IntPtr.Zero); this.hbox1.Add(this.percentageRadio); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.percentageRadio])); w2.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.percentageSpinner = new Gtk.SpinButton(1, 1000, 1); this.percentageSpinner.CanFocus = true; this.percentageSpinner.Name = "percentageSpinner"; this.percentageSpinner.Adjustment.PageIncrement = 10; this.percentageSpinner.ClimbRate = 1; this.percentageSpinner.Numeric = true; this.percentageSpinner.Value = 100; this.hbox1.Add(this.percentageSpinner); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.hbox1[this.percentageSpinner])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.label1 = new Gtk.Label(); this.label1.Name = "label1"; this.label1.LabelProp = "%"; this.hbox1.Add(this.label1); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1])); w4.Position = 2; w4.Expand = false; w4.Fill = false; this.vbox2.Add(this.hbox1); Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w5.Position = 0; w5.Expand = false; w5.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.absoluteRadio = new Gtk.RadioButton(Mono.Unix.Catalog.GetString("By absolute size:")); this.absoluteRadio.CanFocus = true; this.absoluteRadio.Name = "absoluteRadio"; this.absoluteRadio.DrawIndicator = true; this.absoluteRadio.UseUnderline = true; this.absoluteRadio.Group = this.percentageRadio.Group; this.hbox2.Add(this.absoluteRadio); Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.hbox2[this.absoluteRadio])); w6.Position = 0; this.vbox2.Add(this.hbox2); Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w7.Position = 1; w7.Expand = false; w7.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox3 = new Gtk.HBox(); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.label2 = new Gtk.Label(); this.label2.Name = "label2"; this.label2.LabelProp = Mono.Unix.Catalog.GetString("Width:"); this.hbox3.Add(this.label2); Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.hbox3[this.label2])); w8.Position = 0; w8.Expand = false; w8.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.widthSpinner = new Gtk.SpinButton(1, 10000, 1); this.widthSpinner.Sensitive = false; this.widthSpinner.CanFocus = true; this.widthSpinner.Name = "widthSpinner"; this.widthSpinner.Adjustment.PageIncrement = 10; this.widthSpinner.ClimbRate = 1; this.widthSpinner.Numeric = true; this.hbox3.Add(this.widthSpinner); Gtk.Box.BoxChild w9 = ((Gtk.Box.BoxChild)(this.hbox3[this.widthSpinner])); w9.Position = 1; w9.Expand = false; w9.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.label4 = new Gtk.Label(); this.label4.Name = "label4"; this.label4.LabelProp = Mono.Unix.Catalog.GetString("pixels"); this.hbox3.Add(this.label4); Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(this.hbox3[this.label4])); w10.Position = 2; w10.Expand = false; w10.Fill = false; this.vbox2.Add(this.hbox3); Gtk.Box.BoxChild w11 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox3])); w11.Position = 2; w11.Expand = false; w11.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox4 = new Gtk.HBox(); this.hbox4.Name = "hbox4"; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.label3 = new Gtk.Label(); this.label3.Name = "label3"; this.label3.LabelProp = Mono.Unix.Catalog.GetString("Height:"); this.hbox4.Add(this.label3); Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(this.hbox4[this.label3])); w12.Position = 0; w12.Expand = false; w12.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.heightSpinner = new Gtk.SpinButton(1, 10000, 1); this.heightSpinner.Sensitive = false; this.heightSpinner.CanFocus = true; this.heightSpinner.Name = "heightSpinner"; this.heightSpinner.Adjustment.PageIncrement = 10; this.heightSpinner.ClimbRate = 1; this.heightSpinner.Numeric = true; this.hbox4.Add(this.heightSpinner); Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.hbox4[this.heightSpinner])); w13.Position = 1; w13.Expand = false; w13.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.label5 = new Gtk.Label(); this.label5.Name = "label5"; this.label5.LabelProp = Mono.Unix.Catalog.GetString("pixels"); this.hbox4.Add(this.label5); Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.hbox4[this.label5])); w14.Position = 2; w14.Expand = false; w14.Fill = false; this.vbox2.Add(this.hbox4); Gtk.Box.BoxChild w15 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox4])); w15.Position = 3; w15.Expand = false; w15.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.aspectCheckbox = new Gtk.CheckButton(); this.aspectCheckbox.Sensitive = false; this.aspectCheckbox.CanFocus = true; this.aspectCheckbox.Name = "aspectCheckbox"; this.aspectCheckbox.Label = Mono.Unix.Catalog.GetString("Maintain aspect ratio"); this.aspectCheckbox.Active = true; this.aspectCheckbox.DrawIndicator = true; this.aspectCheckbox.UseUnderline = true; this.vbox2.Add(this.aspectCheckbox); Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.vbox2[this.aspectCheckbox])); w16.Position = 4; w16.Expand = false; w16.Fill = false; w1.Add(this.vbox2); Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(w1[this.vbox2])); w17.Position = 0; w17.Expand = false; w17.Fill = false; // Internal child Pinta.ResizeImageDialog.ActionArea Gtk.HButtonBox w18 = this.ActionArea; w18.Name = "dialog1_ActionArea"; w18.Spacing = 10; w18.BorderWidth = ((uint)(5)); w18.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new Gtk.Button(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget(this.buttonCancel, -6); Gtk.ButtonBox.ButtonBoxChild w19 = ((Gtk.ButtonBox.ButtonBoxChild)(w18[this.buttonCancel])); w19.Expand = false; w19.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new Gtk.Button(); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget(this.buttonOk, -5); Gtk.ButtonBox.ButtonBoxChild w20 = ((Gtk.ButtonBox.ButtonBoxChild)(w18[this.buttonOk])); w20.Position = 1; w20.Expand = false; w20.Fill = false; if ((this.Child != null)) { this.Child.ShowAll(); } this.Show(); } } } pinta-1.3/Pinta/gtk-gui/generated.cs0000664000175000017500000001040511747026475020550 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Stetic { internal class Gui { private static bool initialized; internal static void Initialize(Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; } } } internal class BinContainer { private Gtk.Widget child; private Gtk.UIManager uimanager; public static BinContainer Attach(Gtk.Bin bin) { BinContainer bc = new BinContainer(); bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested); bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated); bin.Added += new Gtk.AddedHandler(bc.OnAdded); return bc; } private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) { if ((this.child != null)) { args.Requisition = this.child.SizeRequest(); } } private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) { if ((this.child != null)) { this.child.Allocation = args.Allocation; } } private void OnAdded(object sender, Gtk.AddedArgs args) { this.child = args.Widget; } public void SetUiManager(Gtk.UIManager uim) { this.uimanager = uim; this.child.Realized += new System.EventHandler(this.OnRealized); } private void OnRealized(object sender, System.EventArgs args) { if ((this.uimanager != null)) { Gtk.Widget w; w = this.child.Toplevel; if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) { ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup); this.uimanager = null; } } } } internal class IconLoader { public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size, int sz) { Gdk.Pixbuf res = widget.RenderIcon(name, size, null); if ((res != null)) { return res; } else { try { return Gtk.IconTheme.Default.LoadIcon(name, sz, 0); } catch (System.Exception ) { if ((name != "gtk-missing-image")) { return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size, sz); } else { Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz); Gdk.GC gc = new Gdk.GC(pmap); gc.RgbFgColor = new Gdk.Color(255, 255, 255); pmap.DrawRectangle(gc, true, 0, 0, sz, sz); gc.RgbFgColor = new Gdk.Color(0, 0, 0); pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1)); gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color(255, 0, 0); pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); } } } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup(System.Type type) { return Stetic.ActionGroups.GetActionGroup(type.FullName); } public static Gtk.ActionGroup GetActionGroup(string name) { return null; } } } pinta-1.3/Pinta/gtk-gui/gui.stetic0000664000175000017500000020660411747026475020274 0ustar00cameroncameron00000000000000 .. 2.12 New Image CenterOnParent 2 False 2 0 New Image Size 0 False False 4 5 10 8 1 2 True Fill False True False True True False 3 4 1 2 True Fill False True False True True False 1 2 4 5 True Fill True True False False True False 1 2 True Fill True True False False True False True 1 10000 10 1 1 True 600 2 3 2 3 True Fill Fill False True False False True False pixels 1 2 3 4 True Fill Fill False True False False True False pixels 2 3 3 4 True Fill Fill False True False False True False 1 Width: 1 2 1 2 True Fill Fill False True False False True False 1 Height: Right 2 3 1 2 True Fill Fill False True False False True False True 1 10000 10 1 1 True 800 1 2 2 3 True Fill Fill False True False False True False 1 True 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Layer Properties CenterOnParent 2 False 2 10 9 6 Name: 0 True False False True True ? 1 True 0 True False False True Visible True True True 1 True False False 2 True False False 16 Opacity: 0 True False False True 100 10 1 1 True 1 True False False True 100 10 1 True 0 Top 2 True 3 True False False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Resize Image CenterOnParent True 300 200 2 False 2 6 12 6 True By percentage: True True True group1 0 True True 1 1000 10 1 1 True 100 1 True False False % 2 True False False 0 True False False 6 True By absolute size: True True True group1 0 True 1 True False False 6 Width: 0 True False False False True 1 10000 10 1 1 True 1 True False False pixels 2 True False False 2 True False False 6 Height: 0 True False False False True 1 10000 10 1 1 True 1 True False False pixels 2 True False False 3 True False False False True Maintain aspect ratio True True True True 4 True False False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Resize Canvas CenterOnParent True 300 200 2 False 2 6 12 6 True By percentage: True True True group1 0 True True 1 1000 10 1 1 True 100 1 True False False % 2 True False False 0 True False False 6 True By absolute size: True True True group1 0 True 1 True False False 6 Width: 0 True False False False True 1 10000 10 1 1 True 1 True False False pixels 2 True False False 2 True False False 6 Height: 0 True False False False True 1 10000 10 1 1 True 1 True False False pixels 2 True False False 3 True False False False True Maintain aspect ratio True True True True 4 True False False 6 0 True 3 3 6 6 30 30 True TextAndIcon True 1 2 1 2 True Fill Fill False True False False True False 30 30 True TextAndIcon True 1 2 2 3 True Fill Fill False True False False True False 30 30 True TextAndIcon True 1 2 True Fill Fill False True False False True False 30 30 True TextAndIcon True 2 3 True Fill Fill False True False False True False 30 30 True TextAndIcon True True Fill Fill False True False False True False 30 30 True TextAndIcon True 2 3 1 2 True Fill Fill False True False False True False 30 30 True TextAndIcon True 2 3 2 3 True Fill Fill False True False False True False 30 30 True TextAndIcon True 2 3 True Fill Fill False True False False True False 30 30 True TextAndIcon True 1 2 True Fill Fill False True False False True False 1 True False False 2 True End 5 True False False 0 Anchor: End 6 True False False End 7 True False False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False False CenterOnParent 1 False 2 label label2 0 True False False progress_bar 1 True False False 10 5 1 End True True True StockItem gtk-cancel -6 gtk-cancel False False pinta-1.3/Pinta/pinta.in0000664000175000017500000000010211747026475016350 0ustar00cameroncameron00000000000000#!/bin/sh exec mono "@expanded_libdir@/@PACKAGE@/Pinta.exe" "$@" pinta-1.3/Pinta.Core/0000775000175000017500000000000011747026475015603 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/.gitignore0000664000175000017500000000002211747026475017565 0ustar00cameroncameron00000000000000/bin/ /obj/ *.userpinta-1.3/Pinta.Core/Actions/0000775000175000017500000000000011747026475017203 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Actions/AdjustmentsActions.cs0000664000175000017500000000333211747026475023355 0ustar00cameroncameron00000000000000// // AdjustmentsActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Threading; using Cairo; namespace Pinta.Core { public class AdjustmentsActions { public List Actions { get; private set; } public AdjustmentsActions () { Actions = new List (); } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { } #endregion #region Public Methods public void ToggleActionsSensitive (bool sensitive) { foreach (Gtk.Action a in Actions) a.Sensitive = sensitive; } #endregion } } pinta-1.3/Pinta.Core/Actions/EditActions.cs0000664000175000017500000003607511747026475021753 0ustar00cameroncameron00000000000000// // EditActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Cairo; using Mono.Unix; namespace Pinta.Core { public class EditActions { public Gtk.Action Undo { get; private set; } public Gtk.Action Redo { get; private set; } public Gtk.Action Cut { get; private set; } public Gtk.Action Copy { get; private set; } public Gtk.Action Paste { get; private set; } public Gtk.Action PasteIntoNewLayer { get; private set; } public Gtk.Action PasteIntoNewImage { get; private set; } public Gtk.Action EraseSelection { get; private set; } public Gtk.Action FillSelection { get; private set; } public Gtk.Action InvertSelection { get; private set; } public Gtk.Action SelectAll { get; private set; } public Gtk.Action Deselect { get; private set; } public Gtk.Action LoadPalette { get; private set; } public Gtk.Action SavePalette { get; private set; } public Gtk.Action ResetPalette { get; private set; } public Gtk.Action ResizePalette { get; private set; } public Gtk.Action AddinManager { get; private set; } private string lastPaletteDir = null; public EditActions () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Menu.Edit.Deselect.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.Deselect.png"))); fact.Add ("Menu.Edit.EraseSelection.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.EraseSelection.png"))); fact.Add ("Menu.Edit.FillSelection.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.FillSelection.png"))); fact.Add ("Menu.Edit.InvertSelection.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.InvertSelection.png"))); fact.Add ("Menu.Edit.SelectAll.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.SelectAll.png"))); fact.Add ("Menu.Edit.Addins.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Edit.Addins.png"))); fact.AddDefault (); Undo = new Gtk.Action ("Undo", Catalog.GetString ("Undo"), null, Stock.Undo); Redo = new Gtk.Action ("Redo", Catalog.GetString ("Redo"), null, Stock.Redo); Cut = new Gtk.Action ("Cut", Catalog.GetString ("Cut"), null, Stock.Cut); Copy = new Gtk.Action ("Copy", Catalog.GetString ("Copy"), null, Stock.Copy); Paste = new Gtk.Action ("Paste", Catalog.GetString ("Paste"), null, Stock.Paste); PasteIntoNewLayer = new Gtk.Action ("PasteIntoNewLayer", Catalog.GetString ("Paste Into New Layer"), null, Stock.Paste); PasteIntoNewImage = new Gtk.Action ("PasteIntoNewImage", Catalog.GetString ("Paste Into New Image"), null, Stock.Paste); EraseSelection = new Gtk.Action ("EraseSelection", Catalog.GetString ("Delete Selection"), null, "Menu.Edit.EraseSelection.png"); FillSelection = new Gtk.Action ("FillSelection", Catalog.GetString ("Fill Selection"), null, "Menu.Edit.FillSelection.png"); InvertSelection = new Gtk.Action ("InvertSelection", Catalog.GetString ("Invert Selection"), null, "Menu.Edit.InvertSelection.png"); SelectAll = new Gtk.Action ("SelectAll", Catalog.GetString ("Select All"), null, Stock.SelectAll); Deselect = new Gtk.Action ("Deselect", Catalog.GetString ("Deselect All"), null, "Menu.Edit.Deselect.png"); LoadPalette = new Gtk.Action ("LoadPalette", Catalog.GetString ("Open..."), null, Stock.Open); SavePalette = new Gtk.Action ("SavePalette", Catalog.GetString ("Save As..."), null, Stock.Save); ResetPalette = new Gtk.Action ("ResetPalette", Catalog.GetString ("Reset to Default"), null, Stock.RevertToSaved); ResizePalette = new Gtk.Action ("ResizePalette", Catalog.GetString ("Set Number of Colors"), null, "Menu.Image.Resize.png"); AddinManager = new Gtk.Action ("AddinManager", Catalog.GetString ("Add-in Manager"), null, "Menu.Edit.Addins.png"); Undo.IsImportant = true; Undo.Sensitive = false; Redo.Sensitive = false; InvertSelection.Sensitive = false; Deselect.Sensitive = false; EraseSelection.Sensitive = false; FillSelection.Sensitive = false; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { menu.Append (Undo.CreateAcceleratedMenuItem (Gdk.Key.Z, Gdk.ModifierType.ControlMask)); ImageMenuItem redo = Redo.CreateAcceleratedMenuItem (Gdk.Key.Z, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask); redo.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.Y, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); menu.Append (redo); menu.AppendSeparator (); menu.Append (Cut.CreateAcceleratedMenuItem (Gdk.Key.X, Gdk.ModifierType.ControlMask)); menu.Append (Copy.CreateAcceleratedMenuItem (Gdk.Key.C, Gdk.ModifierType.ControlMask)); menu.Append (Paste.CreateAcceleratedMenuItem (Gdk.Key.V, Gdk.ModifierType.ControlMask)); menu.Append (PasteIntoNewLayer.CreateAcceleratedMenuItem (Gdk.Key.V, Gdk.ModifierType.ShiftMask | Gdk.ModifierType.ControlMask)); menu.Append (PasteIntoNewImage.CreateAcceleratedMenuItem (Gdk.Key.V, Gdk.ModifierType.Mod1Mask | Gdk.ModifierType.ControlMask)); menu.AppendSeparator (); menu.Append (SelectAll.CreateAcceleratedMenuItem (Gdk.Key.A, Gdk.ModifierType.ControlMask)); ImageMenuItem deslect = Deselect.CreateAcceleratedMenuItem (Gdk.Key.A, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask); deslect.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.D, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); menu.Append (deslect); menu.AppendSeparator (); menu.Append (EraseSelection.CreateAcceleratedMenuItem (Gdk.Key.Delete, Gdk.ModifierType.None)); menu.Append (FillSelection.CreateAcceleratedMenuItem (Gdk.Key.BackSpace, Gdk.ModifierType.None)); //menu.Append (InvertSelection.CreateAcceleratedMenuItem (Gdk.Key.I, Gdk.ModifierType.ControlMask)); menu.AppendSeparator (); Gtk.Action menu_action = new Gtk.Action ("Palette", Mono.Unix.Catalog.GetString ("Palette"), null, null); Menu palette_menu = (Menu) menu.AppendItem (menu_action.CreateSubMenuItem ()).Submenu; palette_menu.Append (LoadPalette.CreateMenuItem ()); palette_menu.Append (SavePalette.CreateMenuItem ()); palette_menu.Append (ResetPalette.CreateMenuItem ()); palette_menu.Append (ResizePalette.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (AddinManager.CreateMenuItem ()); } public void CreateHistoryWindowToolBar (Gtk.Toolbar toolbar) { toolbar.AppendItem (Undo.CreateToolBarItem ()); toolbar.AppendItem (Redo.CreateToolBarItem ()); } public void RegisterHandlers () { Deselect.Activated += HandlePintaCoreActionsEditDeselectActivated; EraseSelection.Activated += HandlePintaCoreActionsEditEraseSelectionActivated; SelectAll.Activated += HandlePintaCoreActionsEditSelectAllActivated; FillSelection.Activated += HandlePintaCoreActionsEditFillSelectionActivated; Copy.Activated += HandlerPintaCoreActionsEditCopyActivated; Undo.Activated += HandlerPintaCoreActionsEditUndoActivated; Redo.Activated += HandlerPintaCoreActionsEditRedoActivated; Cut.Activated += HandlerPintaCoreActionsEditCutActivated; LoadPalette.Activated += HandlerPintaCoreActionsEditLoadPaletteActivated; SavePalette.Activated += HandlerPintaCoreActionsEditSavePaletteActivated; ResetPalette.Activated += HandlerPintaCoreActionsEditResetPaletteActivated; PintaCore.Workspace.ActiveDocumentChanged += WorkspaceActiveDocumentChanged; } #endregion #region Action Handlers private void HandlePintaCoreActionsEditFillSelectionActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Cairo.ImageSurface old = doc.CurrentLayer.Surface.Clone (); using (var g = new Cairo.Context (doc.CurrentLayer.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Color = PintaCore.Palette.PrimaryColor; g.Fill (); } doc.Workspace.Invalidate (); doc.History.PushNewItem (new SimpleHistoryItem ("Menu.Edit.FillSelection.png", Catalog.GetString ("Fill Selection"), old, doc.CurrentLayerIndex)); } private void HandlePintaCoreActionsEditSelectAllActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); SelectionHistoryItem hist = new SelectionHistoryItem (Stock.SelectAll, Catalog.GetString ("Select All")); hist.TakeSnapshot (); doc.ResetSelectionPath (); doc.ShowSelection = true; doc.History.PushNewItem (hist); doc.Workspace.Invalidate (); } private void HandlePintaCoreActionsEditEraseSelectionActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Cairo.ImageSurface old = doc.CurrentLayer.Surface.Clone (); using (var g = new Cairo.Context (doc.CurrentLayer.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Operator = Cairo.Operator.Clear; g.Fill (); } doc.Workspace.Invalidate (); if (sender is string && (sender as string) == "Cut") doc.History.PushNewItem (new SimpleHistoryItem (Stock.Cut, Catalog.GetString ("Cut"), old, doc.CurrentLayerIndex)); else doc.History.PushNewItem (new SimpleHistoryItem ("Menu.Edit.EraseSelection.png", Catalog.GetString ("Erase Selection"), old, doc.CurrentLayerIndex)); } private void HandlePintaCoreActionsEditDeselectActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); SelectionHistoryItem hist = new SelectionHistoryItem ("Menu.Edit.Deselect.png", Catalog.GetString ("Deselect")); hist.TakeSnapshot (); doc.ResetSelectionPath (); doc.History.PushNewItem (hist); doc.Workspace.Invalidate (); } private void HandlerPintaCoreActionsEditCopyActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); ImageSurface src = doc.GetClippedLayer (doc.CurrentLayerIndex); Gdk.Rectangle rect = doc.GetSelectedBounds (true); ImageSurface dest = new ImageSurface (Format.Argb32, rect.Width, rect.Height); using (Context g = new Context (dest)) { g.SetSourceSurface (src, -rect.X, -rect.Y); g.Paint (); } Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); cb.Image = dest.ToPixbuf (); (src as IDisposable).Dispose (); (dest as IDisposable).Dispose (); } private void HandlerPintaCoreActionsEditCutActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); // Copy selection HandlerPintaCoreActionsEditCopyActivated (sender, e); // Erase selection HandlePintaCoreActionsEditEraseSelectionActivated ("Cut", e); } private void HandlerPintaCoreActionsEditUndoActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; doc.History.Undo (); } private void HandlerPintaCoreActionsEditRedoActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; doc.History.Redo (); } private void HandlerPintaCoreActionsEditLoadPaletteActivated (object sender, EventArgs e) { var fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Palette File"), PintaCore.Chrome.MainWindow, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok); FileFilter ff = new FileFilter (); ff.AddPattern ("*.txt"); ff.AddPattern ("*.gpl"); ff.Name = Catalog.GetString ("Palette files (*.txt, *.gpl)"); fcd.AddFilter (ff); FileFilter ff2 = new FileFilter (); ff2.Name = Catalog.GetString ("All files"); ff2.AddPattern ("*.*"); fcd.AddFilter (ff2); fcd.AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; if (lastPaletteDir != null) fcd.SetCurrentFolder (lastPaletteDir); int response = fcd.Run (); if (response == (int) Gtk.ResponseType.Ok) { try { lastPaletteDir = fcd.CurrentFolder; PintaCore.Palette.CurrentPalette.Load (fcd.Filename); } catch { MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Catalog.GetString ("Could not open palette file: {0}.\nPlease verify that you are trying to open a valid GIMP or Paint.NET palette."), fcd.Filename); md.Title = Catalog.GetString ("Error"); md.Run (); md.Destroy (); } } fcd.Destroy (); } private void HandlerPintaCoreActionsEditSavePaletteActivated (object sender, EventArgs e) { var fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Save Palette File"), PintaCore.Chrome.MainWindow, FileChooserAction.Save, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Save, Gtk.ResponseType.Ok); FileFilter ffPDN = new FileFilter (); ffPDN.AddPattern ("*.txt"); ffPDN.Name = Catalog.GetString ("Paint.NET palette (*.txt)"); fcd.AddFilter (ffPDN); FileFilter ffGIMP = new FileFilter (); ffGIMP.AddPattern ("*.gpl"); ffGIMP.Name = Catalog.GetString ("GIMP palette (*.gpl)"); fcd.AddFilter (ffGIMP); fcd.AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; if (lastPaletteDir != null) fcd.SetCurrentFolder (lastPaletteDir); int response = fcd.Run (); if (response == (int) Gtk.ResponseType.Ok) { Palette.FileFormat format = (fcd.Filter == ffPDN) ? Palette.FileFormat.PDN : Palette.FileFormat.GIMP; PintaCore.Palette.CurrentPalette.Save (fcd.Filename, format); } fcd.Destroy (); } private void HandlerPintaCoreActionsEditResetPaletteActivated (object sender, EventArgs e) { PintaCore.Palette.CurrentPalette.LoadDefault (); } private void WorkspaceActiveDocumentChanged (object sender, EventArgs e) { if (!PintaCore.Workspace.HasOpenDocuments) { Undo.Sensitive = false; Redo.Sensitive = false; return; } Redo.Sensitive = PintaCore.Workspace.ActiveWorkspace.History.CanRedo; Undo.Sensitive = PintaCore.Workspace.ActiveWorkspace.History.CanUndo; } #endregion } } pinta-1.3/Pinta.Core/Actions/EffectsActions.cs0000664000175000017500000000545611747026475022444 0ustar00cameroncameron00000000000000// // EffectsActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using System.Collections.Generic; namespace Pinta.Core { public class EffectsActions { private Menu effects_menu; private Dictionary menu_items; public Dictionary Menus { get; private set; } public List Actions { get; private set; } public EffectsActions () { Actions = new List (); Menus = new Dictionary (); menu_items = new Dictionary (); } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { effects_menu = menu; } public void AddEffect (string category, Gtk.Action action) { if (!Menus.ContainsKey (category)) { Gtk.Action menu_action = new Gtk.Action (category, Mono.Unix.Catalog.GetString (category), null, null); Menu category_menu = (Menu)effects_menu.AppendMenuItemSorted ((MenuItem)(menu_action.CreateSubMenuItem ())).Submenu; Menus.Add (category, category_menu); } Actions.Add (action); var menu_item = (MenuItem)action.CreateMenuItem (); Menu m = Menus[category]; m.AppendMenuItemSorted (menu_item); menu_items.Add (action, menu_item); } // TODO: Remove menu category if empty internal void RemoveEffect (string category, Gtk.Action action) { if (!Menus.ContainsKey (category)) return; if (!menu_items.ContainsKey (action)) return; var menu = Menus[category]; menu.Remove (menu_items[action]); } #endregion #region Public Methods public void ToggleActionsSensitive (bool sensitive) { foreach (Gtk.Action a in Actions) a.Sensitive = sensitive; } #endregion } } pinta-1.3/Pinta.Core/Actions/FileActions.cs0000664000175000017500000001157711747026475021745 0ustar00cameroncameron00000000000000// // FileActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.IO; using Gdk; using Gtk; using Mono.Unix; namespace Pinta.Core { public class FileActions { public Gtk.Action New { get; private set; } public Gtk.Action NewScreenshot { get; private set; } public Gtk.Action Open { get; private set; } public Gtk.RecentAction OpenRecent { get; private set; } public Gtk.Action Close { get; private set; } public Gtk.Action Save { get; private set; } public Gtk.Action SaveAs { get; private set; } public Gtk.Action Print { get; private set; } public Gtk.Action Exit { get; private set; } public event EventHandler BeforeQuit; public event EventHandler ModifyCompression; public event EventHandler SaveDocument; public FileActions () { New = new Gtk.Action ("New", Catalog.GetString ("New..."), null, Stock.New); NewScreenshot = new Gtk.Action ("NewScreenshot", Catalog.GetString ("New Screenshot..."), null, Stock.Fullscreen); Open = new Gtk.Action ("Open", Catalog.GetString ("Open..."), null, Stock.Open); OpenRecent = new RecentAction ("OpenRecent", Catalog.GetString ("Open Recent"), null, Stock.Open, RecentManager.Default); RecentFilter recentFilter = new RecentFilter (); recentFilter.AddApplication ("Pinta"); (OpenRecent as RecentAction).AddFilter (recentFilter); Close = new Gtk.Action ("Close", Catalog.GetString ("Close"), null, Stock.Close); Save = new Gtk.Action ("Save", Catalog.GetString ("Save"), null, Stock.Save); SaveAs = new Gtk.Action ("SaveAs", Catalog.GetString ("Save As..."), null, Stock.SaveAs); Print = new Gtk.Action ("Print", Catalog.GetString ("Print"), null, Stock.Print); Exit = new Gtk.Action ("Exit", Catalog.GetString ("Quit"), null, Stock.Quit); New.ShortLabel = Catalog.GetString ("New"); Open.ShortLabel = Catalog.GetString ("Open"); Open.IsImportant = true; Save.IsImportant = true; Close.Sensitive = false; Print.Sensitive = false; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { menu.Append (New.CreateAcceleratedMenuItem (Gdk.Key.N, Gdk.ModifierType.ControlMask)); menu.Append (NewScreenshot.CreateMenuItem ()); menu.Append (Open.CreateAcceleratedMenuItem (Gdk.Key.O, Gdk.ModifierType.ControlMask)); menu.Append (OpenRecent.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (Save.CreateAcceleratedMenuItem (Gdk.Key.S, Gdk.ModifierType.ControlMask)); menu.Append (SaveAs.CreateAcceleratedMenuItem (Gdk.Key.S, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.AppendSeparator (); //menu.Append (Print.CreateAcceleratedMenuItem (Gdk.Key.P, Gdk.ModifierType.ControlMask)); //menu.AppendSeparator (); menu.Append (Close.CreateAcceleratedMenuItem (Gdk.Key.W, Gdk.ModifierType.ControlMask)); menu.Append (Exit.CreateAcceleratedMenuItem (Gdk.Key.Q, Gdk.ModifierType.ControlMask)); } public void RegisterHandlers () { } #endregion #region Event Invokers public void RaiseBeforeQuit () { if (BeforeQuit != null) BeforeQuit (this, EventArgs.Empty); } internal bool RaiseSaveDocument (Document document, bool saveAs) { DocumentCancelEventArgs e = new DocumentCancelEventArgs (document, saveAs); if (SaveDocument == null) throw new InvalidOperationException ("GUI is not handling PintaCore.Workspace.SaveDocument"); else SaveDocument (this, e); return !e.Cancel; } internal int RaiseModifyCompression (int defaultCompression) { ModifyCompressionEventArgs e = new ModifyCompressionEventArgs (defaultCompression); if (ModifyCompression != null) ModifyCompression (this, e); return e.Cancel ? -1 : e.Quality; } #endregion } } pinta-1.3/Pinta.Core/Actions/HelpActions.cs0000664000175000017500000000633311747026475021750 0ustar00cameroncameron00000000000000// // HelpActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Diagnostics; using System.Reflection; using Gtk; using Mono.Unix; namespace Pinta.Core { public class HelpActions { public Gtk.Action Website { get; private set; } public Gtk.Action Bugs { get; private set; } public Gtk.Action Translate { get; private set; } public Gtk.Action About { get; private set; } public HelpActions () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Menu.Help.Bug.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Help.Bug.png"))); fact.Add ("Menu.Help.Website.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Help.Website.png"))); fact.Add ("Menu.Help.Translate.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Help.Translate.png"))); fact.AddDefault (); Website = new Gtk.Action ("Website", Catalog.GetString ("Pinta Website"), null, "Menu.Help.Website.png"); Bugs = new Gtk.Action ("Bugs", Catalog.GetString ("File a Bug"), null, "Menu.Help.Bug.png"); Translate = new Gtk.Action ("Translate", Catalog.GetString ("Translate This Application"), null, "Menu.Help.Translate.png"); About = new Gtk.Action ("About", Catalog.GetString ("About"), null, Stock.About); } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { menu.Append (Website.CreateMenuItem ()); menu.Append (Bugs.CreateMenuItem ()); menu.Append (Translate.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (About.CreateMenuItem ()); } public void RegisterHandlers () { Website.Activated += new EventHandler (Website_Activated); Bugs.Activated += new EventHandler (Bugs_Activated); Translate.Activated += Translate_Activated; } private void Bugs_Activated (object sender, EventArgs e) { Process.Start ("https://bugs.launchpad.net/pinta"); } private void Translate_Activated (object sender, EventArgs e) { Process.Start ("https://translations.launchpad.net/pinta"); } private void Website_Activated (object sender, EventArgs e) { Process.Start ("http://www.pinta-project.com"); } #endregion } } pinta-1.3/Pinta.Core/Actions/ImageActions.cs0000664000175000017500000002600311747026475022076 0ustar00cameroncameron00000000000000// // ImageActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Mono.Unix; namespace Pinta.Core { public class ImageActions { public Gtk.Action CropToSelection { get; private set; } public Gtk.Action AutoCrop { get; private set; } public Gtk.Action Resize { get; private set; } public Gtk.Action CanvasSize { get; private set; } public Gtk.Action FlipHorizontal { get; private set; } public Gtk.Action FlipVertical { get; private set; } public Gtk.Action RotateCW { get; private set; } public Gtk.Action RotateCCW { get; private set; } public Gtk.Action Rotate180 { get; private set; } public Gtk.Action Flatten { get; private set; } public ImageActions () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Menu.Image.CanvasSize.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.CanvasSize.png"))); fact.Add ("Menu.Image.Crop.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Crop.png"))); fact.Add ("Menu.Image.Flatten.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Flatten.png"))); fact.Add ("Menu.Image.FlipHorizontal.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.FlipHorizontal.png"))); fact.Add ("Menu.Image.FlipVertical.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.FlipVertical.png"))); fact.Add ("Menu.Image.Resize.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Resize.png"))); fact.Add ("Menu.Image.Rotate180CW.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Rotate180CW.png"))); fact.Add ("Menu.Image.Rotate90CCW.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Rotate90CCW.png"))); fact.Add ("Menu.Image.Rotate90CW.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Image.Rotate90CW.png"))); fact.AddDefault (); CropToSelection = new Gtk.Action ("CropToSelection", Catalog.GetString ("Crop to Selection"), null, "Menu.Image.Crop.png"); AutoCrop = new Gtk.Action ("AutoCrop", Catalog.GetString ("Auto Crop"), null, "Menu.Image.Crop.png"); Resize = new Gtk.Action ("Resize", Catalog.GetString ("Resize Image..."), null, "Menu.Image.Resize.png"); CanvasSize = new Gtk.Action ("CanvasSize", Catalog.GetString ("Resize Canvas..."), null, "Menu.Image.CanvasSize.png"); FlipHorizontal = new Gtk.Action ("FlipHorizontal", Catalog.GetString ("Flip Horizontal"), null, "Menu.Image.FlipHorizontal.png"); FlipVertical = new Gtk.Action ("FlipVertical", Catalog.GetString ("Flip Vertical"), null, "Menu.Image.FlipVertical.png"); RotateCW = new Gtk.Action ("RotateCW", Catalog.GetString ("Rotate 90° Clockwise"), null, "Menu.Image.Rotate90CW.png"); RotateCCW = new Gtk.Action ("RotateCCW", Catalog.GetString ("Rotate 90° Counter-Clockwise"), null, "Menu.Image.Rotate90CCW.png"); Rotate180 = new Gtk.Action ("Rotate180", Catalog.GetString ("Rotate 180°"), null, "Menu.Image.Rotate180CW.png"); Flatten = new Gtk.Action ("Flatten", Catalog.GetString ("Flatten"), null, "Menu.Image.Flatten.png"); CropToSelection.Sensitive = false; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { menu.Append (CropToSelection.CreateAcceleratedMenuItem (Gdk.Key.X, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (AutoCrop.CreateAcceleratedMenuItem (Gdk.Key.X, Gdk.ModifierType.Mod1Mask | Gdk.ModifierType.ControlMask)); menu.Append (Resize.CreateAcceleratedMenuItem (Gdk.Key.R, Gdk.ModifierType.ControlMask)); menu.Append (CanvasSize.CreateAcceleratedMenuItem (Gdk.Key.R, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.AppendSeparator (); menu.Append (FlipHorizontal.CreateMenuItem ()); menu.Append (FlipVertical.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (RotateCW.CreateAcceleratedMenuItem (Gdk.Key.H, Gdk.ModifierType.ControlMask)); menu.Append (RotateCCW.CreateAcceleratedMenuItem (Gdk.Key.G, Gdk.ModifierType.ControlMask)); menu.Append (Rotate180.CreateAcceleratedMenuItem (Gdk.Key.J, Gdk.ModifierType.ControlMask)); menu.AppendSeparator (); menu.Append (Flatten.CreateAcceleratedMenuItem (Gdk.Key.F, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); } public void RegisterHandlers () { FlipHorizontal.Activated += HandlePintaCoreActionsImageFlipHorizontalActivated; FlipVertical.Activated += HandlePintaCoreActionsImageFlipVerticalActivated; Rotate180.Activated += HandlePintaCoreActionsImageRotate180Activated; Flatten.Activated += HandlePintaCoreActionsImageFlattenActivated; RotateCW.Activated += HandlePintaCoreActionsImageRotateCWActivated; RotateCCW.Activated += HandlePintaCoreActionsImageRotateCCWActivated; CropToSelection.Activated += HandlePintaCoreActionsImageCropToSelectionActivated; AutoCrop.Activated += HandlePintaCoreActionsImageAutoCropActivated; } #endregion #region Action Handlers private void HandlePintaCoreActionsImageRotateCCWActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.RotateImageCCW (); doc.ResetSelectionPath (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.Rotate90CCW)); } private void HandlePintaCoreActionsImageRotateCWActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.RotateImageCW (); doc.ResetSelectionPath (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.Rotate90CW)); } private void HandlePintaCoreActionsImageFlattenActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); CompoundHistoryItem hist = new CompoundHistoryItem ("Menu.Image.Flatten.png", Catalog.GetString ("Flatten")); SimpleHistoryItem h1 = new SimpleHistoryItem (string.Empty, string.Empty, doc.Layers[0].Surface.Clone (), 0); hist.Push (h1); for (int i = 1; i < doc.Layers.Count; i++) hist.Push (new DeleteLayerHistoryItem (string.Empty, string.Empty, doc.Layers[i], i)); doc.FlattenImage (); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsImageRotate180Activated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.RotateImage180 (); doc.ResetSelectionPath (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.Rotate180)); } private void HandlePintaCoreActionsImageFlipVerticalActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.FlipImageVertical (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipVertical)); } private void HandlePintaCoreActionsImageFlipHorizontalActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.FlipImageHorizontal (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipHorizontal)); } private void HandlePintaCoreActionsImageCropToSelectionActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Gdk.Rectangle rect = doc.GetSelectedBounds (true); CropImageToRectangle (doc, rect); } private void HandlePintaCoreActionsImageAutoCropActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Cairo.ImageSurface image = doc.CurrentLayer.Surface; Gdk.Rectangle rect = image.GetBounds (); Cairo.Color borderColor = image.GetPixel (0, 0); bool cropSide = true; int depth = -1; //From the top down while (cropSide) { depth++; for (int i = 0; i < image.Width; i++) { if (!borderColor.Equals(image.GetPixel (i, depth))) { cropSide = false; break; } } //Check if the image is blank/mono-coloured, only need to do it on this scan if (depth == image.Height) return; } rect = new Gdk.Rectangle (rect.X, rect.Y + depth, rect.Width, rect.Height - depth); depth = image.Height; cropSide = true; //From the bottom up while (cropSide) { depth--; for (int i = 0; i < image.Width; i++) { if (!borderColor.Equals(image.GetPixel (i, depth))) { cropSide = false; break; } } } rect = new Gdk.Rectangle (rect.X, rect.Y, rect.Width, depth - rect.Y); depth = 0; cropSide = true; //From left to right while (cropSide) { depth++; for (int i = 0; i < image.Height; i++) { if (!borderColor.Equals(image.GetPixel (depth, i))) { cropSide = false; break; } } } rect = new Gdk.Rectangle (rect.X + depth, rect.Y, rect.Width - depth, rect.Height); depth = image.Width; cropSide = true; //From right to left while (cropSide) { depth--; for (int i = 0; i < image.Height; i++) { if (!borderColor.Equals(image.GetPixel (depth, i))) { cropSide = false; break; } } } rect = new Gdk.Rectangle (rect.X, rect.Y, depth - rect.X, rect.Height); CropImageToRectangle (doc, rect); } #endregion static void CropImageToRectangle (Document doc, Gdk.Rectangle rect) { ResizeHistoryItem hist = new ResizeHistoryItem (doc.ImageSize); hist.Icon = "Menu.Image.Crop.png"; hist.Text = Catalog.GetString ("Crop to Selection"); hist.TakeSnapshotOfImage (); hist.RestorePath = doc.SelectionPath.Clone (); PintaCore.Chrome.Canvas.GdkWindow.FreezeUpdates (); double original_scale = doc.Workspace.Scale; doc.ImageSize = rect.Size; doc.Workspace.CanvasSize = rect.Size; doc.Workspace.Scale = original_scale; PintaCore.Actions.View.UpdateCanvasScale (); PintaCore.Chrome.Canvas.GdkWindow.ThawUpdates (); foreach (var layer in doc.Layers) layer.Crop (rect, doc.SelectionPath); doc.History.PushNewItem (hist); doc.ResetSelectionPath (); doc.Workspace.Invalidate (); } } } pinta-1.3/Pinta.Core/Actions/LayerActions.cs0000664000175000017500000003255011747026475022134 0ustar00cameroncameron00000000000000// // LayerActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; using Gtk; using Mono.Unix; using System.IO; namespace Pinta.Core { public class LayerActions { public Gtk.Action AddNewLayer { get; private set; } public Gtk.Action DeleteLayer { get; private set; } public Gtk.Action DuplicateLayer { get; private set; } public Gtk.Action MergeLayerDown { get; private set; } public Gtk.Action ImportFromFile { get; private set; } public Gtk.Action FlipHorizontal { get; private set; } public Gtk.Action FlipVertical { get; private set; } public Gtk.Action RotateZoom { get; private set; } public Gtk.Action MoveLayerUp { get; private set; } public Gtk.Action MoveLayerDown { get; private set; } public Gtk.Action Properties { get; private set; } public LayerActions () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Menu.Layers.AddNewLayer.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.AddNewLayer.png"))); fact.Add ("Menu.Layers.DeleteLayer.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.DeleteLayer.png"))); fact.Add ("Menu.Layers.DuplicateLayer.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.DuplicateLayer.png"))); fact.Add ("Menu.Layers.MergeLayerDown.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.MergeLayerDown.png"))); fact.Add ("Menu.Layers.MoveLayerDown.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.MoveLayerDown.png"))); fact.Add ("Menu.Layers.MoveLayerUp.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.MoveLayerUp.png"))); fact.Add ("Menu.Layers.FlipHorizontal.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.FlipHorizontal.png"))); fact.Add ("Menu.Layers.FlipVertical.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.FlipVertical.png"))); fact.Add ("Menu.Layers.ImportFromFile.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.ImportFromFile.png"))); fact.Add ("Menu.Layers.LayerProperties.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.LayerProperties.png"))); fact.Add ("Menu.Layers.RotateZoom.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.Layers.RotateZoom.png"))); fact.AddDefault (); AddNewLayer = new Gtk.Action ("AddNewLayer", Catalog.GetString ("Add New Layer"), null, "Menu.Layers.AddNewLayer.png"); DeleteLayer = new Gtk.Action ("DeleteLayer", Catalog.GetString ("Delete Layer"), null, "Menu.Layers.DeleteLayer.png"); DuplicateLayer = new Gtk.Action ("DuplicateLayer", Catalog.GetString ("Duplicate Layer"), null, "Menu.Layers.DuplicateLayer.png"); MergeLayerDown = new Gtk.Action ("MergeLayerDown", Catalog.GetString ("Merge Layer Down"), null, "Menu.Layers.MergeLayerDown.png"); ImportFromFile = new Gtk.Action ("ImportFromFile", Catalog.GetString ("Import from File..."), null, "Menu.Layers.ImportFromFile.png"); FlipHorizontal = new Gtk.Action ("FlipHorizontal", Catalog.GetString ("Flip Horizontal"), null, "Menu.Layers.FlipHorizontal.png"); FlipVertical = new Gtk.Action ("FlipVertical", Catalog.GetString ("Flip Vertical"), null, "Menu.Layers.FlipVertical.png"); RotateZoom = new Gtk.Action ("RotateZoom", Catalog.GetString ("Rotate / Zoom Layer..."), null, "Menu.Layers.RotateZoom.png"); MoveLayerUp = new Gtk.Action ("MoveLayerUp", Catalog.GetString ("Move Layer Up"), null, "Menu.Layers.MoveLayerUp.png"); MoveLayerDown = new Gtk.Action ("MoveLayerDown", Catalog.GetString ("Move Layer Down"), null, "Menu.Layers.MoveLayerDown.png"); Properties = new Gtk.Action ("Properties", Catalog.GetString ("Layer Properties..."), null, "Menu.Layers.LayerProperties.png"); RotateZoom.Sensitive = false; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { menu.Append (AddNewLayer.CreateAcceleratedMenuItem (Gdk.Key.N, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (DeleteLayer.CreateAcceleratedMenuItem (Gdk.Key.Delete, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (DuplicateLayer.CreateAcceleratedMenuItem (Gdk.Key.D, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (MergeLayerDown.CreateAcceleratedMenuItem (Gdk.Key.M, Gdk.ModifierType.ControlMask)); menu.Append (ImportFromFile.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (FlipHorizontal.CreateMenuItem ()); menu.Append (FlipVertical.CreateMenuItem ()); menu.Append (RotateZoom.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (Properties.CreateAcceleratedMenuItem (Gdk.Key.F4, Gdk.ModifierType.None)); } public void CreateLayerWindowToolBar (Gtk.Toolbar toolbar) { toolbar.AppendItem (AddNewLayer.CreateToolBarItem ()); toolbar.AppendItem (DeleteLayer.CreateToolBarItem ()); toolbar.AppendItem (DuplicateLayer.CreateToolBarItem ()); toolbar.AppendItem (MergeLayerDown.CreateToolBarItem ()); toolbar.AppendItem (MoveLayerUp.CreateToolBarItem ()); toolbar.AppendItem (MoveLayerDown.CreateToolBarItem ()); toolbar.AppendItem (Properties.CreateToolBarItem ()); } public void RegisterHandlers () { AddNewLayer.Activated += HandlePintaCoreActionsLayersAddNewLayerActivated; DeleteLayer.Activated += HandlePintaCoreActionsLayersDeleteLayerActivated; DuplicateLayer.Activated += HandlePintaCoreActionsLayersDuplicateLayerActivated; MergeLayerDown.Activated += HandlePintaCoreActionsLayersMergeLayerDownActivated; MoveLayerDown.Activated += HandlePintaCoreActionsLayersMoveLayerDownActivated; MoveLayerUp.Activated += HandlePintaCoreActionsLayersMoveLayerUpActivated; FlipHorizontal.Activated += HandlePintaCoreActionsLayersFlipHorizontalActivated; FlipVertical.Activated += HandlePintaCoreActionsLayersFlipVerticalActivated; ImportFromFile.Activated += HandlePintaCoreActionsLayersImportFromFileActivated; PintaCore.Layers.LayerAdded += EnableOrDisableLayerActions; PintaCore.Layers.LayerRemoved += EnableOrDisableLayerActions; PintaCore.Layers.SelectedLayerChanged += EnableOrDisableLayerActions; EnableOrDisableLayerActions (null, EventArgs.Empty); } #endregion #region Action Handlers private void EnableOrDisableLayerActions (object sender, EventArgs e) { if (PintaCore.Workspace.HasOpenDocuments && PintaCore.Workspace.ActiveDocument.Layers.Count > 1) { PintaCore.Actions.Layers.DeleteLayer.Sensitive = true; PintaCore.Actions.Image.Flatten.Sensitive = true; } else { PintaCore.Actions.Layers.DeleteLayer.Sensitive = false; PintaCore.Actions.Image.Flatten.Sensitive = false; } if (PintaCore.Workspace.HasOpenDocuments && PintaCore.Workspace.ActiveDocument.CurrentLayerIndex > 0) { PintaCore.Actions.Layers.MergeLayerDown.Sensitive = true; PintaCore.Actions.Layers.MoveLayerDown.Sensitive = true; } else { PintaCore.Actions.Layers.MergeLayerDown.Sensitive = false; PintaCore.Actions.Layers.MoveLayerDown.Sensitive = false; } if (PintaCore.Workspace.HasOpenDocuments && PintaCore.Workspace.ActiveDocument.CurrentLayerIndex < PintaCore.Workspace.ActiveDocument.Layers.Count - 1) PintaCore.Actions.Layers.MoveLayerUp.Sensitive = true; else PintaCore.Actions.Layers.MoveLayerUp.Sensitive = false; } private void HandlePintaCoreActionsLayersImportFromFileActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Gtk.FileChooserDialog fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Image File"), null, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok); fcd.SetCurrentFolder (PintaCore.System.GetDialogDirectory ()); fcd.AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel }; fcd.AddImagePreview (); int response = fcd.Run (); if (response == (int)Gtk.ResponseType.Ok) { string file = fcd.Filename; PintaCore.System.LastDialogDirectory = fcd.CurrentFolder; // Open the image and add it to the layers Layer layer = doc.AddNewLayer (System.IO.Path.GetFileName (file)); using (var fs = new FileStream (file, FileMode.Open)) using (Pixbuf bg = new Pixbuf (fs)) using (Cairo.Context g = new Cairo.Context (layer.Surface)) { CairoHelper.SetSourcePixbuf (g, bg, 0, 0); g.Paint (); } doc.SetCurrentLayer (layer); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.ImportFromFile.png", Catalog.GetString ("Import From File"), doc.Layers.IndexOf (layer)); doc.History.PushNewItem (hist); doc.Workspace.Invalidate (); } fcd.Destroy (); } private void HandlePintaCoreActionsLayersFlipVerticalActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.CurrentLayer.FlipVertical (); doc.Workspace.Invalidate (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipLayerVertical, doc.CurrentLayerIndex)); } private void HandlePintaCoreActionsLayersFlipHorizontalActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.CurrentLayer.FlipHorizontal (); doc.Workspace.Invalidate (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipLayerHorizontal, doc.CurrentLayerIndex)); } private void HandlePintaCoreActionsLayersMoveLayerUpActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); SwapLayersHistoryItem hist = new SwapLayersHistoryItem ("Menu.Layers.MoveLayerUp.png", Catalog.GetString ("Move Layer Up"), doc.CurrentLayerIndex, doc.CurrentLayerIndex + 1); doc.MoveCurrentLayerUp (); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersMoveLayerDownActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); SwapLayersHistoryItem hist = new SwapLayersHistoryItem ("Menu.Layers.MoveLayerDown.png", Catalog.GetString ("Move Layer Down"), doc.CurrentLayerIndex, doc.CurrentLayerIndex - 1); doc.MoveCurrentLayerDown (); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersMergeLayerDownActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); CompoundHistoryItem hist = new CompoundHistoryItem ("Menu.Layers.MergeLayerDown.png", Catalog.GetString ("Merge Layer Down")); DeleteLayerHistoryItem h1 = new DeleteLayerHistoryItem (string.Empty, string.Empty, doc.CurrentLayer, doc.CurrentLayerIndex); SimpleHistoryItem h2 = new SimpleHistoryItem (string.Empty, string.Empty, doc.Layers[doc.CurrentLayerIndex - 1].Surface.Clone (), doc.CurrentLayerIndex - 1); hist.Push (h1); hist.Push (h2); doc.MergeCurrentLayerDown (); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersDuplicateLayerActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Layer l = doc.DuplicateCurrentLayer (); // Make new layer the current layer doc.SetCurrentLayer (l); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.DuplicateLayer.png", Catalog.GetString ("Duplicate Layer"), doc.Layers.IndexOf (l)); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersDeleteLayerActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); DeleteLayerHistoryItem hist = new DeleteLayerHistoryItem ("Menu.Layers.DeleteLayer.png", Catalog.GetString ("Delete Layer"), doc.CurrentLayer, doc.CurrentLayerIndex); doc.DeleteLayer (doc.CurrentLayerIndex, false); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersAddNewLayerActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Layer l = doc.AddNewLayer (string.Empty); // Make new layer the current layer doc.SetCurrentLayer (l); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.AddNewLayer.png", Catalog.GetString ("Add New Layer"), doc.Layers.IndexOf (l)); doc.History.PushNewItem (hist); } #endregion } } pinta-1.3/Pinta.Core/Actions/ViewActions.cs0000664000175000017500000002614011747026475021770 0ustar00cameroncameron00000000000000// // ViewActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Mono.Unix; using Gtk; namespace Pinta.Core { public class ViewActions { public Gtk.Action ZoomIn { get; private set; } public Gtk.Action ZoomOut { get; private set; } public Gtk.Action ZoomToWindow { get; private set; } public Gtk.Action ZoomToSelection { get; private set; } public Gtk.Action ActualSize { get; private set; } public Gtk.ToggleAction ToolBar { get; private set; } public Gtk.ToggleAction PixelGrid { get; private set; } public Gtk.ToggleAction Rulers { get; private set; } public Gtk.RadioAction Pixels { get; private set; } public Gtk.RadioAction Inches { get; private set; } public Gtk.RadioAction Centimeters { get; private set; } public Gtk.Action Fullscreen { get; private set; } public ToolBarComboBox ZoomComboBox { get; private set; } public string[] ZoomCollection { get; private set; } private string old_zoom_text = ""; private bool zoom_to_window_activated = false; public bool ZoomToWindowActivated { get { return zoom_to_window_activated; } set { zoom_to_window_activated = value; old_zoom_text = ZoomComboBox.ComboBox.ActiveText; } } public ViewActions () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Menu.View.ActualSize.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.ActualSize.png"))); fact.Add ("Menu.View.Grid.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.Grid.png"))); fact.Add ("Menu.View.Rulers.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.Rulers.png"))); fact.Add ("Menu.View.ZoomIn.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.ZoomIn.png"))); fact.Add ("Menu.View.ZoomOut.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.ZoomOut.png"))); fact.Add ("Menu.View.ZoomToSelection.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.ZoomToSelection.png"))); fact.Add ("Menu.View.ZoomToWindow.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Menu.View.ZoomToWindow.png"))); fact.AddDefault (); ZoomIn = new Gtk.Action ("ZoomIn", Catalog.GetString ("Zoom In"), null, Stock.ZoomIn); ZoomOut = new Gtk.Action ("ZoomOut", Catalog.GetString ("Zoom Out"), null, Stock.ZoomOut); ZoomToWindow = new Gtk.Action ("ZoomToWindow", Catalog.GetString ("Best Fit"), null, Stock.ZoomFit); ZoomToSelection = new Gtk.Action ("ZoomToSelection", Catalog.GetString ("Zoom to Selection"), null, "Menu.View.ZoomToSelection.png"); ActualSize = new Gtk.Action ("ActualSize", Catalog.GetString ("Normal Size"), null, Stock.Zoom100); ToolBar = new Gtk.ToggleAction ("Toolbar", Catalog.GetString ("Toolbar"), null, null); PixelGrid = new Gtk.ToggleAction ("PixelGrid", Catalog.GetString ("Pixel Grid"), null, "Menu.View.Grid.png"); Rulers = new Gtk.ToggleAction ("Rulers", Catalog.GetString ("Rulers"), null, "Menu.View.Rulers.png"); Pixels = new Gtk.RadioAction ("Pixels", Catalog.GetString ("Pixels"), null, null, 0); Inches = new Gtk.RadioAction ("Inches", Catalog.GetString ("Inches"), null, null, 1); Centimeters = new Gtk.RadioAction ("Centimeters", Catalog.GetString ("Centimeters"), null, null, 2); Fullscreen = new Gtk.Action ("Fullscreen", Catalog.GetString ("Fullscreen"), null, Stock.Fullscreen); ZoomCollection = new string[] { "3600%", "2400%", "1600%", "1200%", "800%", "700%", "600%", "500%", "400%", "300%", "200%", "175%", "150%", "125%", "100%", "66%", "50%", "33%", "25%", "16%", "12%", "8%", "5%", Catalog.GetString ("Window") }; ZoomComboBox = new ToolBarComboBox (75, DefaultZoomIndex(), true, ZoomCollection); // Make sure these are the same group so only one will be selected at a time Inches.Group = Pixels.Group; Centimeters.Group = Pixels.Group; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { MenuItem show_pad = (MenuItem)menu.Children[0]; menu.Remove (show_pad); menu.Append (ToolBar.CreateMenuItem ()); menu.Append (PixelGrid.CreateMenuItem ()); menu.Append (Rulers.CreateMenuItem ()); menu.AppendSeparator (); ImageMenuItem zoomin = ZoomIn.CreateAcceleratedMenuItem (Gdk.Key.plus, Gdk.ModifierType.ControlMask); zoomin.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.equal, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); zoomin.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.KP_Add, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); menu.Append (zoomin); ImageMenuItem zoomout = ZoomOut.CreateAcceleratedMenuItem (Gdk.Key.minus, Gdk.ModifierType.ControlMask); zoomout.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.underscore, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); zoomout.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.KP_Subtract, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); menu.Append (zoomout); ImageMenuItem actualsize = ActualSize.CreateAcceleratedMenuItem (Gdk.Key.Key_0, Gdk.ModifierType.ControlMask); actualsize.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (Gdk.Key.A, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask, AccelFlags.Visible)); menu.Append (actualsize); menu.Append (ZoomToWindow.CreateAcceleratedMenuItem (Gdk.Key.B, Gdk.ModifierType.ControlMask)); //menu.Append (ZoomToSelection.CreateAcceleratedMenuItem (Gdk.Key.B, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (Fullscreen.CreateAcceleratedMenuItem (Gdk.Key.F11, Gdk.ModifierType.None)); menu.AppendSeparator (); Gtk.Action unit_action = new Gtk.Action ("RulerUnits", Mono.Unix.Catalog.GetString ("Ruler Units"), null, null); Menu unit_menu = (Menu)menu.AppendItem (unit_action.CreateSubMenuItem ()).Submenu; unit_menu.Append (Pixels.CreateMenuItem ()); unit_menu.Append (Inches.CreateMenuItem ()); unit_menu.Append (Centimeters.CreateMenuItem ()); menu.AppendSeparator (); menu.Append (show_pad); } public void CreateToolBar (Gtk.Toolbar toolbar) { toolbar.AppendItem (new Gtk.SeparatorToolItem ()); toolbar.AppendItem (ZoomOut.CreateToolBarItem ()); toolbar.AppendItem (ZoomComboBox); toolbar.AppendItem (ZoomIn.CreateToolBarItem ()); } public void RegisterHandlers () { ZoomIn.Activated += HandlePintaCoreActionsViewZoomInActivated; ZoomOut.Activated += HandlePintaCoreActionsViewZoomOutActivated; ZoomComboBox.ComboBox.Changed += HandlePintaCoreActionsViewZoomComboBoxComboBoxChanged; (ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.FocusOutEvent += new Gtk.FocusOutEventHandler (ComboBox_FocusOutEvent); (ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.FocusInEvent += new Gtk.FocusInEventHandler (Entry_FocusInEvent); ActualSize.Activated += HandlePintaCoreActionsViewActualSizeActivated; PixelGrid.Toggled += delegate (object sender, EventArgs e) { PintaCore.Workspace.Invalidate (); }; var isFullscreen = false; Fullscreen.Activated += (foo, bar) => { if (!isFullscreen) PintaCore.Chrome.MainWindow.Fullscreen (); else PintaCore.Chrome.MainWindow.Unfullscreen (); isFullscreen = !isFullscreen; }; } private string temp_zoom; private bool suspend_zoom_change; private void Entry_FocusInEvent (object o, Gtk.FocusInEventArgs args) { temp_zoom = PintaCore.Actions.View.ZoomComboBox.ComboBox.ActiveText; } private void ComboBox_FocusOutEvent (object o, Gtk.FocusOutEventArgs args) { string text = PintaCore.Actions.View.ZoomComboBox.ComboBox.ActiveText; double percent; if (!TryParsePercent (text, out percent)) { (PintaCore.Actions.View.ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = temp_zoom; return; } if (percent > 3600) PintaCore.Actions.View.ZoomComboBox.ComboBox.Active = 0; } #endregion /// /// Converts the string representation of a percent (with or without a '%' sign) to a numeric value /// public static bool TryParsePercent (string text, out double percent) { return double.TryParse (text.Trim ('%'), out percent); } public void SuspendZoomUpdate () { suspend_zoom_change = true; } public void ResumeZoomUpdate () { suspend_zoom_change = false; } public void UpdateCanvasScale () { string text = PintaCore.Actions.View.ZoomComboBox.ComboBox.ActiveText; // stay in "Zoom to Window" mode if this function was called without the zoom level being changed by the user (e.g. if the // image was rotated or cropped) and "Zoom to Window" mode is active if (text == Catalog.GetString ("Window") || (ZoomToWindowActivated && old_zoom_text == text)) { PintaCore.Actions.View.ZoomToWindow.Activate (); ZoomToWindowActivated = true; return; } else { ZoomToWindowActivated = false; } double percent; if (!TryParsePercent (text, out percent)) return; percent = Math.Min (percent, 3600); percent = percent / 100.0; PintaCore.Workspace.Scale = percent; } #region Action Handlers private void HandlePintaCoreActionsViewActualSizeActivated (object sender, EventArgs e) { int default_zoom = DefaultZoomIndex (); if (ZoomComboBox.ComboBox.Active != default_zoom) { ZoomComboBox.ComboBox.Active = default_zoom; UpdateCanvasScale (); } } private void HandlePintaCoreActionsViewZoomComboBoxComboBoxChanged (object sender, EventArgs e) { if (suspend_zoom_change) return; PintaCore.Workspace.ActiveDocument.Workspace.ZoomManually (); } private void HandlePintaCoreActionsViewZoomOutActivated (object sender, EventArgs e) { PintaCore.Workspace.ActiveDocument.Workspace.ZoomOut (); } private void HandlePintaCoreActionsViewZoomInActivated (object sender, EventArgs e) { PintaCore.Workspace.ActiveDocument.Workspace.ZoomIn (); } #endregion /// /// Returns the index in the ZoomCollection of the default zoom level /// private int DefaultZoomIndex() { return Array.IndexOf(ZoomCollection, "100%"); } } }pinta-1.3/Pinta.Core/Actions/WindowActions.cs0000664000175000017500000001167011747026475022327 0ustar00cameroncameron00000000000000// // WindowActions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Linq; using Gtk; using Mono.Unix; using System.Collections.Generic; namespace Pinta.Core { public class WindowActions { private Menu window_menu; private Dictionary action_menu_items; public Gtk.Action SaveAll { get; private set; } public Gtk.Action CloseAll { get; private set; } public WindowActions () { SaveAll = new Gtk.Action ("SaveAll", Catalog.GetString ("Save All"), null, Stock.Save); CloseAll = new Gtk.Action ("CloseAll", Catalog.GetString ("Close All"), null, Stock.Close); OpenWindows = new List (); action_menu_items = new Dictionary (); } public List OpenWindows { get; private set; } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { window_menu = menu; menu.Append (SaveAll.CreateAcceleratedMenuItem (Gdk.Key.L, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.Append (CloseAll.CreateAcceleratedMenuItem (Gdk.Key.W, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); menu.AppendSeparator (); } #endregion #region Public Methods public RadioAction AddDocument (Document doc) { RadioAction action = new RadioAction (doc.Guid.ToString (), doc.Filename, string.Empty, null, 0); // Tie these all together as a radio group if (OpenWindows.Count > 0) action.Group = OpenWindows[0].Group; action.Active = true; action.Activated += (o, e) => { if ((o as Gtk.ToggleAction).Active) PintaCore.Workspace.SetActiveDocumentInternal (doc); }; OpenWindows.Add (action); CheckMenuItem menuitem; // We only assign accelerators up to Alt-9 if (OpenWindows.Count < 10) menuitem = action.CreateAcceleratedMenuItem (IntegerToNumKey (OpenWindows.Count), Gdk.ModifierType.Mod1Mask); else menuitem = (CheckMenuItem)action.CreateMenuItem (); action_menu_items.Add (action, menuitem); window_menu.Add (menuitem); doc.Renamed += (o, e) => { UpdateMenuLabel (action, o as Document); }; doc.IsDirtyChanged += (o, e) => { UpdateMenuLabel (action, o as Document); }; return action; } public void RemoveDocument (Document doc) { // Remove from our list of actions RadioAction act = OpenWindows.Where (p => p.Name == doc.Guid.ToString ()).FirstOrDefault (); OpenWindows.Remove (act); act.Dispose (); // Remove all the menu items from the menu foreach (var item in action_menu_items.Values) { window_menu.Remove (item); item.Dispose (); } action_menu_items.Clear (); // Recreate all of our menu items // I tried simply changing the accelerators, but could // no get it to work. CheckMenuItem menuitem; for (int i = 0; i < OpenWindows.Count; i++) { RadioAction action = OpenWindows[i]; if (i < 9) menuitem = action.CreateAcceleratedMenuItem (IntegerToNumKey (i + 1), Gdk.ModifierType.Mod1Mask); else menuitem = (CheckMenuItem)action.CreateMenuItem (); action_menu_items.Add (action, menuitem); window_menu.Add (menuitem); } } #endregion #region Private Methods private Gdk.Key IntegerToNumKey (int i) { switch (i) { case 1: return Gdk.Key.Key_1; case 2: return Gdk.Key.Key_2; case 3: return Gdk.Key.Key_3; case 4: return Gdk.Key.Key_4; case 5: return Gdk.Key.Key_5; case 6: return Gdk.Key.Key_6; case 7: return Gdk.Key.Key_7; case 8: return Gdk.Key.Key_8; case 9: return Gdk.Key.Key_9; } throw new ArgumentOutOfRangeException (string.Format ("IntegerToNumKey does not support: {0}", i)); } private void UpdateMenuLabel (RadioAction action, Document doc) { action.Label = string.Format ("{0}{1}", doc.Filename, doc.IsDirty ? "*" : string.Empty); PintaCore.Workspace.ResetTitle (); } #endregion } } pinta-1.3/Pinta.Core/Classes/0000775000175000017500000000000011747026475017200 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Classes/Anchor.cs0000664000175000017500000000244711747026475020750 0ustar00cameroncameron00000000000000// // Anchor.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public enum Anchor { NW, N, NE, E, SE, S, SW, W, Center } } pinta-1.3/Pinta.Core/Classes/AsyncEffectRenderer.cs0000664000175000017500000002336511747026475023421 0ustar00cameroncameron00000000000000// // AsyncEffectRenderer.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. #if (!LIVE_PREVIEW_DEBUG && DEBUG) #undef DEBUG #endif using System; using System.Collections.Generic; using System.Threading; using Debug = System.Diagnostics.Debug; namespace Pinta.Core { // Only call methods on this class from a single thread (The UI thread). internal abstract class AsyncEffectRenderer { Settings settings; internal struct Settings { internal int ThreadCount { get; set; } internal int TileWidth { get; set; } internal int TileHeight { get; set; } internal int UpdateMillis { get; set; } internal ThreadPriority ThreadPriority { get; set; } } BaseEffect effect; Cairo.ImageSurface source_surface; Cairo.ImageSurface dest_surface; Gdk.Rectangle render_bounds; bool is_rendering; bool cancel_render_flag; bool restart_render_flag; int render_id; int current_tile; int total_tiles; List render_exceptions; uint timer_tick_id; object updated_lock; bool is_updated; int updated_x1; int updated_y1; int updated_x2; int updated_y2; internal AsyncEffectRenderer (Settings settings) { if (settings.ThreadCount < 1) settings.ThreadCount = 1; if (settings.TileWidth < 1) throw new ArgumentException ("EffectRenderSettings.TileWidth"); if (settings.TileHeight < 1) throw new ArgumentException ("EffectRenderSettings.TileHeight"); if (settings.UpdateMillis <= 0) settings.UpdateMillis = 100; effect = null; source_surface = null; dest_surface = null; this.settings = settings; is_rendering = false; render_id = 0; updated_lock = new object (); is_updated = false; render_exceptions = new List (); timer_tick_id = 0; } internal bool IsRendering { get { return is_rendering; } } internal double Progress { get { if (total_tiles == 0 || current_tile < 0) return 0; else if (current_tile < total_tiles) return (double)current_tile / (double)total_tiles; else return 1; } } internal void Start (BaseEffect effect, Cairo.ImageSurface source, Cairo.ImageSurface dest, Gdk.Rectangle renderBounds) { Debug.WriteLine ("AsyncEffectRenderer.Start ()"); if (effect == null) throw new ArgumentNullException ("effect"); if (source == null) throw new ArgumentNullException ("source"); if (dest == null) throw new ArgumentNullException ("dest"); if (renderBounds.IsEmpty) throw new ArgumentException ("renderBounds.IsEmpty"); // It is important the effect's properties don't change during rendering. // So a copy is made for the render. this.effect = effect.Clone(); this.source_surface = source; this.dest_surface = dest; this.render_bounds = renderBounds; // If a render is already in progress, then cancel it, // and start a new render. if (IsRendering) { cancel_render_flag = true; restart_render_flag = true; return; } StartRender (); } internal void Cancel () { Debug.WriteLine ("AsyncEffectRenderer.Cancel ()"); cancel_render_flag = true; restart_render_flag = false; if (!IsRendering) HandleRenderCompletion (); } protected abstract void OnUpdate (double progress, Gdk.Rectangle updatedBounds); protected abstract void OnCompletion (bool canceled, Exception[] exceptions); internal void Dispose () { if (timer_tick_id > 0) GLib.Source.Remove (timer_tick_id); } void StartRender () { is_rendering = true; cancel_render_flag = false; restart_render_flag = false; is_updated = false; render_id++; render_exceptions.Clear (); current_tile = -1; total_tiles = CalculateTotalTiles (); Debug.WriteLine ("AsyncEffectRenderer.Start () Render " + render_id + " starting."); // Copy the current render id. int renderId = render_id; // Start slave render threads. int threadCount = settings.ThreadCount; var slaves = new Thread[threadCount - 1]; for (int threadId = 1; threadId < threadCount; threadId++) slaves[threadId - 1] = StartSlaveThread (renderId, threadId); // Start the master render thread. var master = new Thread (() => { // Do part of the rendering on the master thread. Render (renderId, 0); // Wait for slave threads to complete. foreach (var slave in slaves) slave.Join (); // Change back to the UI thread to notify of completion. Gtk.Application.Invoke ((o,e) => HandleRenderCompletion ()); }); master.Priority = settings.ThreadPriority; master.Start (); // Start timer used to periodically fire update events on the UI thread. timer_tick_id = GLib.Timeout.Add((uint) settings.UpdateMillis, HandleTimerTick); } Thread StartSlaveThread (int renderId, int threadId) { var slave = new Thread(() => { Render (renderId, threadId); }); slave.Priority = settings.ThreadPriority; slave.Start (); return slave; } // Runs on a background thread. void Render (int renderId, int threadId) { // Fetch the next tile index and render it. for (;;) { int tileIndex = Interlocked.Increment (ref current_tile); if (tileIndex >= total_tiles || cancel_render_flag) return; RenderTile (renderId, threadId, tileIndex); } } // Runs on a background thread. void RenderTile (int renderId, int threadId, int tileIndex) { Exception exception = null; Gdk.Rectangle bounds = new Gdk.Rectangle (); try { bounds = GetTileBounds (tileIndex); if (!cancel_render_flag) { dest_surface.Flush (); effect.Render (source_surface, dest_surface, new [] { bounds }); dest_surface.MarkDirty (bounds.ToCairoRectangle ()); } } catch (Exception ex) { exception = ex; Debug.WriteLine ("AsyncEffectRenderer Error while rendering effect: " + effect.Name + " exception: " + ex.Message + "\n" + ex.StackTrace); } // Ignore completions of tiles after a cancel or from a previous render. if (!IsRendering || renderId != render_id) return; // Update bounds to be shown on next expose. lock (updated_lock) { if (is_updated) { updated_x1 = Math.Min (bounds.X, updated_x1); updated_y1 = Math.Min (bounds.Y, updated_y1); updated_x2 = Math.Max (bounds.X + bounds.Width, updated_x2); updated_y2 = Math.Max (bounds.Y + bounds.Height, updated_y2); } else { is_updated = true; updated_x1 = bounds.X; updated_y1 = bounds.Y; updated_x2 = bounds.X + bounds.Width; updated_y2 = bounds.Y + bounds.Height; } } if (exception != null) { lock (render_exceptions) { render_exceptions.Add (exception); } } } // Runs on a background thread. Gdk.Rectangle GetTileBounds (int tileIndex) { int horizTileCount = (int)Math.Ceiling((float)render_bounds.Width / (float)settings.TileWidth); int x = ((tileIndex % horizTileCount) * settings.TileWidth) + render_bounds.X; int y = ((tileIndex / horizTileCount) * settings.TileHeight) + render_bounds.Y; int w = Math.Min(settings.TileWidth, render_bounds.Right - x); int h = Math.Min(settings.TileHeight, render_bounds.Bottom - y); return new Gdk.Rectangle (x, y, w, h); } int CalculateTotalTiles () { return (int)(Math.Ceiling((float)render_bounds.Width / (float)settings.TileWidth) * Math.Ceiling((float)render_bounds.Height / (float)settings.TileHeight)); } // Called on the UI thread. bool HandleTimerTick () { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + " Timer tick."); Gdk.Rectangle bounds; lock (updated_lock) { if (!is_updated) return true; is_updated = false; bounds = new Gdk.Rectangle (updated_x1, updated_y1, updated_x2 - updated_x1, updated_y2 - updated_y1); } if (IsRendering && !cancel_render_flag) OnUpdate (Progress, bounds); return true; } void HandleRenderCompletion () { var exceptions = (render_exceptions == null || render_exceptions.Count == 0) ? null : render_exceptions.ToArray (); HandleTimerTick (); if (timer_tick_id > 0) GLib.Source.Remove (timer_tick_id); OnCompletion (cancel_render_flag, exceptions); if (restart_render_flag) StartRender (); else is_rendering = false; } } } pinta-1.3/Pinta.Core/Classes/BaseExtension.cs0000664000175000017500000000262611747026475022304 0ustar00cameroncameron00000000000000// // BaseExtension.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class BaseExtension { /// /// Called during startup, perform any necessary initialization here /// public virtual void Initialize () { } } } pinta-1.3/Pinta.Core/Classes/BasePaintBrush.cs0000664000175000017500000000262611747026475022407 0ustar00cameroncameron00000000000000// // BasePaintBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Mono.Addins; namespace Pinta.Core { [TypeExtensionPoint] public abstract class BasePaintBrush { public abstract string Name { get; } public virtual int Priority { get { return 0; } } } } pinta-1.3/Pinta.Core/Classes/BaseTool.cs0000664000175000017500000002111711747026475021241 0ustar00cameroncameron00000000000000// // BaseTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using System.IO; using Mono.Unix; using Mono.Addins; namespace Pinta.Core { public delegate void MouseHandler (double x, double y, Gdk.ModifierType state); [TypeExtensionPoint] public abstract class BaseTool { protected const int DEFAULT_BRUSH_WIDTH = 2; protected static Point point_empty = new Point (-500, -500); protected ToggleToolButton tool_item; protected ToolItem tool_label; protected ToolItem tool_image; protected ToolItem tool_sep; protected ToolBarDropDownButton antialiasing_button; protected ToolBarDropDownButton alphablending_button; public event MouseHandler MouseMoved; public event MouseHandler MousePressed; public event MouseHandler MouseReleased; protected BaseTool () { } static BaseTool () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Toolbar.AntiAliasingEnabledIcon.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.AntiAliasingEnabledIcon.png"))); fact.Add ("Toolbar.AntiAliasingDisabledIcon.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.AntiAliasingDisabledIcon.png"))); fact.Add ("Toolbar.BlendingEnabledIcon.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.BlendingEnabledIcon.png"))); fact.Add ("Toolbar.BlendingOverwriteIcon.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.BlendingOverwriteIcon.png"))); fact.Add ("Tools.FreeformShape.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.FreeformShape.png"))); fact.AddDefault (); } public virtual string Name { get { throw new ApplicationException ("Tool didn't override Name"); } } public virtual string Icon { get { throw new ApplicationException ("Tool didn't override Icon"); } } public virtual string ToolTip { get { throw new ApplicationException ("Tool didn't override ToolTip"); } } public virtual string StatusBarText { get { return string.Empty; } } public virtual ToggleToolButton ToolItem { get { if (tool_item == null) tool_item = CreateToolButton (); return tool_item; } } public virtual bool Enabled { get { return true; } } public virtual Gdk.Cursor DefaultCursor { get { return null; } } public virtual Gdk.Key ShortcutKey { get { return (Gdk.Key)0; } } public virtual bool UseAntialiasing { get { return ShowAntialiasingButton && (bool)antialiasing_button.SelectedItem.Tag; } } public virtual bool UseAlphaBlending { get { return ShowAlphaBlendingButton && (bool)alphablending_button.SelectedItem.Tag; } } public virtual int Priority { get { return 75; } } protected virtual bool ShowAntialiasingButton { get { return false; } } protected virtual bool ShowAlphaBlendingButton { get { return false; } } #region Public Methods public void DoMouseMove (object o, MotionNotifyEventArgs args, Cairo.PointD point) { if (MouseMoved != null) MouseMoved (point.X, point.Y, args.Event.State); OnMouseMove (o, args, point); } public void DoBuildToolBar (Toolbar tb) { OnBuildToolBar (tb); BuildRasterizationToolItems (tb); } public void DoClearToolBar (Toolbar tb) { OnClearToolBar (tb); } public void DoMouseDown (DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point) { if (MousePressed != null) MousePressed (point.X, point.Y, args.Event.State); OnMouseDown (canvas, args, point); } public void DoMouseUp (DrawingArea canvas, ButtonReleaseEventArgs args, Cairo.PointD point) { if (MouseReleased != null) MouseReleased (point.X, point.Y, args.Event.State); OnMouseUp (canvas, args, point); } public void DoCommit () { OnCommit (); } public void DoActivated () { OnActivated (); } public void DoDeactivated () { OnDeactivated (); } // Return true if the key was consumed. public void DoKeyPress (DrawingArea canvas, KeyPressEventArgs args) { OnKeyDown (canvas, args); } public void DoKeyRelease (DrawingArea canvas, KeyReleaseEventArgs args) { OnKeyUp (canvas, args); } #endregion #region Protected Methods protected virtual void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { } protected virtual void BuildRasterizationToolItems (Toolbar tb) { if (ShowAlphaBlendingButton || ShowAntialiasingButton) tb.AppendItem (new SeparatorToolItem ()); if (ShowAntialiasingButton) BuildAntialiasingTool (tb); if (ShowAlphaBlendingButton) BuildAlphaBlending (tb); } protected virtual void OnBuildToolBar (Toolbar tb) { if (tool_label == null) tool_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Tool"))); tb.AppendItem (tool_label); if (tool_image == null) tool_image = new ToolBarImage (Icon); tb.AppendItem (tool_image); if (tool_sep == null) tool_sep = new SeparatorToolItem (); tb.AppendItem (tool_sep); } protected virtual void OnClearToolBar (Toolbar tb) { while (tb.NItems > 0) tb.Remove (tb.Children[tb.NItems - 1]); } protected virtual void OnMouseDown (DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { } protected virtual void OnMouseUp (DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { } protected virtual void OnKeyDown (DrawingArea canvas, Gtk.KeyPressEventArgs args) { } protected virtual void OnKeyUp (DrawingArea canvas, Gtk.KeyReleaseEventArgs args) { } /// /// This is called whenever a menu option is called, for /// tools that are in a temporary state while being used, and /// need to commit their work when another option is selected. /// protected virtual void OnCommit () { } protected virtual void OnActivated () { SetCursor (DefaultCursor); } protected virtual void OnDeactivated () { SetCursor (null); } protected virtual ToggleToolButton CreateToolButton () { Image i2 = new Image (PintaCore.Resources.GetIcon (Icon)); i2.Show (); ToggleToolButton tool_item = new ToggleToolButton (); tool_item.IconWidget = i2; tool_item.Show (); tool_item.Label = Name; if (ShortcutKey != (Gdk.Key)0) tool_item.TooltipText = string.Format ("{0}\n{2}: {1}\n\n{3}", Name, ShortcutKey.ToString ().ToUpperInvariant (), Catalog.GetString ("Shortcut key"), StatusBarText); else tool_item.TooltipText = Name; return tool_item; } protected void SetCursor (Gdk.Cursor cursor) { PintaCore.Chrome.Canvas.GdkWindow.Cursor = cursor; } #endregion #region Private Methods private void BuildAlphaBlending (Toolbar tb) { if (alphablending_button != null) { tb.AppendItem (alphablending_button); return; } alphablending_button = new ToolBarDropDownButton (); alphablending_button.AddItem (Catalog.GetString ("Normal Blending"), "Toolbar.BlendingEnabledIcon.png", true); alphablending_button.AddItem (Catalog.GetString ("Overwrite"), "Toolbar.BlendingOverwriteIcon.png", false); tb.AppendItem (alphablending_button); } private void BuildAntialiasingTool (Toolbar tb) { if (antialiasing_button != null) { tb.AppendItem (antialiasing_button); return; } antialiasing_button = new ToolBarDropDownButton (); antialiasing_button.AddItem (Catalog.GetString ("Antialiasing On"), "Toolbar.AntiAliasingEnabledIcon.png", true); antialiasing_button.AddItem (Catalog.GetString ("Antialiasing Off"), "Toolbar.AntiAliasingDisabledIcon.png", false); tb.AppendItem (antialiasing_button); } #endregion } } pinta-1.3/Pinta.Core/Classes/Document.cs0000664000175000017500000004175611747026475021322 0ustar00cameroncameron00000000000000// // Document.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Linq; using Mono.Unix; using Gdk; using System.Collections.Generic; using Cairo; using System.ComponentModel; namespace Pinta.Core { // The differentiation between Document and DocumentWorkspace is // somewhat arbitrary. In general: // Document - Data about the image itself // Workspace - Data about Pinta's state for the image public class Document { private string filename; private bool is_dirty; private int layer_name_int = 2; private int current_layer = -1; // The layer for tools to use until their output is committed private Layer tool_layer; // The layer used for selections private Layer selection_layer; private int selection_layer_index; private Path selection_path; private bool show_selection; public Document (Gdk.Size size) { Guid = Guid.NewGuid (); Workspace = new DocumentWorkspace (this); IsDirty = false; HasFile = false; ImageSize = size; Layers = new List (); tool_layer = CreateLayer ("Tool Layer"); tool_layer.Hidden = true; selection_layer = CreateLayer ("Selection Layer"); selection_layer.Hidden = true; ResetSelectionPath (); } #region Public Properties public Layer CurrentLayer { get { return Layers[current_layer]; } } public int CurrentLayerIndex { get { return current_layer; } } /// /// Just the file name, like "dog.jpg". /// public string Filename { get { return filename; } set { if (filename != value) { filename = value; OnRenamed (); } } } public Guid Guid { get; private set; } public bool HasFile { get; set; } public DocumentWorkspaceHistory History { get { return Workspace.History; } } public Gdk.Size ImageSize { get; set; } public bool IsDirty { get { return is_dirty; } set { if (is_dirty != value) { is_dirty = value; OnIsDirtyChanged (); } } } public List Layers { get; private set; } /// /// Just the directory name, like "C:\MyPictures". /// public string Pathname { get; set; } /// /// Directory and file name, like "C:\MyPictures\dog.jpg". /// public string PathAndFileName { get { return System.IO.Path.Combine (Pathname, Filename); } set { if (string.IsNullOrEmpty (value)) { Pathname = string.Empty; Filename = string.Empty; } else { Pathname = System.IO.Path.GetDirectoryName (value); Filename = System.IO.Path.GetFileName (value); } } } public Layer SelectionLayer { get { return selection_layer; } } public Path SelectionPath { get { return selection_path; } set { if (selection_path == value) return; selection_path = value; } } public bool ShowSelection { get { return show_selection; } set { show_selection = value; PintaCore.Actions.Edit.Deselect.Sensitive = show_selection; PintaCore.Actions.Edit.EraseSelection.Sensitive = show_selection; PintaCore.Actions.Edit.FillSelection.Sensitive = show_selection; PintaCore.Actions.Image.CropToSelection.Sensitive = show_selection; } } public bool ShowSelectionLayer { get; set; } public Layer ToolLayer { get { if (tool_layer.Surface.Width != ImageSize.Width || tool_layer.Surface.Height != ImageSize.Height) { (tool_layer.Surface as IDisposable).Dispose (); tool_layer = CreateLayer ("Tool Layer"); tool_layer.Hidden = true; } return tool_layer; } } public DocumentWorkspace Workspace { get; private set; } #endregion #region Public Methods // Adds a new layer above the current one public Layer AddNewLayer (string name) { Layer layer; if (string.IsNullOrEmpty (name)) layer = CreateLayer (); else layer = CreateLayer (name); Layers.Insert (current_layer + 1, layer); if (Layers.Count == 1) current_layer = 0; layer.PropertyChanged += RaiseLayerPropertyChangedEvent; PintaCore.Layers.OnLayerAdded (); return layer; } public Gdk.Rectangle ClampToImageSize (Gdk.Rectangle r) { int x = Utility.Clamp (r.X, 0, ImageSize.Width); int y = Utility.Clamp (r.Y, 0, ImageSize.Height); int width = Math.Min (r.Width, ImageSize.Width - x); int height = Math.Min (r.Height, ImageSize.Height - y); return new Gdk.Rectangle (x, y, width, height); } public void Clear () { while (Layers.Count > 0) { Layer l = Layers[Layers.Count - 1]; Layers.RemoveAt (Layers.Count - 1); (l.Surface as IDisposable).Dispose (); } current_layer = -1; PintaCore.Layers.OnLayerRemoved (); } // Clean up any native resources we had public void Close () { // Dispose all of our layers while (Layers.Count > 0) { Layer l = Layers[Layers.Count - 1]; Layers.RemoveAt (Layers.Count - 1); (l.Surface as IDisposable).Dispose (); } current_layer = -1; if (tool_layer != null) (tool_layer.Surface as IDisposable).Dispose (); if (selection_layer != null) (selection_layer.Surface as IDisposable).Dispose (); if (selection_path != null) (selection_path as IDisposable).Dispose (); Workspace.History.Clear (); } public Context CreateClippedContext () { Context g = new Context (CurrentLayer.Surface); g.AppendPath (SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); return g; } public Context CreateClippedContext (bool antialias) { Context g = new Context (CurrentLayer.Surface); g.AppendPath (SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.Antialias = antialias ? Antialias.Subpixel : Antialias.None; return g; } public Context CreateClippedToolContext () { Context g = new Context (ToolLayer.Surface); g.AppendPath (SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); return g; } public Context CreateClippedToolContext (bool antialias) { Context g = new Context (ToolLayer.Surface); g.AppendPath (SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.Antialias = antialias ? Antialias.Subpixel : Antialias.None; return g; } public Layer CreateLayer () { return CreateLayer (string.Format ("{0} {1}", Catalog.GetString ("Layer"), layer_name_int++)); } public Layer CreateLayer (string name) { return CreateLayer (name, ImageSize.Width, ImageSize.Height); } public Layer CreateLayer (string name, int width, int height) { Cairo.ImageSurface surface = new Cairo.ImageSurface (Cairo.Format.ARGB32, width, height); Layer layer = new Layer (surface) { Name = name }; return layer; } public void CreateSelectionLayer () { Layer old = selection_layer; selection_layer = CreateLayer (); selection_layer_index = current_layer + 1; if (old != null) (old.Surface as IDisposable).Dispose (); } // Delete the current layer public void DeleteCurrentLayer () { Layer layer = CurrentLayer; Layers.RemoveAt (current_layer); // Only change this if this wasn't already the bottom layer if (current_layer > 0) current_layer--; layer.PropertyChanged -= RaiseLayerPropertyChangedEvent; PintaCore.Layers.OnLayerRemoved (); } // Delete the layer public void DeleteLayer (int index, bool dispose) { Layer layer = Layers[index]; Layers.RemoveAt (index); if (dispose) (layer.Surface as IDisposable).Dispose (); // Only change this if this wasn't already the bottom layer if (current_layer > 0) current_layer--; layer.PropertyChanged -= RaiseLayerPropertyChangedEvent; PintaCore.Layers.OnLayerRemoved (); } public void DestroySelectionLayer () { ShowSelectionLayer = false; SelectionLayer.Clear (); SelectionLayer.Offset = new PointD (0, 0); } // Duplicate current layer public Layer DuplicateCurrentLayer () { Layer source = CurrentLayer; Layer layer = CreateLayer (string.Format ("{0} {1}", source.Name, Catalog.GetString ("copy"))); using (Cairo.Context g = new Cairo.Context (layer.Surface)) { g.SetSource (source.Surface); g.Paint (); } layer.Hidden = source.Hidden; layer.Opacity = source.Opacity; layer.Tiled = source.Tiled; Layers.Insert (++current_layer, layer); layer.PropertyChanged += RaiseLayerPropertyChangedEvent; PintaCore.Layers.OnLayerAdded (); return layer; } public void FinishSelection () { // We don't have an uncommitted layer, abort if (!ShowSelectionLayer) return; FinishPixelsHistoryItem hist = new FinishPixelsHistoryItem (); hist.TakeSnapshot (); Layer layer = SelectionLayer; using (Cairo.Context g = new Cairo.Context (CurrentLayer.Surface)) { g.Save (); g.SetSourceSurface (layer.Surface, (int)layer.Offset.X, (int)layer.Offset.Y); g.PaintWithAlpha (layer.Opacity); g.Restore (); } DestroySelectionLayer (); Workspace.Invalidate (); Workspace.History.PushNewItem (hist); } // Flatten image public void FlattenImage () { if (Layers.Count < 2) throw new InvalidOperationException ("Cannot flatten image because there is only one layer."); Layer dest = Layers[0]; using (Cairo.Context g = new Cairo.Context (dest.Surface)) { for (int i = 1; i < Layers.Count; i++) { Layer source = Layers[i]; g.SetSource (source.Surface); g.PaintWithAlpha (source.Opacity); } } current_layer = 0; while (Layers.Count > 1) { Layer l = Layers[1]; Layers.RemoveAt (1); } PintaCore.Layers.OnLayerRemoved (); Workspace.Invalidate (); } // Flip image horizontally public void FlipImageHorizontal () { foreach (var layer in Layers) layer.FlipHorizontal (); Workspace.Invalidate (); } // Flip image vertically public void FlipImageVertical () { foreach (var layer in Layers) layer.FlipVertical (); Workspace.Invalidate (); } public ImageSurface GetClippedLayer (int index) { Cairo.ImageSurface surf = new Cairo.ImageSurface (Cairo.Format.Argb32, ImageSize.Width, ImageSize.Height); using (Cairo.Context g = new Cairo.Context (surf)) { g.AppendPath (SelectionPath); g.Clip (); g.SetSource (Layers[index].Surface); g.Paint (); } return surf; } public ImageSurface GetFlattenedImage () { Cairo.ImageSurface surf = new Cairo.ImageSurface (Cairo.Format.Argb32, ImageSize.Width, ImageSize.Height); using (Cairo.Context g = new Cairo.Context (surf)) { foreach (var layer in GetLayersToPaint ()) { g.SetSource (layer.Surface); g.PaintWithAlpha (layer.Opacity); } } return surf; } public List GetLayersToPaint () { List paint = new List (); foreach (var layer in Layers) { if (!layer.Hidden) paint.Add (layer); if (layer == CurrentLayer) { if (!tool_layer.Hidden) paint.Add (tool_layer); if (ShowSelectionLayer) paint.Add (selection_layer); } } return paint; } /// false for the whole selection, true for the part only on our canvas public Gdk.Rectangle GetSelectedBounds (bool canvasOnly) { var bounds = SelectionPath.GetBounds (); if (canvasOnly) bounds = ClampToImageSize (bounds); return bounds; } public int IndexOf (Layer layer) { return Layers.IndexOf (layer); } // Adds a new layer above the current one public void Insert (Layer layer, int index) { Layers.Insert (index, layer); if (Layers.Count == 1) current_layer = 0; layer.PropertyChanged += RaiseLayerPropertyChangedEvent; PintaCore.Layers.OnLayerAdded (); } // Flatten current layer public void MergeCurrentLayerDown () { if (current_layer == 0) throw new InvalidOperationException ("Cannot flatten layer because current layer is the bottom layer."); Layer source = CurrentLayer; Layer dest = Layers[current_layer - 1]; using (Cairo.Context g = new Cairo.Context (dest.Surface)) { g.SetSource (source.Surface); g.PaintWithAlpha (source.Opacity); } DeleteCurrentLayer (); } // Move current layer down public void MoveCurrentLayerDown () { if (current_layer == 0) throw new InvalidOperationException ("Cannot move layer down because current layer is the bottom layer."); Layer layer = CurrentLayer; Layers.RemoveAt (current_layer); Layers.Insert (--current_layer, layer); PintaCore.Layers.OnSelectedLayerChanged (); Workspace.Invalidate (); } // Move current layer up public void MoveCurrentLayerUp () { if (current_layer == Layers.Count) throw new InvalidOperationException ("Cannot move layer up because current layer is the top layer."); Layer layer = CurrentLayer; Layers.RemoveAt (current_layer); Layers.Insert (++current_layer, layer); PintaCore.Layers.OnSelectedLayerChanged (); Workspace.Invalidate (); } public void ResetSelectionPath () { Path old = SelectionPath; using (Cairo.Context g = new Cairo.Context (selection_layer.Surface)) SelectionPath = g.CreateRectanglePath (new Cairo.Rectangle (0, 0, ImageSize.Width, ImageSize.Height)); if (old != null) (old as IDisposable).Dispose (); ShowSelection = false; } public void ResizeCanvas (int width, int height, Anchor anchor) { double scale; if (ImageSize.Width == width && ImageSize.Height == height) return; PintaCore.Tools.Commit (); ResizeHistoryItem hist = new ResizeHistoryItem (ImageSize); hist.Icon = "Menu.Image.CanvasSize.png"; hist.Text = Catalog.GetString ("Resize Canvas"); hist.TakeSnapshotOfImage (); scale = Workspace.Scale; ImageSize = new Gdk.Size (width, height); foreach (var layer in Layers) layer.ResizeCanvas (width, height, anchor); Workspace.History.PushNewItem (hist); ResetSelectionPath (); Workspace.Scale = scale; } public void ResizeImage (int width, int height) { double scale; if (ImageSize.Width == width && ImageSize.Height == height) return; PintaCore.Tools.Commit (); ResizeHistoryItem hist = new ResizeHistoryItem (ImageSize); hist.TakeSnapshotOfImage (); scale = Workspace.Scale; ImageSize = new Gdk.Size (width, height); foreach (var layer in Layers) layer.Resize (width, height); Workspace.History.PushNewItem (hist); ResetSelectionPath (); Workspace.Scale = scale; } // Rotate image 180 degrees (flip H+V) public void RotateImage180 () { RotateImage (180); } public void RotateImageCW () { RotateImage (90); } public void RotateImageCCW () { RotateImage (-90); } /// /// Rotates the image by the specified angle (in degrees) /// private void RotateImage (double angle) { foreach (var layer in Layers) { layer.Rotate (angle); } ImageSize = Layer.RotateDimensions (ImageSize, angle); Workspace.CanvasSize = Layer.RotateDimensions (Workspace.CanvasSize, angle); PintaCore.Actions.View.UpdateCanvasScale (); Workspace.Invalidate (); } // Returns true if successful, false if canceled public bool Save (bool saveAs) { return PintaCore.Actions.File.RaiseSaveDocument (this, saveAs); } public void SetCurrentLayer (int i) { current_layer = i; PintaCore.Layers.OnSelectedLayerChanged (); } public void SetCurrentLayer (Layer layer) { current_layer = Layers.IndexOf (layer); PintaCore.Layers.OnSelectedLayerChanged (); } #endregion #region Protected Methods protected void OnIsDirtyChanged () { if (IsDirtyChanged != null) IsDirtyChanged (this, EventArgs.Empty); } protected void OnRenamed () { if (Renamed != null) Renamed (this, EventArgs.Empty); } #endregion #region Private Methods private void RaiseLayerPropertyChangedEvent (object sender, PropertyChangedEventArgs e) { PintaCore.Layers.RaiseLayerPropertyChangedEvent (sender, e); } #endregion #region Public Events public event EventHandler IsDirtyChanged; public event EventHandler Renamed; #endregion } } pinta-1.3/Pinta.Core/Classes/DocumentWorkspace.cs0000664000175000017500000002142211747026475023165 0ustar00cameroncameron00000000000000// // DocumentWorkspace.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; using Mono.Unix; namespace Pinta.Core { public class DocumentWorkspace { private Document document; private Size canvas_size; private enum ZoomType { ZoomIn, ZoomOut, ZoomManually } internal DocumentWorkspace (Document document) { this.document = document; History = new DocumentWorkspaceHistory (document, this); } #region Public Properties public bool CanvasFitsInWindow { get { Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; int window_x = view.Allocation.Width; int window_y = view.Children[0].Allocation.Height; if (CanvasSize.Width <= window_x && CanvasSize.Height <= window_y) return true; return false; } } public Size CanvasSize { get { return canvas_size; } set { if (canvas_size.Width != value.Width || canvas_size.Height != value.Height) { canvas_size = value; PintaCore.Workspace.OnCanvasSizeChanged (); } } } public DocumentWorkspaceHistory History { get; private set; } public bool ImageFitsInWindow { get { Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; int window_x = view.Allocation.Width; int window_y = view.Children[0].Allocation.Height; if (document.ImageSize.Width <= window_x && document.ImageSize.Height <= window_y) return true; return false; } } public Cairo.PointD Offset { get { return new Cairo.PointD ((PintaCore.Chrome.Canvas.Allocation.Width - canvas_size.Width) / 2, (PintaCore.Chrome.Canvas.Allocation.Height - canvas_size.Height) / 2); } } public double Scale { get { return (double)CanvasSize.Width / (double)document.ImageSize.Width; } set { if (value != (double)CanvasSize.Width / (double)document.ImageSize.Width || value != (double)CanvasSize.Height / (double)document.ImageSize.Height) { int new_x = Math.Max ((int)(document.ImageSize.Width * value), 1); int new_y = Math.Max ((int)((new_x * document.ImageSize.Height) / document.ImageSize.Width), 1); CanvasSize = new Gdk.Size (new_x, new_y); Invalidate (); } } } #endregion #region Public Methods public void Invalidate () { PintaCore.Workspace.OnCanvasInvalidated (new CanvasInvalidatedEventArgs ()); } public void Invalidate (Gdk.Rectangle rect) { rect = new Gdk.Rectangle ((int)((rect.X) * Scale + Offset.X), (int)((rect.Y) * Scale + Offset.Y), (int)(rect.Width * Scale), (int)(rect.Height * Scale)); PintaCore.Workspace.OnCanvasInvalidated (new CanvasInvalidatedEventArgs (rect)); } public bool PointInCanvas (Cairo.PointD point) { if (point.X < 0 || point.Y < 0) return false; if (point.X >= document.ImageSize.Width || point.Y >= document.ImageSize.Height) return false; return true; } public void RecenterView (double x, double y) { Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; view.Hadjustment.Value = Utility.Clamp (x * Scale - view.Hadjustment.PageSize / 2, view.Hadjustment.Lower, view.Hadjustment.Upper); view.Vadjustment.Value = Utility.Clamp (y * Scale - view.Vadjustment.PageSize / 2, view.Vadjustment.Lower, view.Vadjustment.Upper); } public void ScrollCanvas (int dx, int dy) { Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; view.Hadjustment.Value = Utility.Clamp (dx + view.Hadjustment.Value, view.Hadjustment.Lower, view.Hadjustment.Upper - view.Hadjustment.PageSize); view.Vadjustment.Value = Utility.Clamp (dy + view.Vadjustment.Value, view.Vadjustment.Lower, view.Vadjustment.Upper - view.Vadjustment.PageSize); } public Cairo.PointD WindowPointToCanvas (double x, double y) { return new Cairo.PointD (Math.Floor ((x - Offset.X) / PintaCore.Workspace.Scale), Math.Floor ((y - Offset.Y) / PintaCore.Workspace.Scale)); } public void ZoomIn () { ZoomAndRecenterView (ZoomType.ZoomIn, new Cairo.PointD (-1, -1)); // Zoom in relative to the center of the viewport. } public void ZoomOut () { ZoomAndRecenterView (ZoomType.ZoomOut, new Cairo.PointD (-1, -1)); // Zoom out relative to the center of the viewport. } public void ZoomInFromMouseScroll (Cairo.PointD point) { ZoomAndRecenterView (ZoomType.ZoomIn, point); // Zoom in relative to mouse position. } public void ZoomOutFromMouseScroll (Cairo.PointD point) { ZoomAndRecenterView (ZoomType.ZoomOut, point); // Zoom out relative to mouse position. } public void ZoomManually () { ZoomAndRecenterView (ZoomType.ZoomManually, new Cairo.PointD (-1, -1)); } public void ZoomToRectangle (Cairo.Rectangle rect) { double ratio; if (document.ImageSize.Width / rect.Width <= document.ImageSize.Height / rect.Height) ratio = document.ImageSize.Width / rect.Width; else ratio = document.ImageSize.Height / rect.Height; (PintaCore.Actions.View.ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = String.Format ("{0:F}%", ratio * 100.0); Gtk.Main.Iteration (); //Force update of scrollbar upper before recenter RecenterView (rect.X + rect.Width / 2, rect.Y + rect.Height / 2); } #endregion #region Private Methods private void ZoomAndRecenterView (ZoomType zoomType, Cairo.PointD point) { if (zoomType == ZoomType.ZoomOut && (CanvasSize.Width == 1 || CanvasSize.Height ==1)) return; //Can't zoom in past a 1x1 px canvas double zoom; if (!ViewActions.TryParsePercent (PintaCore.Actions.View.ZoomComboBox.ComboBox.ActiveText, out zoom)) zoom = Scale * 100; zoom = Math.Min (zoom, 3600); PintaCore.Chrome.Canvas.GdkWindow.FreezeUpdates (); PintaCore.Actions.View.SuspendZoomUpdate (); Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; bool adjustOnMousePosition = point.X >= 0.0 && point.Y >= 0.0; double center_x = adjustOnMousePosition ? point.X : view.Hadjustment.Value + (view.Hadjustment.PageSize / 2.0); double center_y = adjustOnMousePosition ? point.Y : view.Vadjustment.Value + (view.Vadjustment.PageSize / 2.0); center_x = (center_x - Offset.X) / Scale; center_y = (center_y - Offset.Y) / Scale; if (zoomType == ZoomType.ZoomIn || zoomType == ZoomType.ZoomOut) { int i = 0; Predicate UpdateZoomLevel = zoomInList => { switch (zoomType) { case ZoomType.ZoomIn: if (zoomInList == Catalog.GetString ("Window") || int.Parse (zoomInList.Trim ('%')) <= zoom) { PintaCore.Actions.View.ZoomComboBox.ComboBox.Active = i - 1; return true; } break; case ZoomType.ZoomOut: if (zoomInList == Catalog.GetString ("Window")) return true; if (int.Parse (zoomInList.Trim ('%')) < zoom) { PintaCore.Actions.View.ZoomComboBox.ComboBox.Active = i; return true; } break; } return false; }; foreach (string item in PintaCore.Actions.View.ZoomCollection) { if (UpdateZoomLevel (item)) break; i++; } } PintaCore.Actions.View.UpdateCanvasScale (); // Quick fix : need to manually update Upper limit because the value is not changing after updating the canvas scale. // TODO : I think there is an event need to be fired so that those values updated automatically. view.Hadjustment.Upper = CanvasSize.Width < view.Hadjustment.PageSize ? view.Hadjustment.PageSize : CanvasSize.Width; view.Vadjustment.Upper = CanvasSize.Height < view.Vadjustment.PageSize ? view.Vadjustment.PageSize : CanvasSize.Height; RecenterView (center_x, center_y); PintaCore.Actions.View.ResumeZoomUpdate (); PintaCore.Chrome.Canvas.GdkWindow.ThawUpdates (); } #endregion } } pinta-1.3/Pinta.Core/Classes/DocumentWorkspaceHistory.cs0000664000175000017500000001106011747026475024544 0ustar00cameroncameron00000000000000// // DocumentWorkspace.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Gtk; namespace Pinta.Core { public class DocumentWorkspaceHistory { private Document document; private DocumentWorkspace workspace; List history = new List (); int historyPointer = -1; internal DocumentWorkspaceHistory (Document document, DocumentWorkspace workspace) { this.document = document; this.workspace = workspace; ListStore = new ListStore (typeof (BaseHistoryItem)); } public Gtk.ListStore ListStore { get; private set; } public int Pointer { get { return historyPointer; } } public BaseHistoryItem Current { get { if (historyPointer > -1 && historyPointer < history.Count) return history[historyPointer]; else return null; } } public void PushNewItem (BaseHistoryItem newItem) { //Remove all old redos starting from the end of the list for (int i = history.Count - 1; i >= 0; i--) { BaseHistoryItem item = history[i]; if (item.State == HistoryItemState.Redo) { history.RemoveAt(i); item.Dispose(); //Remove from ListStore ListStore.Remove (ref item.Id); } else if (item.State == HistoryItemState.Undo) { break; } } //Add new undo to ListStore newItem.Id = ListStore.AppendValues (newItem); history.Add (newItem); historyPointer = history.Count - 1; if (newItem.CausesDirty) document.IsDirty = true; if (history.Count > 1) { PintaCore.Actions.Edit.Undo.Sensitive = true; CanUndo = true; } PintaCore.Actions.Edit.Redo.Sensitive = false; CanRedo = false; PintaCore.History.OnHistoryItemAdded (newItem); } public void Undo () { if (historyPointer < 0) { throw new InvalidOperationException ("Undo stack is empty"); } else { BaseHistoryItem item = history[historyPointer]; item.Undo (); item.State = HistoryItemState.Redo; ListStore.SetValue (item.Id, 0, item); history[historyPointer] = item; historyPointer--; } if (historyPointer == 0) { document.IsDirty = false; PintaCore.Actions.Edit.Undo.Sensitive = false; CanUndo = false; } PintaCore.Actions.Edit.Redo.Sensitive = true; CanRedo = true; PintaCore.History.OnActionUndone (); } public void Redo () { if (historyPointer >= history.Count - 1) throw new InvalidOperationException ("Redo stack is empty"); historyPointer++; BaseHistoryItem item = history[historyPointer]; item.Redo (); item.State = HistoryItemState.Undo; ListStore.SetValue (item.Id, 0, item); history[historyPointer] = item; if (historyPointer == history.Count - 1) { PintaCore.Actions.Edit.Redo.Sensitive = false; CanRedo = false; } if (item.CausesDirty) document.IsDirty = true; if (history.Count > 1) { PintaCore.Actions.Edit.Undo.Sensitive = true; CanUndo = true; } PintaCore.History.OnActionRedone (); } public void Clear () { history.ForEach (delegate(BaseHistoryItem item) { item.Dispose (); } ); history.Clear(); ListStore.Clear (); historyPointer = -1; document.IsDirty = false; PintaCore.Actions.Edit.Redo.Sensitive = false; PintaCore.Actions.Edit.Undo.Sensitive = false; CanRedo = false; CanUndo = false; } public bool CanRedo { get; private set; } public bool CanUndo { get; private set; } } } pinta-1.3/Pinta.Core/Classes/GradientRenderer.cs0000664000175000017500000001447511747026475022766 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Threading.Tasks; using System.Collections.Generic; using Cairo; using Rectangle = Gdk.Rectangle; namespace Pinta.Core { public abstract class GradientRenderer { private BinaryPixelOp normalBlendOp; private ColorBgra startColor; private ColorBgra endColor; private PointD startPoint; private PointD endPoint; private bool alphaBlending; private bool alphaOnly; private bool lerpCacheIsValid = false; private byte[] lerpAlphas; private ColorBgra[] lerpColors; public ColorBgra StartColor { get { return this.startColor; } set { if (this.startColor != value) { this.startColor = value; this.lerpCacheIsValid = false; } } } public ColorBgra EndColor { get { return this.endColor; } set { if (this.endColor != value) { this.endColor = value; this.lerpCacheIsValid = false; } } } public PointD StartPoint { get { return this.startPoint; } set { this.startPoint = value; } } public PointD EndPoint { get { return this.endPoint; } set { this.endPoint = value; } } public bool AlphaBlending { get { return this.alphaBlending; } set { this.alphaBlending = value; } } public bool AlphaOnly { get { return this.alphaOnly; } set { this.alphaOnly = value; } } public virtual void BeforeRender () { if (!this.lerpCacheIsValid) { byte startAlpha; byte endAlpha; if (this.alphaOnly) { ComputeAlphaOnlyValuesFromColors (this.startColor, this.endColor, out startAlpha, out endAlpha); } else { startAlpha = this.startColor.A; endAlpha = this.endColor.A; } this.lerpAlphas = new byte[256]; this.lerpColors = new ColorBgra[256]; for (int i = 0; i < 256; ++i) { byte a = (byte)i; this.lerpColors[a] = ColorBgra.Blend (this.startColor, this.endColor, a); this.lerpAlphas[a] = (byte)(startAlpha + ((endAlpha - startAlpha) * a) / 255); } this.lerpCacheIsValid = true; } } public abstract byte ComputeByteLerp(int x, int y); public virtual void AfterRender () { } private static void ComputeAlphaOnlyValuesFromColors (ColorBgra startColor, ColorBgra endColor, out byte startAlpha, out byte endAlpha) { startAlpha = startColor.A; endAlpha = (byte)(255 - endColor.A); } unsafe public void Render (ImageSurface surface, Gdk.Rectangle[] rois) { byte startAlpha; byte endAlpha; if (this.alphaOnly) { ComputeAlphaOnlyValuesFromColors (this.startColor, this.endColor, out startAlpha, out endAlpha); } else { startAlpha = this.startColor.A; endAlpha = this.endColor.A; } surface.Flush (); ColorBgra* src_data_ptr = (ColorBgra*)surface.DataPtr; int src_width = surface.Width; for (int ri = 0; ri < rois.Length; ++ri) { Gdk.Rectangle rect = rois[ri]; if (this.startPoint.X == this.endPoint.X && this.startPoint.Y == this.endPoint.Y) { // Start and End point are the same ... fill with solid color. for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* pixelPtr = surface.GetPointAddress(rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { ColorBgra result; if (this.alphaOnly && this.alphaBlending) { byte resultAlpha = (byte)Utility.FastDivideShortByByte ((ushort)(pixelPtr->A * endAlpha), 255); result = *pixelPtr; result.A = resultAlpha; } else if (this.alphaOnly && !this.alphaBlending) { result = *pixelPtr; result.A = endAlpha; } else if (!this.alphaOnly && this.alphaBlending) { result = this.normalBlendOp.Apply (*pixelPtr, this.endColor); //if (!this.alphaOnly && !this.alphaBlending) } else { result = this.endColor; } *pixelPtr = result; ++pixelPtr; } } } else { var mainrect = rect; var list = new List(new Utility.RangeEnumerable(rect.Top, rect.Bottom)); Parallel.ForEach(list.ToArray(), (y) => ProcessGradientLine(startAlpha, endAlpha, y, mainrect, surface, src_data_ptr, src_width)); } } surface.MarkDirty (); AfterRender (); } private unsafe bool ProcessGradientLine (byte startAlpha, byte endAlpha, int y, Rectangle rect, ImageSurface surface, ColorBgra* src_data_ptr, int src_width) { var pixelPtr = surface.GetPointAddressUnchecked(src_data_ptr, src_width, rect.Left, y); var right = rect.Right; if (alphaOnly && alphaBlending) { for (var x = rect.Left; x < right; ++x) { var lerpByte = ComputeByteLerp(x, y); var lerpAlpha = lerpAlphas[lerpByte]; var resultAlpha = Utility.FastScaleByteByByte(pixelPtr->A, lerpAlpha); pixelPtr->A = resultAlpha; ++pixelPtr; } } else if (alphaOnly && !alphaBlending) { for (var x = rect.Left; x < right; ++x) { var lerpByte = ComputeByteLerp(x, y); var lerpAlpha = lerpAlphas[lerpByte]; pixelPtr->A = lerpAlpha; ++pixelPtr; } } else if (!alphaOnly && (alphaBlending && (startAlpha != 255 || endAlpha != 255))) { // If we're doing all color channels, and we're doing alpha blending, and if alpha blending is necessary for (var x = rect.Left; x < right; ++x) { var lerpByte = ComputeByteLerp(x, y); var lerpColor = lerpColors[lerpByte]; var result = normalBlendOp.Apply(*pixelPtr, lerpColor); *pixelPtr = result; ++pixelPtr; } //if (!this.alphaOnly && !this.alphaBlending) // or sC.A == 255 && eC.A == 255 } else { for (var x = rect.Left; x < right; ++x) { var lerpByte = ComputeByteLerp(x, y); var lerpColor = lerpColors[lerpByte]; *pixelPtr = lerpColor; ++pixelPtr; } } return true; } protected internal GradientRenderer (bool alphaOnly, BinaryPixelOp normalBlendOp) { this.normalBlendOp = normalBlendOp; this.alphaOnly = alphaOnly; } } } pinta-1.3/Pinta.Core/Classes/GradientRenderers.cs0000664000175000017500000001077311747026475023146 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { public static class GradientRenderers { public abstract class LinearBase : GradientRenderer { protected double dtdx; protected double dtdy; public override void BeforeRender () { PointD vec = new PointD (EndPoint.X - StartPoint.X, EndPoint.Y - StartPoint.Y); double mag = vec.Magnitude (); if (EndPoint.X == StartPoint.X) { this.dtdx = 0; } else { this.dtdx = vec.X / (mag * mag); } if (EndPoint.Y == StartPoint.Y) { this.dtdy = 0; } else { this.dtdy = vec.Y / (mag * mag); } base.BeforeRender (); } protected internal LinearBase (bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } } public abstract class LinearStraight : LinearBase { private int _startY; private int _startX; protected internal LinearStraight(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } private static byte BoundLerp(double t) { return (byte)(Utility.Clamp(Math.Abs(t), 0, 1) * 255f); } public override void BeforeRender() { base.BeforeRender(); _startX = (int)StartPoint.X; _startY = (int)StartPoint.Y; } public override byte ComputeByteLerp(int x, int y) { var dx = x - _startX; var dy = y - _startY; var lerp = (dx*dtdx) + (dy*dtdy); return BoundLerp(lerp); } } public sealed class LinearReflected : LinearStraight { public LinearReflected(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } } public sealed class LinearClamped : LinearStraight { public LinearClamped(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } } public sealed class LinearDiamond : LinearStraight { public LinearDiamond(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } public override byte ComputeByteLerp(int x, int y) { var dx = x - StartPoint.X; var dy = y - StartPoint.Y; var lerp1 = (dx*dtdx) + (dy*dtdy); var lerp2 = (dx*dtdy) - (dy*dtdx); var absLerp1 = Math.Abs(lerp1); var absLerp2 = Math.Abs(lerp2); return BoundLerp(absLerp1 + absLerp2); } private byte BoundLerp(double t) { return (byte)(Utility.Clamp(t, 0, 1)*255f); } } public sealed class Radial : GradientRenderer { private double invDistanceScale; public Radial(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } int _startX, _startY; public override void BeforeRender() { var distanceScale = StartPoint.Distance(EndPoint); _startX = (int)StartPoint.X; _startY = (int)StartPoint.Y; if (distanceScale == 0) invDistanceScale = 0; else invDistanceScale = 1f / distanceScale; base.BeforeRender(); } public override byte ComputeByteLerp(int x, int y) { var dx = x - _startX; var dy = y - _startY; var distance = Math.Sqrt(dx*dx + dy*dy); var result = distance*invDistanceScale; if (result < 0.0) return 0; return result > 1.0 ? (byte)255 : (byte)(result*255f); } } public sealed class Conical : GradientRenderer { private const double invPi = 1.0 / Math.PI; private double tOffset; public Conical(bool alphaOnly, BinaryPixelOp normalBlendOp) : base(alphaOnly, normalBlendOp) { } public override void BeforeRender() { var ax = EndPoint.X - StartPoint.X; var ay = EndPoint.Y - StartPoint.Y; var theta = Math.Atan2(ay, ax); var t = theta * invPi; tOffset = -t; base.BeforeRender(); } public override byte ComputeByteLerp(int x, int y) { var ax = x - StartPoint.X; var ay = y - StartPoint.Y; var theta = Math.Atan2(ay, ax); var t = theta*invPi; return (byte)(BoundLerp(t + tOffset)*255f); } public double BoundLerp(double t) { if (t > 1) t -= 2; else if (t < -1) t += 2; return Utility.Clamp(Math.Abs(t), 0, 1); } } } } pinta-1.3/Pinta.Core/Classes/IExtension.cs0000664000175000017500000000035511747026475021617 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; using Mono.Addins; namespace Pinta.Core { [TypeExtensionPoint] public interface IExtension { void Initialize (); void Uninitialize (); } } pinta-1.3/Pinta.Core/Classes/IndexEventArgs.cs0000664000175000017500000000131311747026475022413 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { public sealed class IndexEventArgs : EventArgs { public int Index { get; private set; } public IndexEventArgs(int i) { Index = i; } } } pinta-1.3/Pinta.Core/Classes/IndexEventHandler.cs0000664000175000017500000000114311747026475023075 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { public delegate void IndexEventHandler(object sender, IndexEventArgs e); } pinta-1.3/Pinta.Core/Classes/Layer.cs0000664000175000017500000001674011747026475020613 0ustar00cameroncameron00000000000000// // Layer.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; using System.Collections.Specialized; using Cairo; using Gdk; namespace Pinta.Core { public class Layer : ObservableObject { private double opacity; private bool hidden; private string name; public Layer () : this (null) { } public Layer (ImageSurface surface) : this (surface, false, 1f, "") { } public Layer (ImageSurface surface, bool hidden, double opacity, string name) { Surface = surface; Offset = new PointD (0, 0); this.hidden = hidden; this.opacity = opacity; this.name = name; } public ImageSurface Surface { get; set; } public bool Tiled { get; set; } public PointD Offset { get; set; } public static readonly string OpacityProperty = "Opacity"; public static readonly string HiddenProperty = "Hidden"; public static readonly string NameProperty = "Name"; public double Opacity { get { return opacity; } set { if (opacity != value) SetValue (OpacityProperty, ref opacity, value); } } public bool Hidden { get { return hidden; } set { if (hidden != value) SetValue (HiddenProperty, ref hidden, value); } } public string Name { get { return name; } set { if (name != value) SetValue (NameProperty, ref name, value); } } public void Clear () { Surface.Clear (); } public void FlipHorizontal () { Layer dest = PintaCore.Layers.CreateLayer (); using (Cairo.Context g = new Cairo.Context (dest.Surface)) { g.Matrix = new Matrix (-1, 0, 0, 1, Surface.Width, 0); g.SetSource (Surface); g.Paint (); } Surface old = Surface; Surface = dest.Surface; (old as IDisposable).Dispose (); } public void FlipVertical () { Layer dest = PintaCore.Layers.CreateLayer (); using (Cairo.Context g = new Cairo.Context (dest.Surface)) { g.Matrix = new Matrix (1, 0, 0, -1, 0, Surface.Height); g.SetSource (Surface); g.Paint (); } Surface old = Surface; Surface = dest.Surface; (old as IDisposable).Dispose (); } /// /// Rotates layer by the specified angle (in degrees). /// /// /// Angle (in degrees). /// public void Rotate (double angle) { int w = PintaCore.Workspace.ImageSize.Width; int h = PintaCore.Workspace.ImageSize.Height; double radians = (angle / 180d) * Math.PI; double cos = Math.Cos (radians); double sin = Math.Sin (radians); var newSize = RotateDimensions (PintaCore.Workspace.ImageSize, angle); Layer dest = PintaCore.Layers.CreateLayer (string.Empty, newSize.Width, newSize.Height); using (Cairo.Context g = new Cairo.Context (dest.Surface)) { g.Matrix = new Matrix (cos, sin, -sin, cos, newSize.Width / 2.0, newSize.Height / 2.0); g.Translate (-w / 2.0, -h / 2.0); g.SetSource (Surface); g.Paint (); } Surface old = Surface; Surface = dest.Surface; (old as IDisposable).Dispose (); } public static Gdk.Size RotateDimensions (Gdk.Size originalSize, double angle) { double radians = (angle / 180d) * Math.PI; double cos = Math.Abs (Math.Cos (radians)); double sin = Math.Abs (Math.Sin (radians)); int w = originalSize.Width; int h = originalSize.Height; return new Gdk.Size ((int)(w * cos + h * sin), (int)(w * sin + h * cos)); } public unsafe void HueSaturation (int hueDelta, int satDelta, int lightness) { ImageSurface dest = Surface.Clone (); ColorBgra* dstPtr = (ColorBgra*)dest.DataPtr; int len = Surface.Data.Length / 4; // map the range [0,100] -> [0,100] and the range [101,200] -> [103,400] if (satDelta > 100) satDelta = ((satDelta - 100) * 3) + 100; UnaryPixelOp op; if (hueDelta == 0 && satDelta == 100 && lightness == 0) op = new UnaryPixelOps.Identity (); else op = new UnaryPixelOps.HueSaturationLightness (hueDelta, satDelta, lightness); op.Apply (dstPtr, len); using (Context g = new Context (Surface)) { g.AppendPath (PintaCore.Layers.SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.SetSource (dest); g.Paint (); } (dest as IDisposable).Dispose (); } public void Resize (int width, int height) { ImageSurface dest = new ImageSurface (Format.Argb32, width, height); Pixbuf pb = Surface.ToPixbuf(); Pixbuf pbScaled = pb.ScaleSimple (width, height, InterpType.Bilinear); using (Context g = new Context (dest)) { CairoHelper.SetSourcePixbuf (g, pbScaled, 0, 0); g.Paint (); } (Surface as IDisposable).Dispose (); (pb as IDisposable).Dispose (); (pbScaled as IDisposable).Dispose (); Surface = dest; } public void ResizeCanvas (int width, int height, Anchor anchor) { ImageSurface dest = new ImageSurface (Format.Argb32, width, height); int delta_x = Surface.Width - width; int delta_y = Surface.Height - height; using (Context g = new Context (dest)) { switch (anchor) { case Anchor.NW: g.SetSourceSurface (Surface, 0, 0); break; case Anchor.N: g.SetSourceSurface (Surface, -delta_x / 2, 0); break; case Anchor.NE: g.SetSourceSurface (Surface, -delta_x, 0); break; case Anchor.E: g.SetSourceSurface (Surface, -delta_x, -delta_y / 2); break; case Anchor.SE: g.SetSourceSurface (Surface, -delta_x, -delta_y); break; case Anchor.S: g.SetSourceSurface (Surface, -delta_x / 2, -delta_y); break; case Anchor.SW: g.SetSourceSurface (Surface, 0, -delta_y); break; case Anchor.W: g.SetSourceSurface (Surface, 0, -delta_y / 2); break; case Anchor.Center: g.SetSourceSurface (Surface, -delta_x / 2, -delta_y / 2); break; } g.Paint (); } (Surface as IDisposable).Dispose (); Surface = dest; } public void Crop (Gdk.Rectangle rect, Path path) { ImageSurface dest = new ImageSurface (Format.Argb32, rect.Width, rect.Height); using (Context g = new Context (dest)) { // Move the selected content to the upper left g.Translate (-rect.X, -rect.Y); g.Antialias = Antialias.None; // Respect the selected path g.AppendPath (path); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.SetSource (Surface); g.Paint (); } (Surface as IDisposable).Dispose (); Surface = dest; } } } pinta-1.3/Pinta.Core/Classes/LayerProperties.cs0000664000175000017500000000325011747026475022660 0ustar00cameroncameron00000000000000// // LayerProperties.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class LayerProperties { public LayerProperties (string name, bool hidden, double opacity) { this.Opacity = opacity; this.Hidden = hidden; this.Name = name; } public string Name { get; private set; } public bool Hidden { get; private set; } public double Opacity { get; private set; } public void SetProperties (Layer layer) { layer.Name = Name; layer.Opacity = Opacity; layer.Hidden = Hidden; } } } pinta-1.3/Pinta.Core/Classes/ObservableObject.cs0000664000175000017500000000331111747026475022740 0ustar00cameroncameron00000000000000// // ObservableObject.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; namespace Pinta.Core { public abstract class ObservableObject { public ObservableObject () { } public event PropertyChangedEventHandler PropertyChanged; protected void SetValue (string propertyName, ref T member, T value) { member = value; FirePropertyChanged (propertyName); } protected void FirePropertyChanged (string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } pinta-1.3/Pinta.Core/Classes/Palette.cs0000664000175000017500000001722711747026475021136 0ustar00cameroncameron00000000000000// // Palette.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Globalization; using System.IO; using Cairo; namespace Pinta.Core { public sealed class Palette { public enum FileFormat { PDN, GIMP } public event EventHandler PaletteChanged; private List colors; private Palette () { colors = new List (); } private void OnPaletteChanged () { if (PaletteChanged != null) PaletteChanged (this, EventArgs.Empty); } public int Count { get { return colors.Count; } } public Color this[int index] { get { return colors[index]; } set { colors[index] = value; OnPaletteChanged (); } } public void Resize (int newSize) { int difference = newSize - Count; if (difference > 0) { for (int i = 0; i < difference; i++) colors.Add (new Color (1, 1, 1)); } else { colors.RemoveRange (newSize, -difference); } colors.TrimExcess (); OnPaletteChanged (); } public static Palette GetDefault () { Palette p = new Palette (); p.LoadDefault (); return p; } public static Palette FromFile (string fileName) { Palette p = new Palette (); p.Load (fileName); return p; } public void LoadDefault () { colors.Clear (); colors.Add (new Color (255 / 255f, 255 / 255f, 255 / 255f)); colors.Add (new Color (128 / 255f, 128 / 255f, 128 / 255f)); colors.Add (new Color (127 / 255f, 0 / 255f, 0 / 255f)); colors.Add (new Color (127 / 255f, 51 / 255f, 0 / 255f)); colors.Add (new Color (127 / 255f, 106 / 255f, 0 / 255f)); colors.Add (new Color (91 / 255f, 127 / 255f, 0 / 255f)); colors.Add (new Color (38 / 255f, 127 / 255f, 0 / 255f)); colors.Add (new Color (0 / 255f, 127 / 255f, 14 / 255f)); colors.Add (new Color (0 / 255f, 127 / 255f, 70 / 255f)); colors.Add (new Color (0 / 255f, 127 / 255f, 127 / 255f)); colors.Add (new Color (0 / 255f, 74 / 255f, 127 / 255f)); colors.Add (new Color (0 / 255f, 19 / 255f, 127 / 255f)); colors.Add (new Color (33 / 255f, 0 / 255f, 127 / 255f)); colors.Add (new Color (87 / 255f, 0 / 255f, 127 / 255f)); colors.Add (new Color (127 / 255f, 0 / 255f, 110 / 255f)); colors.Add (new Color (127 / 255f, 0 / 255f, 55 / 255f)); colors.Add (new Color (0 / 255f, 0 / 255f, 0 / 255f)); colors.Add (new Color (64 / 255f, 64 / 255f, 64 / 255f)); colors.Add (new Color (255 / 255f, 0 / 255f, 0 / 255f)); colors.Add (new Color (255 / 255f, 106 / 255f, 0 / 255f)); colors.Add (new Color (255 / 255f, 216 / 255f, 0 / 255f)); colors.Add (new Color (182 / 255f, 255 / 255f, 0 / 255f)); colors.Add (new Color (76 / 255f, 255 / 255f, 0 / 255f)); colors.Add (new Color (0 / 255f, 255 / 255f, 33 / 255f)); colors.Add (new Color (0 / 255f, 255 / 255f, 144 / 255f)); colors.Add (new Color (0 / 255f, 255 / 255f, 255 / 255f)); colors.Add (new Color (0 / 255f, 148 / 255f, 255 / 255f)); colors.Add (new Color (0 / 255f, 38 / 255f, 255 / 255f)); colors.Add (new Color (72 / 255f, 0 / 255f, 255 / 255f)); colors.Add (new Color (178 / 255f, 0 / 255f, 255 / 255f)); colors.Add (new Color (255 / 255f, 0 / 255f, 220 / 255f)); colors.Add (new Color (255 / 255f, 0 / 255f, 110 / 255f)); colors.Add (new Color (160 / 255f, 160 / 255f, 160 / 255f)); colors.Add (new Color (48 / 255f, 48 / 255f, 48 / 255f)); colors.Add (new Color (255 / 255f, 127 / 255f, 127 / 255f)); colors.Add (new Color (255 / 255f, 178 / 255f, 127 / 255f)); colors.Add (new Color (255 / 255f, 233 / 255f, 127 / 255f)); colors.Add (new Color (218 / 255f, 255 / 255f, 127 / 255f)); colors.Add (new Color (165 / 255f, 255 / 255f, 127 / 255f)); colors.Add (new Color (127 / 255f, 255 / 255f, 142 / 255f)); colors.Add (new Color (127 / 255f, 255 / 255f, 197 / 255f)); colors.Add (new Color (127 / 255f, 255 / 255f, 255 / 255f)); colors.Add (new Color (127 / 255f, 201 / 255f, 255 / 255f)); colors.Add (new Color (127 / 255f, 146 / 255f, 255 / 255f)); colors.Add (new Color (161 / 255f, 127 / 255f, 255 / 255f)); colors.Add (new Color (214 / 255f, 127 / 255f, 255 / 255f)); colors.Add (new Color (255 / 255f, 127 / 255f, 237 / 255f)); colors.Add (new Color (255 / 255f, 127 / 255f, 182 / 255f)); colors.TrimExcess (); OnPaletteChanged (); } public void Load (string fileName) { List tmpColors = new List (); StreamReader reader = new StreamReader (fileName); try { string line = reader.ReadLine (); if (line.IndexOf ("GIMP") != 0) { // Assume PDN palette do { if (line.IndexOf (';') == 0) continue; uint color = uint.Parse (line.Substring (0, 8), NumberStyles.HexNumber); double b = (color & 0xff) / 255f; double g = ((color >> 8) & 0xff) / 255f; double r = ((color >> 16) & 0xff) / 255f; double a = (color >> 24) / 255f; tmpColors.Add (new Color (r, g, b, a)); } while ((line = reader.ReadLine ()) != null); } else { // GIMP palette: skip everything until the first color while (!char.IsDigit(line[0])) line = reader.ReadLine (); // then read the palette do { if (line.IndexOf ('#') == 0) continue; string[] split = line.Split ((char[]) null, StringSplitOptions.RemoveEmptyEntries); double r = int.Parse (split[0]) / 255f; double g = int.Parse (split[1]) / 255f; double b = int.Parse (split[2]) / 255f; tmpColors.Add (new Color (r, g, b)); } while ((line = reader.ReadLine ()) != null); } colors = tmpColors; colors.TrimExcess (); OnPaletteChanged (); } finally { reader.Close (); } } public void Save (string fileName, FileFormat format) { StreamWriter writer = new StreamWriter (fileName); if (format == FileFormat.PDN) { writer.WriteLine ("; Hexadecimal format: aarrggbb"); foreach (Color color in colors) { byte a = (byte) (color.A * 255); byte r = (byte) (color.R * 255); byte g = (byte) (color.G * 255); byte b = (byte) (color.B * 255); writer.WriteLine ("{0:X}", (a << 24) | (r << 16) | (g << 8) | b); } } else { // GIMP writer.WriteLine ("GIMP Palette"); writer.WriteLine ("Name: Pinta Created {0}", DateTime.Now.ToString (DateTimeFormatInfo.InvariantInfo.RFC1123Pattern)); writer.WriteLine ("#"); foreach (Color color in colors) { writer.WriteLine ("{0,3} {1,3} {2,3} Untitled", (int) (color.R * 255), (int) (color.G * 255), (int) (color.B * 255)); } } writer.Close (); } } } pinta-1.3/Pinta.Core/Classes/ScaleFactor.cs0000664000175000017500000002253611747026475021725 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Gdk; namespace Pinta.Core { /// /// Encapsulates functionality for zooming/scaling coordinates. /// Includes methods for Size[F]'s, Point[F]'s, Rectangle[F]'s, /// and various scalars /// public struct ScaleFactor { private int denominator; private int numerator; public int Denominator { get { return denominator; } } public int Numerator { get { return numerator; } } public double Ratio { get { return (double)numerator / (double)denominator; } } public static readonly ScaleFactor OneToOne = new ScaleFactor (1, 1); public static readonly ScaleFactor MinValue = new ScaleFactor (1, 100); public static readonly ScaleFactor MaxValue = new ScaleFactor (32, 1); private void Clamp () { if (this < MinValue) { this = MinValue; } else if (this > MaxValue) { this = MaxValue; } } public static ScaleFactor UseIfValid (int numerator, int denominator, ScaleFactor lastResort) { if (numerator <= 0 || denominator <= 0) { return lastResort; } else { return new ScaleFactor (numerator, denominator); } } public static ScaleFactor Min (int n1, int d1, int n2, int d2, ScaleFactor lastResort) { ScaleFactor a = UseIfValid (n1, d1, lastResort); ScaleFactor b = UseIfValid (n2, d2, lastResort); return ScaleFactor.Min (a, b); } public static ScaleFactor Max (int n1, int d1, int n2, int d2, ScaleFactor lastResort) { ScaleFactor a = UseIfValid (n1, d1, lastResort); ScaleFactor b = UseIfValid (n2, d2, lastResort); return ScaleFactor.Max (a, b); } public static ScaleFactor Min (ScaleFactor lhs, ScaleFactor rhs) { if (lhs < rhs) { return lhs; } else { return rhs; } } public static ScaleFactor Max (ScaleFactor lhs, ScaleFactor rhs) { if (lhs > rhs) { return lhs; } else { return lhs; } } public static bool operator == (ScaleFactor lhs, ScaleFactor rhs) { return (lhs.numerator * rhs.denominator) == (rhs.numerator * lhs.denominator); } public static bool operator != (ScaleFactor lhs, ScaleFactor rhs) { return !(lhs == rhs); } public static bool operator < (ScaleFactor lhs, ScaleFactor rhs) { return (lhs.numerator * rhs.denominator) < (rhs.numerator * lhs.denominator); } public static bool operator <= (ScaleFactor lhs, ScaleFactor rhs) { return (lhs.numerator * rhs.denominator) <= (rhs.numerator * lhs.denominator); } public static bool operator > (ScaleFactor lhs, ScaleFactor rhs) { return (lhs.numerator * rhs.denominator) > (rhs.numerator * lhs.denominator); } public static bool operator >= (ScaleFactor lhs, ScaleFactor rhs) { return (lhs.numerator * rhs.denominator) >= (rhs.numerator * lhs.denominator); } public override bool Equals (object obj) { if (obj is ScaleFactor) { ScaleFactor rhs = (ScaleFactor)obj; return this == rhs; } else { return false; } } public override int GetHashCode () { return numerator.GetHashCode () ^ denominator.GetHashCode (); } //private static string percentageFormat = PdnResources.GetString("ScaleFactor.Percentage.Format"); //public override string ToString() //{ // try // { // return string.Format(percentageFormat, unchecked(Math.Round(unchecked(100 * Ratio)))); // } // catch (ArithmeticException) // { // return "--"; // } //} public int ScaleScalar (int x) { return (int)(((long)x * numerator) / denominator); } public int UnscaleScalar (int x) { return (int)(((long)x * denominator) / numerator); } public float ScaleScalar (float x) { return (x * (float)numerator) / (float)denominator; } public float UnscaleScalar (float x) { return (x * (float)denominator) / (float)numerator; } public double ScaleScalar (double x) { return (x * (double)numerator) / (double)denominator; } public double UnscaleScalar (double x) { return (x * (double)denominator) / (double)numerator; } public Point ScalePoint (Point p) { return new Point (ScaleScalar (p.X), ScaleScalar (p.Y)); } public Cairo.PointD ScalePoint (Cairo.PointD p) { return new Cairo.PointD (ScaleScalar (p.X), ScaleScalar (p.Y)); } public Cairo.PointD ScalePointJustX (Cairo.PointD p) { return new Cairo.PointD (ScaleScalar (p.X), p.Y); } public Cairo.PointD ScalePointJustY (Cairo.PointD p) { return new Cairo.PointD (p.X, ScaleScalar (p.Y)); } public Cairo.PointD UnscalePoint (Cairo.PointD p) { return new Cairo.PointD (UnscaleScalar (p.X), UnscaleScalar (p.Y)); } public Cairo.PointD UnscalePointJustX (Cairo.PointD p) { return new Cairo.PointD (UnscaleScalar (p.X), p.Y); } public Cairo.PointD UnscalePointJustY (Cairo.PointD p) { return new Cairo.PointD (p.X, UnscaleScalar (p.Y)); } public Point ScalePointJustX (Point p) { return new Point (ScaleScalar (p.X), p.Y); } public Point ScalePointJustY (Point p) { return new Point (p.X, ScaleScalar (p.Y)); } public Point UnscalePoint (Point p) { return new Point (UnscaleScalar (p.X), UnscaleScalar (p.Y)); } public Point UnscalePointJustX (Point p) { return new Point (UnscaleScalar (p.X), p.Y); } public Point UnscalePointJustY (Point p) { return new Point (p.X, UnscaleScalar (p.Y)); } //public SizeF ScaleSize(C s) //{ // return new SizeF(ScaleScalar(s.Width), ScaleScalar(s.Height)); //} //public SizeF UnscaleSize(SizeF s) //{ // return new SizeF(UnscaleScalar(s.Width), UnscaleScalar(s.Height)); //} public Size ScaleSize (Size s) { return new Size (ScaleScalar (s.Width), ScaleScalar (s.Height)); } public Size UnscaleSize (Size s) { return new Size (UnscaleScalar (s.Width), UnscaleScalar (s.Height)); } //public RectangleF ScaleRectangle(RectangleF rectF) //{ // return new RectangleF(ScalePoint(rectF.Location), ScaleSize(rectF.Size)); //} //public RectangleF UnscaleRectangle(RectangleF rectF) //{ // return new RectangleF(UnscalePoint(rectF.Location), UnscaleSize(rectF.Size)); //} public Rectangle ScaleRectangle (Rectangle rect) { return new Rectangle (ScalePoint (rect.Location), ScaleSize (rect.Size)); } public Rectangle UnscaleRectangle (Rectangle rect) { return new Rectangle (UnscalePoint (rect.Location), UnscaleSize (rect.Size)); } private static readonly double[] scales = { 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.08, 0.12, 0.16, 0.25, 0.33, 0.50, 0.66, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24, 32 }; /// /// Gets a list of values that GetNextLarger() and GetNextSmaller() will cycle through. /// /// /// 1.0 is guaranteed to be in the array returned by this property. This list is also /// sorted in ascending order. /// public static double[] PresetValues { get { double[] returnValue = new double[scales.Length]; scales.CopyTo (returnValue, 0); return returnValue; } } /// /// Rounds the current scaling factor up to the next power of two. /// /// The new ScaleFactor value. public ScaleFactor GetNextLarger () { double ratio = Ratio + 0.005; int index = Array.FindIndex ( scales, delegate (double scale) { return ratio <= scale; }); if (index == -1) { index = scales.Length; } index = Math.Min (index, scales.Length - 1); return ScaleFactor.FromDouble (scales[index]); } public ScaleFactor GetNextSmaller () { double ratio = Ratio - 0.005; int index = Array.FindIndex ( scales, delegate (double scale) { return ratio <= scale; }); --index; if (index == -1) { index = 0; } index = Math.Max (index, 0); return ScaleFactor.FromDouble (scales[index]); } private static ScaleFactor Reduce (int numerator, int denominator) { int factor = 2; while (factor < denominator && factor < numerator) { if ((numerator % factor) == 0 && (denominator % factor) == 0) { numerator /= factor; denominator /= factor; } else { ++factor; } } return new ScaleFactor (numerator, denominator); } public static ScaleFactor FromDouble (double scalar) { int numerator = (int)(Math.Floor (scalar * 1000.0)); int denominator = 1000; return Reduce (numerator, denominator); } public ScaleFactor (int numerator, int denominator) { if (denominator <= 0) { throw new ArgumentOutOfRangeException ("denominator", "must be greater than 0"); } if (numerator < 0) { throw new ArgumentOutOfRangeException ("numerator", "must be greater than 0"); } this.numerator = numerator; this.denominator = denominator; this.Clamp (); } } } pinta-1.3/Pinta.Core/Effects/0000775000175000017500000000000011747026475017162 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Effects/BaseEffect.cs0000664000175000017500000001706511747026475021511 0ustar00cameroncameron00000000000000// // BaseEffect.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Mono.Unix; using Mono.Addins; [assembly: AddinRoot ("Pinta", "1.3")] namespace Pinta.Core { /// /// The base class for all effects and adjustments. /// [TypeExtensionPoint] public abstract class BaseEffect { /// /// Returns the name of the effect, displayed to the user in the Adjustments/Effects menu and history pad. /// public abstract string Name { get; } /// /// Returns the icon to use for the effect in the Adjustments/Effects menu and history pad. /// public virtual string Icon { get { return "Menu.Effects.Default.png"; } } /// /// Returns whether this effect can display a configuration dialog to the user. (Implemented by LaunchConfiguration ().) /// public virtual bool IsConfigurable { get { return false; } } /// /// Returns the keyboard shortcut for this adjustment. Only affects adjustments, not effects. Default is no shortcut. /// public virtual Gdk.Key AdjustmentMenuKey { get { return (Gdk.Key)0; } } /// /// Returns the modifier(s) to the keyboard shortcut. Only affects adjustments, not effects. Default is Ctrl+Shift. /// public virtual Gdk.ModifierType AdjustmentMenuKeyModifiers { get { return Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask; } } /// /// Returns the menu category for an effect. Only affects effects, not adjustments. Default is "General". /// public virtual string EffectMenuCategory { get { return "General"; } } /// /// The user configurable data this effect uses. /// public EffectData EffectData { get; protected set; } /// /// Launches the configuration dialog for this effect/adjustment. /// /// Whether the user accepted or cancelled the configuration dialog. (true: accept, false: cancel) public virtual bool LaunchConfiguration () { if (IsConfigurable) throw new NotImplementedException (string.Format ("{0} is marked as configurable, but has not implemented LaunchConfiguration", this.GetType ())); return false; } #region Overrideable Render Methods /// /// Performs the actual work of rendering an effect. Do not call base.Render (). /// /// The source surface. DO NOT MODIFY. /// The destination surface. /// An array of rectangles of interest (roi) specifying the area(s) to modify. Only these areas should be modified. public virtual void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { foreach (var rect in rois) Render (src, dst, rect); } /// /// Performs the actual work of rendering an effect. Do not call base.Render (). /// /// The source surface. DO NOT MODIFY. /// The destination surface. /// A rectangle of interest (roi) specifying the area to modify. Only these areas should be modified protected unsafe virtual void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle roi) { ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; ColorBgra* dst_data_ptr = (ColorBgra*)dst.DataPtr; int dst_width = dst.Width; for (int y = roi.Y; y < roi.Bottom; ++y) { ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, roi.X, y); ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_data_ptr, dst_width, roi.X, y); Render (srcPtr, dstPtr, roi.Width); } } /// /// Performs the actual work of rendering an effect. This overload represent a single line of the image. Do not call base.Render (). /// /// The source surface. DO NOT MODIFY. /// The destination surface. /// The number of pixels to render. protected unsafe virtual void Render (ColorBgra* src, ColorBgra* dst, int length) { while (length > 0) { *dst = Render (*src); ++dst; ++src; --length; } } /// /// Performs the actual work of rendering an effect. This overload represent a single pixel of the image. /// /// The color of the source surface pixel. /// The color to be used for the destination pixel. protected virtual ColorBgra Render (ColorBgra color) { return color; } #endregion // Effects that have any configuration state which is changed // during live preview, and this this state is stored in // non-value-type fields should override this method. // Generally this state should be stored in the effect data // class, not in the effect. /// /// Clones this effect so the live preview system has a copy that won't change while it is working. Only override this when a MemberwiseClone is not enough. /// /// An identical copy of this effect. public virtual BaseEffect Clone () { var effect = (BaseEffect) this.MemberwiseClone (); if (effect.EffectData != null) effect.EffectData = EffectData.Clone (); return effect; } } /// /// Holds the user configurable data used by this effect. /// public abstract class EffectData : ObservableObject { // EffectData classes that have any state stored in non-value-type // fields must override this method, and clone those members. /// /// Clones this EffectData so the live preview system has a copy that won't change while it is working. Only override this when a MemberwiseClone is not enough. /// /// An identical copy of this EffectData. public virtual EffectData Clone () { return (EffectData) this.MemberwiseClone (); } /// /// Fires the PropertyChanged event for this ObservableObject. /// /// The name of the property that changed. public new void FirePropertyChanged (string propertyName) { base.FirePropertyChanged (propertyName); } /// /// Returns true if the current values of this EffectData do not modify the image. Returns false if current values modify the image. /// public virtual bool IsDefault { get { return false; } } } } pinta-1.3/Pinta.Core/Effects/BinaryPixelOp.cs0000664000175000017500000001255011747026475022241 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Gdk; namespace Pinta.Core { /// /// Defines a way to operate on a pixel, or a region of pixels, in a binary fashion. /// That is, it is a simple function F that takes two parameters and returns a /// result of the form: c = F(a, b) /// [Serializable] public unsafe abstract class BinaryPixelOp : PixelOp { public abstract ColorBgra Apply (ColorBgra lhs, ColorBgra rhs); public unsafe virtual void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { unsafe { while (length > 0) { *dst = Apply (*lhs, *rhs); ++dst; ++lhs; ++rhs; --length; } } } /// /// Provides a default implementation for performing dst = F(lhs, rhs) over some rectangle of interest. /// /// The Surface to write pixels to. /// The pixel offset that defines the upper-left of the rectangle-of-interest for the dst Surface. /// The Surface to read pixels from for the lhs parameter given to the method ColorBgra Apply(ColorBgra, ColorBgra)b>. /// The pixel offset that defines the upper-left of the rectangle-of-interest for the lhs Surface. /// The Surface to read pixels from for the rhs parameter given to the method ColorBgra Apply(ColorBgra, ColorBgra) /// The pixel offset that defines the upper-left of the rectangle-of-interest for the rhs Surface. /// The size of the rectangles-of-interest for all Surfaces. public void Apply (Cairo.ImageSurface dst, Point dstOffset, Cairo.ImageSurface lhs, Point lhsOffset, Cairo.ImageSurface rhs, Point rhsOffset, Size roiSize) { // Bounds checking only enabled in Debug builds. #if DEBUG // Create bounding rectangles for each Surface Rectangle dstRect = new Rectangle (dstOffset, roiSize); Rectangle lhsRect = new Rectangle (lhsOffset, roiSize); Rectangle rhsRect = new Rectangle (rhsOffset, roiSize); // Clip those rectangles to those Surface's bounding rectangles Rectangle dstClip = Rectangle.Intersect (dstRect, dst.GetBounds ()); Rectangle lhsClip = Rectangle.Intersect (lhsRect, lhs.GetBounds ()); Rectangle rhsClip = Rectangle.Intersect (rhsRect, rhs.GetBounds ()); // If any of those Rectangles actually got clipped, then throw an exception if (dstRect != dstClip) { throw new ArgumentOutOfRangeException ("roiSize", "Destination roi out of bounds"); } if (lhsRect != lhsClip) { throw new ArgumentOutOfRangeException ("roiSize", "lhs roi out of bounds"); } if (rhsRect != rhsClip) { throw new ArgumentOutOfRangeException ("roiSize", "rhs roi out of bounds"); } #endif // Cache the width and height properties int width = roiSize.Width; int height = roiSize.Height; // Do the work. unsafe { for (int row = 0; row < height; ++row) { ColorBgra* dstPtr = dst.GetPointAddress (dstOffset.X, dstOffset.Y + row); ColorBgra* lhsPtr = lhs.GetPointAddress (lhsOffset.X, lhsOffset.Y + row); ColorBgra* rhsPtr = rhs.GetPointAddress (rhsOffset.X, rhsOffset.Y + row); Apply (dstPtr, lhsPtr, rhsPtr, width); } } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { unsafe { while (length > 0) { *dst = Apply (*dst, *src); ++dst; ++src; --length; } } } public override void Apply (Cairo.ImageSurface dst, Point dstOffset, Cairo.ImageSurface src, Point srcOffset, int roiLength) { Apply (dst.GetPointAddress (dstOffset), src.GetPointAddress (srcOffset), roiLength); } public void Apply (Cairo.ImageSurface dst, Cairo.ImageSurface src) { if (dst.GetSize () != src.GetSize ()) { throw new ArgumentException ("dst.Size != src.Size"); } unsafe { for (int y = 0; y < dst.Height; ++y) { ColorBgra* dstPtr = dst.GetRowAddressUnchecked (y); ColorBgra* srcPtr = src.GetRowAddressUnchecked (y); Apply (dstPtr, srcPtr, dst.Width); } } } public void Apply (Cairo.ImageSurface dst, Cairo.ImageSurface lhs, Cairo.ImageSurface rhs) { if (dst.GetSize () != lhs.GetSize ()) { throw new ArgumentException ("dst.Size != lhs.Size"); } if (lhs.GetSize () != rhs.GetSize ()) { throw new ArgumentException ("lhs.Size != rhs.Size"); } unsafe { for (int y = 0; y < dst.Height; ++y) { ColorBgra* dstPtr = dst.GetRowAddressUnchecked (y); ColorBgra* lhsPtr = lhs.GetRowAddressUnchecked (y); ColorBgra* rhsPtr = rhs.GetRowAddressUnchecked (y); Apply (dstPtr, lhsPtr, rhsPtr, dst.Width); } } } protected BinaryPixelOp () { } } } pinta-1.3/Pinta.Core/Effects/BitVector2DSurfaceAdapter.cs0000664000175000017500000001135111747026475024413 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Adapts a Surface class so it can be used as a two dimensional boolean array. /// Elements are stored compactly, such that each pixel stores 32 boolean values. /// However, the usable width is the same as that of the adapted surface. /// (in other words, a surface that is 100 pixels wide can still only store 100 /// booleans per row) /// public unsafe sealed class BitVector2DSurfaceAdapter : IBitVector2D { private ImageSurface surface; private int src_width; private int src_height; private ColorBgra* src_data_ptr; public BitVector2DSurfaceAdapter (ImageSurface surface) { if (surface == null) throw new ArgumentNullException ("surface"); this.surface = surface; src_width = surface.Width; src_height = surface.Height; src_data_ptr = (ColorBgra*)surface.DataPtr; } #region Public Properties public int Width { get { return src_width; } } public int Height { get { return src_height; } } public bool IsEmpty { get { return (src_width == 0) || (src_height == 0); } } public bool this[Point pt] { get { return this[pt.X, pt.Y]; } set { this[pt.X, pt.Y] = value; } } public bool this[int x, int y] { get { return Get (x, y); } set { Set (x, y, value); } } #endregion #region Public Methods public void Clear (bool newValue) { unsafe { uint val = newValue ? 0xffffffff : 0; for (int y = 0; y < Height; ++y) { ColorBgra* row = surface.GetRowAddressUnchecked (src_data_ptr, src_width, y); int w = (this.Width + 31) / 32; while (w > 0) { row->Bgra = val; ++row; --w; } } } } public bool Get (int x, int y) { if (x < 0 || x >= this.Width) { throw new ArgumentOutOfRangeException ("x"); } if (y < 0 || y >= this.Height) { throw new ArgumentOutOfRangeException ("y"); } return GetUnchecked (x, y); } public unsafe bool GetUnchecked (int x, int y) { int cx = x / 32; int sx = x % 32; uint mask = surface.GetPointAddressUnchecked (src_data_ptr, src_width, cx, y)->Bgra; return 0 != (mask & (1 << sx)); } public void Set (int x, int y, bool newValue) { if (x < 0 || x >= this.Width) { throw new ArgumentOutOfRangeException ("x"); } if (y < 0 || y >= this.Height) { throw new ArgumentOutOfRangeException ("y"); } SetUnchecked (x, y, newValue); } public void Set (Point pt, bool newValue) { Set (pt.X, pt.Y, newValue); } public void Set (Gdk.Rectangle rect, bool newValue) { for (int y = rect.Y; y < rect.Bottom; ++y) { for (int x = rect.X; x < rect.Right; ++x) { Set (x, y, newValue); } } } public void Set (Scanline scan, bool newValue) { int x = scan.X; while (x < scan.X + scan.Length) { Set (x, scan.Y, newValue); ++x; } } //public void Set(PdnRegion region, bool newValue) //{ // foreach (Rectangle rect in region.GetRegionScansReadOnlyInt()) // { // Set(rect, newValue); // } //} public unsafe void SetUnchecked (int x, int y, bool newValue) { int cx = x / 32; int sx = x % 32; ColorBgra* ptr = surface.GetPointAddressUnchecked (src_data_ptr, src_width, cx, y); uint mask = ptr->Bgra; uint slice = ((uint)1 << sx); uint newMask; if (newValue) { newMask = mask | slice; } else { newMask = mask & ~slice; } ptr->Bgra = newMask; } public void Invert (int x, int y) { Set (x, y, !Get (x, y)); } public void Invert (Point pt) { Invert (pt.X, pt.Y); } public void Invert (Gdk.Rectangle rect) { for (int y = rect.Y; y < rect.Bottom; ++y) { for (int x = rect.X; x < rect.Right; ++x) { Invert (x, y); } } } public void Invert (Scanline scan) { int x = scan.X; while (x < scan.X + scan.Length) { Invert (x, scan.Y); ++x; } } //public void Invert(PdnRegion region) //{ // foreach (Rectangle rect in region.GetRegionScansReadOnlyInt()) // { // Invert(rect); // } //} public BitVector2DSurfaceAdapter Clone () { ImageSurface clonedSurface = this.surface.Clone (); return new BitVector2DSurfaceAdapter (clonedSurface); } object ICloneable.Clone () { return Clone (); } #endregion } } pinta-1.3/Pinta.Core/Effects/ColorBgra.cs0000664000175000017500000005415411747026475021374 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; using System.Runtime.InteropServices; namespace Pinta.Core { /// /// This is our pixel format that we will work with. It is always 32-bits / 4-bytes and is /// always laid out in BGRA order. /// Generally used with the Surface class. /// [Serializable] [StructLayout(LayoutKind.Explicit)] public struct ColorBgra { [FieldOffset(0)] public byte B; [FieldOffset(1)] public byte G; [FieldOffset(2)] public byte R; [FieldOffset(3)] public byte A; /// /// Lets you change B, G, R, and A at the same time. /// [NonSerialized] [FieldOffset(0)] public uint Bgra; public const int BlueChannel = 0; public const int GreenChannel = 1; public const int RedChannel = 2; public const int AlphaChannel = 3; public const int SizeOf = 4; public static ColorBgra ParseHexString(string hexString) { uint value = Convert.ToUInt32(hexString, 16); return ColorBgra.FromUInt32(value); } public string ToHexString() { int rgbNumber = (this.R << 16) | (this.G << 8) | this.B; string colorString = Convert.ToString(rgbNumber, 16); while (colorString.Length < 6) { colorString = "0" + colorString; } string alphaString = System.Convert.ToString(this.A, 16); while (alphaString.Length < 2) { alphaString = "0" + alphaString; } colorString = alphaString + colorString; return colorString.ToUpper(); } /// /// Gets or sets the byte value of the specified color channel. /// public unsafe byte this[int channel] { get { if (channel < 0 || channel > 3) { throw new ArgumentOutOfRangeException("channel", channel, "valid range is [0,3]"); } fixed (byte *p = &B) { return p[channel]; } } set { if (channel < 0 || channel > 3) { throw new ArgumentOutOfRangeException("channel", channel, "valid range is [0,3]"); } fixed (byte *p = &B) { p[channel] = value; } } } /// /// Gets the luminance intensity of the pixel based on the values of the red, green, and blue components. Alpha is ignored. /// /// A value in the range 0 to 1 inclusive. public double GetIntensity() { return ((0.114 * (double)B) + (0.587 * (double)G) + (0.299 * (double)R)) / 255.0; } /// /// Gets the luminance intensity of the pixel based on the values of the red, green, and blue components. Alpha is ignored. /// /// A value in the range 0 to 255 inclusive. public byte GetIntensityByte() { return (byte)((7471 * B + 38470 * G + 19595 * R) >> 16); } /// /// Returns the maximum value out of the B, G, and R values. Alpha is ignored. /// /// public byte GetMaxColorChannelValue() { return Math.Max(this.B, Math.Max(this.G, this.R)); } /// /// Returns the average of the B, G, and R values. Alpha is ignored. /// /// public byte GetAverageColorChannelValue() { return (byte)((this.B + this.G + this.R) / 3); } /// /// Compares two ColorBgra instance to determine if they are equal. /// public static bool operator == (ColorBgra lhs, ColorBgra rhs) { return lhs.Bgra == rhs.Bgra; } /// /// Compares two ColorBgra instance to determine if they are not equal. /// public static bool operator != (ColorBgra lhs, ColorBgra rhs) { return lhs.Bgra != rhs.Bgra; } /// /// Compares two ColorBgra instance to determine if they are equal. /// public override bool Equals(object obj) { if (obj != null && obj is ColorBgra && ((ColorBgra)obj).Bgra == this.Bgra) { return true; } else { return false; } } /// /// Returns a hash code for this color value. /// /// public override int GetHashCode() { unchecked { return (int)Bgra; } } /// /// Gets the equivalent GDI+ PixelFormat. /// /// /// This property always returns PixelFormat.Format32bppArgb. /// // public static PixelFormat PixelFormat // { // get // { // return PixelFormat.Format32bppArgb; // } // } /// /// Returns a new ColorBgra with the same color values but with a new alpha component value. /// public ColorBgra NewAlpha(byte newA) { return ColorBgra.FromBgra(B, G, R, newA); } /// /// Creates a new ColorBgra instance with the given color and alpha values. /// [Obsolete ("Use FromBgra() instead (make sure to swap the order of your b and r parameters)")] public static ColorBgra FromRgba(byte r, byte g, byte b, byte a) { return FromBgra(b, g, r, a); } /// /// Creates a new ColorBgra instance with the given color values, and 255 for alpha. /// [Obsolete ("Use FromBgr() instead (make sure to swap the order of your b and r parameters)")] public static ColorBgra FromRgb(byte r, byte g, byte b) { return FromBgr(b, g, r); } /// /// Creates a new ColorBgra instance with the given color and alpha values. /// public static ColorBgra FromBgra(byte b, byte g, byte r, byte a) { ColorBgra color = new ColorBgra(); color.Bgra = BgraToUInt32(b, g, r, a); return color; } /// /// Creates a new ColorBgra instance with the given color and alpha values. /// public static ColorBgra FromBgraClamped(int b, int g, int r, int a) { return FromBgra( ClampToByte(b), ClampToByte(g), ClampToByte(r), ClampToByte(a)); } /// /// Creates a new ColorBgra instance with the given color and alpha values. /// public static ColorBgra FromBgraClamped(float b, float g, float r, float a) { return FromBgra( ClampToByte(b), ClampToByte(g), ClampToByte(r), ClampToByte(a)); } public static byte ClampToByte(float x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } /// /// Packs color and alpha values into a 32-bit integer. /// public static UInt32 BgraToUInt32(byte b, byte g, byte r, byte a) { return (uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24); } /// /// Packs color and alpha values into a 32-bit integer. /// public static UInt32 BgraToUInt32(int b, int g, int r, int a) { return (uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24); } /// /// Creates a new ColorBgra instance with the given color values, and 255 for alpha. /// public static ColorBgra FromBgr(byte b, byte g, byte r) { return FromBgra(b, g, r, 255); } /// /// Constructs a new ColorBgra instance with the given 32-bit value. /// public static ColorBgra FromUInt32(UInt32 bgra) { ColorBgra color = new ColorBgra(); color.Bgra = bgra; return color; } public static byte ClampToByte(int x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } /// /// Constructs a new ColorBgra instance from the values in the given Color instance. /// // public static ColorBgra FromColor(Color c) // { // return FromBgra(c.B, c.G, c.R, c.A); // } /// /// Converts this ColorBgra instance to a Color instance. /// // public Color ToColor() // { // return Color.FromArgb(A, R, G, B); // } /// /// Smoothly blends between two colors. /// public static ColorBgra Blend(ColorBgra ca, ColorBgra cb, byte cbAlpha) { uint caA = (uint)Utility.FastScaleByteByByte((byte)(255 - cbAlpha), ca.A); uint cbA = (uint)Utility.FastScaleByteByByte(cbAlpha, cb.A); uint cbAT = caA + cbA; uint r; uint g; uint b; if (cbAT == 0) { r = 0; g = 0; b = 0; } else { r = ((ca.R * caA) + (cb.R * cbA)) / cbAT; g = ((ca.G * caA) + (cb.G * cbA)) / cbAT; b = ((ca.B * caA) + (cb.B * cbA)) / cbAT; } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)cbAT); } /// /// Linearly interpolates between two color values. /// /// The color value that represents 0 on the lerp number line. /// The color value that represents 1 on the lerp number line. /// A value in the range [0, 1]. /// /// This method does a simple lerp on each color value and on the alpha channel. It does /// not properly take into account the alpha channel's effect on color blending. /// public static ColorBgra Lerp(ColorBgra from, ColorBgra to, float frac) { ColorBgra ret = new ColorBgra(); ret.B = (byte)ClampToByte(Lerp(from.B, to.B, frac)); ret.G = (byte)ClampToByte(Lerp(from.G, to.G, frac)); ret.R = (byte)ClampToByte(Lerp(from.R, to.R, frac)); ret.A = (byte)ClampToByte(Lerp(from.A, to.A, frac)); return ret; } public static float Lerp(float from, float to, float frac) { return (from + frac * (to - from)); } public static double Lerp(double from, double to, double frac) { return (from + frac * (to - from)); } /// /// Linearly interpolates between two color values. /// /// The color value that represents 0 on the lerp number line. /// The color value that represents 1 on the lerp number line. /// A value in the range [0, 1]. /// /// This method does a simple lerp on each color value and on the alpha channel. It does /// not properly take into account the alpha channel's effect on color blending. /// public static ColorBgra Lerp(ColorBgra from, ColorBgra to, double frac) { ColorBgra ret = new ColorBgra(); ret.B = (byte)ClampToByte(Lerp(from.B, to.B, frac)); ret.G = (byte)ClampToByte(Lerp(from.G, to.G, frac)); ret.R = (byte)ClampToByte(Lerp(from.R, to.R, frac)); ret.A = (byte)ClampToByte(Lerp(from.A, to.A, frac)); return ret; } public static byte ClampToByte(double x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } /// /// Blends four colors together based on the given weight values. /// /// The blended color. /// /// The weights should be 16-bit fixed point numbers that add up to 65536 ("1.0"). /// 4W16IP means "4 colors, weights, 16-bit integer precision" /// public static ColorBgra BlendColors4W16IP(ColorBgra c1, uint w1, ColorBgra c2, uint w2, ColorBgra c3, uint w3, ColorBgra c4, uint w4) { #if DEBUG if ((w1 + w2 + w3 + w4) != 65536) { throw new ArgumentOutOfRangeException("w1 + w2 + w3 + w4 must equal 65536!"); } #endif const uint ww = 32768; uint af = (c1.A * w1) + (c2.A * w2) + (c3.A * w3) + (c4.A * w4); uint a = (af + ww) >> 16; uint b; uint g; uint r; if (a == 0) { b = 0; g = 0; r = 0; } else { b = (uint)((((long)c1.A * c1.B * w1) + ((long)c2.A * c2.B * w2) + ((long)c3.A * c3.B * w3) + ((long)c4.A * c4.B * w4)) / af); g = (uint)((((long)c1.A * c1.G * w1) + ((long)c2.A * c2.G * w2) + ((long)c3.A * c3.G * w3) + ((long)c4.A * c4.G * w4)) / af); r = (uint)((((long)c1.A * c1.R * w1) + ((long)c2.A * c2.R * w2) + ((long)c3.A * c3.R * w3) + ((long)c4.A * c4.R * w4)) / af); } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)a); } /// /// Blends the colors based on the given weight values. /// /// The array of color values. /// The array of weight values. /// /// The weights should be fixed point numbers. /// The total summation of the weight values will be treated as "1.0". /// Each color will be blended in proportionally to its weight value respective to /// the total summation of the weight values. /// /// /// "WAIP" stands for "weights, arbitrary integer precision" public static ColorBgra BlendColorsWAIP(ColorBgra[] c, uint[] w) { if (c.Length != w.Length) { throw new ArgumentException("c.Length != w.Length"); } if (c.Length == 0) { return ColorBgra.FromUInt32(0); } long wsum = 0; long asum = 0; for (int i = 0; i < w.Length; ++i) { wsum += w[i]; asum += c[i].A * w[i]; } uint a = (uint)((asum + (wsum >> 1)) / wsum); long b; long g; long r; if (a == 0) { b = 0; g = 0; r = 0; } else { b = 0; g = 0; r = 0; for (int i = 0; i < c.Length; ++i) { b += (long)c[i].A * c[i].B * w[i]; g += (long)c[i].A * c[i].G * w[i]; r += (long)c[i].A * c[i].R * w[i]; } b /= asum; g /= asum; r /= asum; } return ColorBgra.FromUInt32((uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24)); } /// /// Blends the colors based on the given weight values. /// /// The array of color values. /// The array of weight values. /// /// Each color will be blended in proportionally to its weight value respective to /// the total summation of the weight values. /// /// /// "WAIP" stands for "weights, floating-point" public static ColorBgra BlendColorsWFP(ColorBgra[] c, double[] w) { if (c.Length != w.Length) { throw new ArgumentException("c.Length != w.Length"); } if (c.Length == 0) { return ColorBgra.FromUInt32(0); } double wsum = 0; double asum = 0; for (int i = 0; i < w.Length; ++i) { wsum += w[i]; asum += (double)c[i].A * w[i]; } double a = asum / wsum; double aMultWsum = a * wsum; double b; double g; double r; if (asum == 0) { b = 0; g = 0; r = 0; } else { b = 0; g = 0; r = 0; for (int i = 0; i < c.Length; ++i) { b += (double)c[i].A * c[i].B * w[i]; g += (double)c[i].A * c[i].G * w[i]; r += (double)c[i].A * c[i].R * w[i]; } b /= aMultWsum; g /= aMultWsum; r /= aMultWsum; } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)a); } /// /// Smoothly blends the given colors together, assuming equal weighting for each one. /// /// /// /// public unsafe static ColorBgra Blend(ColorBgra* colors, int count) { if (count < 0) { throw new ArgumentOutOfRangeException("count must be 0 or greater"); } if (count == 0) { return ColorBgra.Transparent; } ulong aSum = 0; for (int i = 0; i < count; ++i) { aSum += (ulong)colors[i].A; } byte b = 0; byte g = 0; byte r = 0; byte a = (byte)(aSum / (ulong)count); if (aSum != 0) { ulong bSum = 0; ulong gSum = 0; ulong rSum = 0; for (int i = 0; i < count; ++i) { bSum += (ulong)(colors[i].A * colors[i].B); gSum += (ulong)(colors[i].A * colors[i].G); rSum += (ulong)(colors[i].A * colors[i].R); } b = (byte)(bSum / aSum); g = (byte)(gSum / aSum); r = (byte)(rSum / aSum); } return ColorBgra.FromBgra(b, g, r, a); } public override string ToString() { return "B: " + B + ", G: " + G + ", R: " + R + ", A: " + A; } /// /// Casts a ColorBgra to a UInt32. /// public static explicit operator UInt32(ColorBgra color) { return color.Bgra; } /// /// Casts a UInt32 to a ColorBgra. /// public static explicit operator ColorBgra(UInt32 uint32) { return ColorBgra.FromUInt32(uint32); } //// Colors: copied from System.Drawing.Color's list (don't worry I didn't type it in //// manually, I used a code generator w/ reflection ...) public static ColorBgra Transparent { get { return ColorBgra.FromBgra (255, 255, 255, 0); } } public static ColorBgra Zero { get { return (ColorBgra)0; } } public static ColorBgra Black { get { return ColorBgra.FromBgra (0, 0, 0, 255); } } public static ColorBgra Blue { get { return ColorBgra.FromBgra (255, 0, 0, 255); } } public static ColorBgra Cyan { get { return ColorBgra.FromBgra (255, 255, 0, 255); } } public static ColorBgra Green { get { return ColorBgra.FromBgra (0, 128, 0, 255); } } public static ColorBgra Magenta { get { return ColorBgra.FromBgra (255, 0, 255, 255); } } public static ColorBgra Red { get { return ColorBgra.FromBgra (0, 0, 255, 255); } } public static ColorBgra White { get { return ColorBgra.FromBgra (255, 255, 255, 255); } } public static ColorBgra Yellow { get { return ColorBgra.FromBgra (0, 255, 255, 255); } } } } pinta-1.3/Pinta.Core/Effects/ColorDifferenceEffect.cs0000664000175000017500000000547711747026475023674 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// ColorDifferenctEffect is a base class for my difference effects /// that have floating point (double) convolution filters. /// its architecture is just like ConvolutionFilterEffect, adding a /// function (RenderColorDifferenceEffect) called from Render in each /// derived class. /// It is also limited to 3x3 kernels. /// (Chris Crosetto) /// public abstract class ColorDifferenceEffect : BaseEffect { public unsafe void RenderColorDifferenceEffect (double[][] weights, ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { Gdk.Rectangle src_rect = src.GetBounds (); // Cache these for a massive performance boost int src_width = src.Width; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (Gdk.Rectangle rect in rois) { // loop through each line of target rectangle for (int y = rect.Y; y < rect.Y + rect.Height; ++y) { int fyStart = 0; int fyEnd = 3; if (y == src_rect.Y) fyStart = 1; if (y == src_rect.Y + src_rect.Height - 1) fyEnd = 2; // loop through each point in the line ColorBgra* dstPtr = dest.GetPointAddressUnchecked (rect.X, y); for (int x = rect.X; x < rect.X + rect.Width; ++x) { int fxStart = 0; int fxEnd = 3; if (x == src_rect.X) fxStart = 1; if (x == src_rect.X + src_rect.Width - 1) fxEnd = 2; // loop through each weight double rSum = 0.0; double gSum = 0.0; double bSum = 0.0; for (int fy = fyStart; fy < fyEnd; ++fy) { for (int fx = fxStart; fx < fxEnd; ++fx) { double weight = weights[fy][fx]; ColorBgra c = src.GetPointUnchecked (src_data_ptr, src_width, x - 1 + fx, y - 1 + fy); rSum += weight * (double)c.R; gSum += weight * (double)c.G; bSum += weight * (double)c.B; } } int iRsum = (int)rSum; int iGsum = (int)gSum; int iBsum = (int)bSum; if (iRsum > 255) iRsum = 255; if (iGsum > 255) iGsum = 255; if (iBsum > 255) iBsum = 255; if (iRsum < 0) iRsum = 0; if (iGsum < 0) iGsum = 0; if (iBsum < 0) iBsum = 0; *dstPtr = ColorBgra.FromBgra ((byte)iBsum, (byte)iGsum, (byte)iRsum, 255); ++dstPtr; } } } } } }pinta-1.3/Pinta.Core/Effects/ColorTransferMode.cs0000664000175000017500000000114211747026475023077 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { public enum ColorTransferMode { Rgb, Luminosity } }pinta-1.3/Pinta.Core/Effects/Histogram.cs0000664000175000017500000001342611747026475021454 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Histogram is used to calculate a histogram for a surface (in a selection, /// if desired). This can then be used to retrieve percentile, average, peak, /// and distribution information. /// public abstract class Histogram { protected long[][] histogram; public long[][] HistogramValues { get { return this.histogram; } set { if (value.Length == this.histogram.Length && value[0].Length == this.histogram[0].Length) { this.histogram = value; OnHistogramUpdated(); } else { throw new ArgumentException("value muse be an array of arrays of matching size", "value"); } } } public int Channels { get { return this.histogram.Length; } } public int Entries { get { return this.histogram[0].Length; } } protected internal Histogram(int channels, int entries) { this.histogram = new long[channels][]; for (int channel = 0; channel < channels; ++channel) { this.histogram[channel] = new long[entries]; } } public event EventHandler HistogramChanged; protected void OnHistogramUpdated() { if (HistogramChanged != null) { HistogramChanged(this, EventArgs.Empty); } } protected ColorBgra[] visualColors; public ColorBgra GetVisualColor(int channel) { return visualColors[channel]; } public long GetOccurrences(int channel, int val) { return histogram[channel][val]; } public long GetMax() { long max = -1; foreach (long[] channelHistogram in histogram) { foreach (long i in channelHistogram) { if (i > max) { max = i; } } } return max; } public long GetMax(int channel) { long max = -1; foreach (long i in histogram[channel]) { if (i > max) { max = i; } } return max; } public float[] GetMean() { float[] ret = new float[Channels]; for (int channel = 0; channel < Channels; ++channel) { long[] channelHistogram = histogram[channel]; long avg = 0; long sum = 0; for (int j = 0; j < channelHistogram.Length; j++) { avg += j * channelHistogram[j]; sum += channelHistogram[j]; } if (sum != 0) { ret[channel] = (float)avg / (float)sum; } else { ret[channel] = 0; } } return ret; } public int[] GetPercentile(float fraction) { int[] ret = new int[Channels]; for (int channel = 0; channel < Channels; ++channel) { long[] channelHistogram = histogram[channel]; long integral = 0; long sum = 0; for (int j = 0; j < channelHistogram.Length; j++) { sum += channelHistogram[j]; } for (int j = 0; j < channelHistogram.Length; j++) { integral += channelHistogram[j]; if (integral > sum * fraction) { ret[channel] = j; break; } } } return ret; } public abstract ColorBgra GetMeanColor(); public abstract ColorBgra GetPercentileColor(float fraction); /// /// Sets the histogram to be all zeros. /// protected void Clear() { histogram.Initialize(); } protected abstract void AddSurfaceRectangleToHistogram(ImageSurface surface, Gdk.Rectangle rect); //public void UpdateHistogram(Surface surface) //{ // Clear(); // AddSurfaceRectangleToHistogram(surface, surface.Bounds); // OnHistogramUpdated(); //} public void UpdateHistogram (ImageSurface surface, Gdk.Rectangle rect) { Clear(); AddSurfaceRectangleToHistogram(surface, rect); OnHistogramUpdated(); } //public void UpdateHistogram(Surface surface, PdnRegion roi) //{ // Clear(); // foreach (Rectangle rect in roi.GetRegionScansReadOnlyInt()) // { // AddSurfaceRectangleToHistogram(surface, rect); // } // OnHistogramUpdated(); //} } } pinta-1.3/Pinta.Core/Effects/HistogramRGB.cs0000664000175000017500000001157611747026475022013 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Histogram is used to calculate a histogram for a surface (in a selection, /// if desired). This can then be used to retrieve percentile, average, peak, /// and distribution information. /// public sealed class HistogramRgb : Histogram { public HistogramRgb() : base(3, 256) { visualColors = new ColorBgra[]{ ColorBgra.Blue, ColorBgra.Green, ColorBgra.Red }; } public override ColorBgra GetMeanColor() { float[] mean = GetMean(); return ColorBgra.FromBgr((byte)(mean[0] + 0.5f), (byte)(mean[1] + 0.5f), (byte)(mean[2] + 0.5f)); } public override ColorBgra GetPercentileColor(float fraction) { int[] perc = GetPercentile(fraction); return ColorBgra.FromBgr((byte)(perc[0]), (byte)(perc[1]), (byte)(perc[2])); } protected override unsafe void AddSurfaceRectangleToHistogram(ImageSurface surface, Gdk.Rectangle rect) { long[] histogramB = histogram[0]; long[] histogramG = histogram[1]; long[] histogramR = histogram[2]; int rect_right = rect.Right; for (int y = rect.Y; y < rect.Bottom; ++y) { ColorBgra* ptr = surface.GetPointAddressUnchecked(rect.X, y); for (int x = rect.X; x < rect_right; ++x) { ++histogramB[ptr->B]; ++histogramG[ptr->G]; ++histogramR[ptr->R]; ++ptr; } } } public void SetFromLeveledHistogram(HistogramRgb inputHistogram, UnaryPixelOps.Level upo) { if (inputHistogram == null || upo == null) { return; } Clear(); float[] before = new float[3]; float[] slopes = new float[3]; for (int c = 0; c < 3; c++) { long[] channelHistogramOutput = histogram[c]; long[] channelHistogramInput = inputHistogram.histogram[c]; for (int v = 0; v <= 255; v++) { ColorBgra after = ColorBgra.FromBgr((byte)v, (byte)v, (byte)v); upo.UnApply(after, before, slopes); if (after[c] > upo.ColorOutHigh[c] || after[c] < upo.ColorOutLow[c] || (int)Math.Floor(before[c]) < 0 || (int)Math.Ceiling(before[c]) > 255 || float.IsNaN(before[c])) { channelHistogramOutput[v] = 0; } else if (before[c] <= upo.ColorInLow[c]) { channelHistogramOutput[v] = 0; for (int i = 0; i <= upo.ColorInLow[c]; i++) { channelHistogramOutput[v] += channelHistogramInput[i]; } } else if (before[c] >= upo.ColorInHigh[c]) { channelHistogramOutput[v] = 0; for (int i = upo.ColorInHigh[c]; i < 256; i++) { channelHistogramOutput[v] += channelHistogramInput[i]; } } else { channelHistogramOutput[v] = (int)(slopes[c] * Utility.Lerp( channelHistogramInput[(int)Math.Floor(before[c])], channelHistogramInput[(int)Math.Ceiling(before[c])], before[c] - Math.Floor(before[c]))); } } } OnHistogramUpdated(); } public UnaryPixelOps.Level MakeLevelsAuto() { ColorBgra lo = GetPercentileColor(0.005f); ColorBgra md = GetMeanColor(); ColorBgra hi = GetPercentileColor(0.995f); return UnaryPixelOps.Level.AutoFromLoMdHi(lo, md, hi); } } } pinta-1.3/Pinta.Core/Effects/HsvColor.cs0000664000175000017500000001312611747026475021253 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { /// /// Adapted from: /// "A Primer on Building a Color Picker User Control with GDI+ in Visual Basic .NET or C#" /// http://www.msdnaa.net/Resources/display.aspx?ResID=2460 /// public struct HsvColor { public int Hue; // 0-360 public int Saturation; // 0-100 public int Value; // 0-100 public static bool operator== (HsvColor lhs, HsvColor rhs) { if ((lhs.Hue == rhs.Hue) && (lhs.Saturation == rhs.Saturation) && (lhs.Value == rhs.Value)) { return true; } else { return false; } } public static bool operator!= (HsvColor lhs, HsvColor rhs) { return !(lhs == rhs); } public override bool Equals(object obj) { return this == (HsvColor)obj; } public override int GetHashCode() { return (Hue + (Saturation << 8) + (Value << 16)).GetHashCode();; } public HsvColor(int hue, int saturation, int value) { if (hue < 0 || hue > 360) { throw new ArgumentOutOfRangeException("hue", "must be in the range [0, 360]"); } if (saturation < 0 || saturation > 100) { throw new ArgumentOutOfRangeException("saturation", "must be in the range [0, 100]"); } if (value < 0 || value > 100) { throw new ArgumentOutOfRangeException("value", "must be in the range [0, 100]"); } Hue = hue; Saturation = saturation; Value = value; } // public static HsvColor FromColor(Color color) // { // RgbColor rgb = new RgbColor(color.R, color.G, color.B); // return rgb.ToHsv(); // } // // public Color ToColor() // { // RgbColor rgb = ToRgb(); // return Color.FromArgb(rgb.Red, rgb.Green, rgb.Blue); // } public RgbColor ToRgb() { // HsvColor contains values scaled as in the color wheel: double h; double s; double v; double r = 0; double g = 0; double b = 0; // Scale Hue to be between 0 and 360. Saturation // and value scale to be between 0 and 1. h = (double) Hue % 360; s = (double) Saturation / 100; v = (double) Value / 100; if (s == 0) { // If s is 0, all colors are the same. // This is some flavor of gray. r = v; g = v; b = v; } else { double p; double q; double t; double fractionalSector; int sectorNumber; double sectorPos; // The color wheel consists of 6 sectors. // Figure out which sector you're in. sectorPos = h / 60; sectorNumber = (int)(Math.Floor(sectorPos)); // get the fractional part of the sector. // That is, how many degrees into the sector // are you? fractionalSector = sectorPos - sectorNumber; // Calculate values for the three axes // of the color. p = v * (1 - s); q = v * (1 - (s * fractionalSector)); t = v * (1 - (s * (1 - fractionalSector))); // Assign the fractional colors to r, g, and b // based on the sector the angle is in. switch (sectorNumber) { case 0: r = v; g = t; b = p; break; case 1: r = q; g = v; b = p; break; case 2: r = p; g = v; b = t; break; case 3: r = p; g = q; b = v; break; case 4: r = t; g = p; b = v; break; case 5: r = v; g = p; b = q; break; } } // return an RgbColor structure, with values scaled // to be between 0 and 255. return new RgbColor((int)(r * 255), (int)(g * 255), (int)(b * 255)); } public override string ToString() { return String.Format("({0}, {1}, {2})", Hue, Saturation, Value); } } } pinta-1.3/Pinta.Core/Effects/IBitVector2D.cs0000664000175000017500000000243311747026475021713 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { public interface IBitVector2D : ICloneable { int Width { get; } int Height { get; } bool this[int x, int y] { get; set; } bool this[Point pt] { get; set; } bool IsEmpty { get; } void Clear (bool newValue); void Set (int x, int y, bool newValue); void Set (Point pt, bool newValue); void Set (Gdk.Rectangle rect, bool newValue); void Set (Scanline scan, bool newValue); //void Set (PdnRegion region, bool newValue); void SetUnchecked (int x, int y, bool newValue); bool Get (int x, int y); bool GetUnchecked (int x, int y); void Invert (int x, int y); void Invert (Point pt); void Invert (Gdk.Rectangle rect); void Invert (Scanline scan); //void Invert (PdnRegion region); } } pinta-1.3/Pinta.Core/Effects/ISurfaceDraw.cs0000664000175000017500000000453211747026475022034 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Provides a standard interface for allowing an object to draw itself on to a given Surface. /// public interface ISurfaceDraw { /// /// Draws the object on to the given Surface. /// /// The Surface to draw to. void Draw(ImageSurface dst); /// /// Draws the object on to the given Surface after passing each pixel through /// the given pixel operation as in: dst = pixelOp(dst, src) /// /// The Surface to draw to. /// The pixelOp to use for rendering. void Draw(ImageSurface dst, PixelOp pixelOp); /// /// Draws the object on to the given Surface starting at the given (x,y) offset. /// /// The Surface to draw to. /// The value to be added to every X coordinate that is used for drawing. /// The value to be added to every Y coordinate that is used for drawing. void Draw(ImageSurface dst, int tX, int tY); /// /// Draws the object on to the given Surface starting at the given (x,y) offset after /// passing each pixel through the given pixel operation as in: dst = pixelOp(dst, src) /// /// The Surface to draw to. /// The value to be added to every X coordinate that is used for drawing. /// The value to be added to every Y coordinate that is used for drawing. void Draw(ImageSurface dst, int tX, int tY, PixelOp pixelOp); } } pinta-1.3/Pinta.Core/Effects/IrregularSurface.cs0000664000175000017500000001374611747026475022771 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.Runtime.Serialization; using Gdk; namespace Pinta.Core { /// /// Defines a surface that is irregularly shaped, defined by a Region. /// Works by containing an array of PlacedSurface instances. /// Similar to IrregularImage, but works with Surface objects instead. /// Instances of this class are immutable once created. /// [Serializable] public sealed class IrregularSurface : ISurfaceDraw, IDisposable, ICloneable, IDeserializationCallback { private List placedSurfaces; [NonSerialized] private Region region; #region Constructors /// /// Constructs an IrregularSurface by copying the given region-of-interest from an Image. /// /// The Surface to copy pixels from. /// Defines the Region from which to copy pixels from the Image. public IrregularSurface (Cairo.ImageSurface source, Region roi) { Region roiClipped = (Region)roi.Copy (); roiClipped.Intersect (Region.Rectangle (source.GetBounds ())); Rectangle[] rects = roiClipped.GetRectangles (); this.placedSurfaces = new List (rects.Length); foreach (Rectangle rect in rects) this.placedSurfaces.Add (new PlacedSurface (source, rect)); this.region = roiClipped; } public IrregularSurface (Cairo.ImageSurface source, Rectangle[] roi) { this.placedSurfaces = new List (roi.Length); foreach (Rectangle rect in roi) { Rectangle ri = Rectangle.Intersect (source.GetBounds (), rect); if (!ri.IsEmpty) this.placedSurfaces.Add (new PlacedSurface (source, ri)); } this.region = Utility.RectanglesToRegion (roi); this.region.Intersect (Region.Rectangle (source.GetBounds ())); } /// /// Constructs an IrregularSurface by copying the given rectangle-of-interest from an Image. /// /// The Surface to copy pixels from. /// Defines the Rectangle from which to copy pixels from the Image. public IrregularSurface (Cairo.ImageSurface source, Rectangle roi) { this.placedSurfaces = new List (); this.placedSurfaces.Add (new PlacedSurface (source, roi)); this.region = Region.Rectangle (roi); } private IrregularSurface (IrregularSurface cloneMe) { this.placedSurfaces = new List (cloneMe.placedSurfaces.Count); foreach (PlacedSurface ps in cloneMe.placedSurfaces) this.placedSurfaces.Add ((PlacedSurface)ps.Clone ()); this.region = cloneMe.Region.Copy (); } ~IrregularSurface () { Dispose (false); } #endregion #region Public Properties /// /// The Region that the irregular image fills. /// public Region Region { get { if (this.disposed) throw new ObjectDisposedException ("IrregularSurface"); return this.region; } } #endregion #region Public Methods /// /// Draws the IrregularSurface on to the given Surface. /// /// The Surface to draw to. public void Draw (Cairo.ImageSurface dst) { if (disposed) throw new ObjectDisposedException ("IrregularSurface"); foreach (PlacedSurface ps in placedSurfaces) ps.Draw (dst); } public void Draw (Cairo.ImageSurface dst, PixelOp pixelOp) { if (this.disposed) throw new ObjectDisposedException ("IrregularSurface"); foreach (PlacedSurface ps in this.placedSurfaces) ps.Draw (dst, pixelOp); } /// /// Draws the IrregularSurface on to the given Surface starting at the given (x,y) offset. /// /// The Surface to draw to. /// The value to be added to every X coordinate that is used for drawing. /// The value to be added to every Y coordinate that is used for drawing. public void Draw (Cairo.ImageSurface dst, int tX, int tY) { if (this.disposed) throw new ObjectDisposedException ("IrregularSurface"); foreach (PlacedSurface ps in this.placedSurfaces) ps.Draw (dst, tX, tY); } public void Draw (Cairo.ImageSurface dst, int tX, int tY, PixelOp pixelOp) { if (this.disposed) throw new ObjectDisposedException ("IrregularSurface"); foreach (PlacedSurface ps in this.placedSurfaces) ps.Draw (dst, tX, tY, pixelOp); } #endregion #region IDisposable Members private bool disposed = false; public void Dispose () { Dispose (true); System.GC.SuppressFinalize (this); } private void Dispose (bool disposing) { if (!this.disposed) { // TODO: FXCOP: call Dispose() on this.region this.disposed = true; if (disposing) { this.placedSurfaces.Clear (); this.placedSurfaces = null; } } } #endregion #region ICloneable Members /// /// Clones the IrregularSurface. /// /// A copy of the current state of this PlacedSurface. public object Clone () { if (disposed) throw new ObjectDisposedException ("IrregularSurface"); return new IrregularSurface (this); } #endregion #region IDeserializationCallback Members public void OnDeserialization (object sender) { region = Region.Rectangle (Rectangle.Zero); Rectangle[] rects = new Rectangle[placedSurfaces.Count]; for (int i = 0; i < placedSurfaces.Count; ++i) rects[i] = placedSurfaces[i].Bounds; region = Utility.RectanglesToRegion (rects); } #endregion } } pinta-1.3/Pinta.Core/Effects/LocalHistogramEffect.cs0000664000175000017500000003563411747026475023551 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { public abstract class LocalHistogramEffect : BaseEffect { public LocalHistogramEffect () { } protected static int GetMaxAreaForRadius(int radius) { int area = 0; int cutoff = ((radius * 2 + 1) * (radius * 2 + 1) + 2) / 4; for (int v = -radius; v <= radius; ++v) { for (int u = -radius; u <= radius; ++u) { if (u * u + v * v <= cutoff) ++area; } } return area; } public virtual unsafe ColorBgra Apply(ColorBgra src, int area, int* hb, int* hg, int* hr, int* ha) { return src; } //same as Aply, except the histogram is alpha-weighted instead of keeping a separate alpha channel histogram. public virtual unsafe ColorBgra ApplyWithAlpha(ColorBgra src, int area, int sum, int* hb, int* hg, int* hr) { return src; } public static unsafe ColorBgra GetPercentile(int percentile, int area, int* hb, int* hg, int* hr, int* ha) { int minCount = area * percentile / 100; int b = 0; int bCount = 0; while (b < 255 && hb[b] == 0) { ++b; } while (b < 255 && bCount < minCount) { bCount += hb[b]; ++b; } int g = 0; int gCount = 0; while (g < 255 && hg[g] == 0) { ++g; } while (g < 255 && gCount < minCount) { gCount += hg[g]; ++g; } int r = 0; int rCount = 0; while (r < 255 && hr[r] == 0) { ++r; } while (r < 255 && rCount < minCount) { rCount += hr[r]; ++r; } int a = 0; int aCount = 0; while (a < 255 && ha[a] == 0) { ++a; } while (a < 255 && aCount < minCount) { aCount += ha[a]; ++a; } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)a); } public unsafe void RenderRect( int rad, ImageSurface src, ImageSurface dst, Rectangle rect) { int width = src.Width; int height = src.Height; int* leadingEdgeX = stackalloc int[rad + 1]; int stride = src.Stride / sizeof(ColorBgra); // approximately (rad + 0.5)^2 int cutoff = ((rad * 2 + 1) * (rad * 2 + 1) + 2) / 4; for (int v = 0; v <= rad; ++v) { for (int u = 0; u <= rad; ++u) { if (u * u + v * v <= cutoff) { leadingEdgeX[v] = u; } } } const int hLength = 256; int* hb = stackalloc int[hLength]; int* hg = stackalloc int[hLength]; int* hr = stackalloc int[hLength]; int* ha = stackalloc int[hLength]; for (int y = (int)rect.Y; y < rect.Y + rect.Height; y++) { MemorySetToZero (hb, hLength); MemorySetToZero (hg, hLength); MemorySetToZero (hr, hLength); MemorySetToZero (ha, hLength); int area = 0; ColorBgra* ps = src.GetPointAddressUnchecked((int)rect.X, y); ColorBgra* pd = dst.GetPointAddressUnchecked((int)rect.X, y); // assert: v + y >= 0 int top = -Math.Min(rad, y); // assert: v + y <= height - 1 int bottom = Math.Min(rad, height - 1 - y); // assert: u + x >= 0 int left = -Math.Min(rad, (int)rect.X); // assert: u + x <= width - 1 int right = Math.Min(rad, width - 1 - (int)rect.X); for (int v = top; v <= bottom; ++v) { ColorBgra* psamp = src.GetPointAddressUnchecked((int)rect.X + left, y + v); for (int u = left; u <= right; ++u) { if ((u * u + v * v) <= cutoff) { ++area; ++hb[psamp->B]; ++hg[psamp->G]; ++hr[psamp->R]; ++ha[psamp->A]; } ++psamp; } } for (int x = (int)rect.X; x < rect.X + rect.Width; x++) { *pd = Apply(*ps, area, hb, hg, hr, ha); // assert: u + x >= 0 left = -Math.Min(rad, x); // assert: u + x <= width - 1 right = Math.Min(rad + 1, width - 1 - x); // Subtract trailing edge top half int v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (-u >= left) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) - u; --hb[p->B]; --hg[p->G]; --hr[p->R]; --ha[p->A]; --area; --v; } // add leading edge top half v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (u + 1 <= right) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) + u + 1; ++hb[p->B]; ++hg[p->G]; ++hr[p->R]; ++ha[p->A]; ++area; --v; } // Subtract trailing edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (-u >= left) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride - u; --hb[p->B]; --hg[p->G]; --hr[p->R]; --ha[p->A]; --area; ++v; } // add leading edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (u + 1 <= right) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride + u + 1; ++hb[p->B]; ++hg[p->G]; ++hr[p->R]; ++ha[p->A]; ++area; ++v; } ++ps; ++pd; } } } //same as RenderRect, except the histogram is alpha-weighted instead of keeping a separate alpha channel histogram. public unsafe void RenderRectWithAlpha( int rad, ImageSurface src, ImageSurface dst, Rectangle rect) { int width = src.Width; int height = src.Height; int* leadingEdgeX = stackalloc int[rad + 1]; int stride = src.Stride / sizeof(ColorBgra); // approximately (rad + 0.5)^2 int cutoff = ((rad * 2 + 1) * (rad * 2 + 1) + 2) / 4; for (int v = 0; v <= rad; ++v) { for (int u = 0; u <= rad; ++u) { if (u * u + v * v <= cutoff) { leadingEdgeX[v] = u; } } } const int hLength = 256; int* hb = stackalloc int[hLength]; int* hg = stackalloc int[hLength]; int* hr = stackalloc int[hLength]; for (int y = (int)rect.Y; y < rect.Y + rect.Height; y++) { MemorySetToZero (hb, hLength); MemorySetToZero (hg, hLength); MemorySetToZero (hr, hLength); int area = 0; int sum = 0; ColorBgra* ps = src.GetPointAddressUnchecked((int)rect.X, y); ColorBgra* pd = dst.GetPointAddressUnchecked((int)rect.X, y); // assert: v + y >= 0 int top = -Math.Min(rad, y); // assert: v + y <= height - 1 int bottom = Math.Min(rad, height - 1 - y); // assert: u + x >= 0 int left = -Math.Min(rad, (int)rect.X); // assert: u + x <= width - 1 int right = Math.Min(rad, width - 1 - (int)rect.Y); for (int v = top; v <= bottom; ++v) { ColorBgra* psamp = src.GetPointAddressUnchecked((int)rect.Y + left, y + v); for (int u = left; u <= right; ++u) { byte w = psamp->A; if ((u * u + v * v) <= cutoff) { ++area; sum += w; hb[psamp->B] += w; hg[psamp->G] += w; hr[psamp->R] += w; } ++psamp; } } for (int x = (int)rect.X; x < rect.X + rect.Width; x++) { *pd = ApplyWithAlpha(*ps, area, sum, hb, hg, hr); // assert: u + x >= 0 left = -Math.Min(rad, x); // assert: u + x <= width - 1 right = Math.Min(rad + 1, width - 1 - x); // Subtract trailing edge top half int v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (-u >= left) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) - u; byte w = p->A; hb[p->B] -= w; hg[p->G] -= w; hr[p->R] -= w; sum -= w; --area; --v; } // add leading edge top half v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (u + 1 <= right) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) + u + 1; byte w = p->A; hb[p->B] += w; hg[p->G] += w; hr[p->R] += w; sum += w; ++area; --v; } // Subtract trailing edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (-u >= left) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride - u; byte w = p->A; hb[p->B] -= w; hg[p->G] -= w; hr[p->R] -= w; sum -= w; --area; ++v; } // add leading edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (u + 1 <= right) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride + u + 1; byte w = p->A; hb[p->B] += w; hg[p->G] += w; hr[p->R] += w; sum += w; ++area; ++v; } ++ps; ++pd; } } } //must be more efficient way to zero memory array private unsafe void MemorySetToZero(int* ptr, int size) { for (int i = 0; i < size; i++) ptr [i] = 0; } } } pinta-1.3/Pinta.Core/Effects/PixelOp.cs0000664000175000017500000001112111747026475021065 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Threading; using Cairo; namespace Pinta.Core { [Serializable] public unsafe abstract class PixelOp //: IPixelOp { public PixelOp () { } /// /// Computes alpha for r OVER l operation. /// public static byte ComputeAlpha (byte la, byte ra) { return (byte)(((la * (256 - (ra + (ra >> 7)))) >> 8) + ra); } public void Apply (ImageSurface dst, ImageSurface src, Gdk.Rectangle[] rois, int startIndex, int length) { for (int i = startIndex; i < startIndex + length; ++i) { ApplyBase (dst, rois[i].Location, src, rois[i].Location, rois[i].Size); } } public void Apply (ImageSurface dst, Gdk.Point dstOffset, ImageSurface src, Gdk.Point srcOffset, Gdk.Size roiSize) { ApplyBase (dst, dstOffset, src, srcOffset, roiSize); } /// /// Provides a default implementation for performing dst = F(dst, src) or F(src) over some rectangle /// of interest. May be slightly faster than calling the other multi-parameter Apply method, as less /// variables are used in the implementation, thus inducing less register pressure. /// /// The Surface to write pixels to, and from which pixels are read and used as the lhs parameter for calling the method ColorBgra Apply(ColorBgra, ColorBgra). /// The pixel offset that defines the upper-left of the rectangle-of-interest for the dst Surface. /// The Surface to read pixels from for the rhs parameter given to the method ColorBgra Apply(ColorBgra, ColorBgra)b>. /// The pixel offset that defines the upper-left of the rectangle-of-interest for the src Surface. /// The size of the rectangles-of-interest for all Surfaces. public void ApplyBase (ImageSurface dst, Gdk.Point dstOffset, ImageSurface src, Gdk.Point srcOffset, Gdk.Size roiSize) { // Create bounding rectangles for each Surface Gdk.Rectangle dstRect = new Gdk.Rectangle (dstOffset, roiSize); if (dstRect.Width == 0 || dstRect.Height == 0) return; Gdk.Rectangle srcRect = new Gdk.Rectangle (srcOffset, roiSize); if (srcRect.Width == 0 || srcRect.Height == 0) return; // Clip those rectangles to those Surface's bounding rectangles Gdk.Rectangle dstClip = Gdk.Rectangle.Intersect (dstRect, dst.GetBounds ()); Gdk.Rectangle srcClip = Gdk.Rectangle.Intersect (srcRect, src.GetBounds ()); // If any of those Rectangles actually got clipped, then throw an exception if (dstRect != dstClip) throw new ArgumentOutOfRangeException ( "roiSize", "Destination roi out of bounds" + string.Format (", dst.Size=({0},{1}", dst.Width, dst.Height) + ", dst.Bounds=" + dst.GetBounds ().ToString () + ", dstOffset=" + dstOffset.ToString () + string.Format (", src.Size=({0},{1}", src.Width, src.Height) + ", srcOffset=" + srcOffset.ToString () + ", roiSize=" + roiSize.ToString () + ", dstRect=" + dstRect.ToString () + ", dstClip=" + dstClip.ToString () + ", srcRect=" + srcRect.ToString () + ", srcClip=" + srcClip.ToString () ); if (srcRect != srcClip) throw new ArgumentOutOfRangeException ("roiSize", "Source roi out of bounds"); // Cache the width and height properties int width = roiSize.Width; int height = roiSize.Height; // Do the work. unsafe { for (int row = 0; row < roiSize.Height; ++row) { ColorBgra* dstPtr = dst.GetPointAddress (dstOffset.X, dstOffset.Y + row); ColorBgra* srcPtr = src.GetPointAddress (srcOffset.X, srcOffset.Y + row); Apply (dstPtr, srcPtr, width); } } } public virtual void Apply (ImageSurface dst, Gdk.Point dstOffset, ImageSurface src, Gdk.Point srcOffset, int scanLength) { Apply (dst.GetPointAddress (dstOffset), src.GetPointAddress (srcOffset), scanLength); } public virtual void Apply (ColorBgra* dst, ColorBgra* src, int length) { throw new System.NotImplementedException ("Derived class must implement Apply(ColorBgra*,ColorBgra*,int)"); } } } pinta-1.3/Pinta.Core/Effects/PlacedSurface.cs0000664000175000017500000001003211747026475022206 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Encapsulates a surface ("what") along with a pixel offset ("where") which /// defines where the surface would be drawn on to another surface. /// Instances of this object are immutable -- once you create it, you can not /// change it. /// [Serializable] public sealed class PlacedSurface : ISurfaceDraw, ICloneable { Gdk.Point where; ImageSurface what; #region Constructors private PlacedSurface (PlacedSurface ps) { where = ps.Where; what = ps.What.Clone (); } private PlacedSurface () { } public PlacedSurface (ImageSurface source, Gdk.Rectangle roi) { where = roi.Location; what = new ImageSurface (Format.Argb32, roi.Width, roi.Height); using (Context g = new Context (what)) { g.SetSourceSurface (source, -roi.X, -roi.Y); g.Paint (); } } #endregion #region Public Properties public Gdk.Point Where { get { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); return where; } } public ImageSurface What { get { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); return what; } } public Gdk.Size Size { get { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); return new Gdk.Size (what.Width, what.Height); } } public Gdk.Rectangle Bounds { get { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); return new Gdk.Rectangle (Where, Size); } } #endregion #region Public Methods public void Draw (ImageSurface dst) { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); using (Cairo.Context g = new Cairo.Context (dst)) { g.Save (); Rectangle r = what.GetBounds ().ToCairoRectangle (); // We need to use the source operator to fully replace the old // data. Or else we may paint transparent on top of it and // it will still be visible. [Bug #670411] using (Path p = g.CreateRectanglePath (new Rectangle (where.X, where.Y, r.Width, r.Height))) { g.AppendPath (p); g.Clip (); g.Operator = Operator.Source; g.DrawPixbuf (what.ToPixbuf (), new Cairo.Point (where.X, where.Y)); } g.Restore (); } } public void Draw (ImageSurface dst, PixelOp pixelOp) { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); Gdk.Rectangle dstRect = Bounds; Gdk.Rectangle dstClip = Gdk.Rectangle.Intersect (dstRect, dst.GetBounds ()); if (dstClip.Width > 0 && dstClip.Height > 0) { int dtX = dstClip.X - where.X; int dtY = dstClip.Y - where.Y; pixelOp.Apply (dst, dstClip.Location, what, new Gdk.Point (dtX, dtY), dstClip.Size); } } public void Draw (ImageSurface dst, int tX, int tY) { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); Gdk.Point oldWhere = where; try { where.X += tX; where.Y += tY; Draw (dst); } finally { where = oldWhere; } } public void Draw (ImageSurface dst, int tX, int tY, PixelOp pixelOp) { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); Gdk.Point oldWhere = where; try { where.X += tX; where.Y += tY; Draw (dst, pixelOp); } finally { where = oldWhere; } } #endregion #region IDisposable Members private bool disposed = false; #endregion #region ICloneable Members public object Clone () { if (disposed) throw new ObjectDisposedException ("PlacedSurface"); return new PlacedSurface (this); } #endregion } } pinta-1.3/Pinta.Core/Effects/RgbColor.cs0000664000175000017500000000770511747026475021233 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { /// /// Adapted from: /// "A Primer on Building a Color Picker User Control with GDI+ in Visual Basic .NET or C#" /// http://www.msdnaa.net/Resources/display.aspx?ResID=2460 /// /// This class is only used by the ColorsForm and ColorWheel. Nothing else in this program /// should be using it! /// [Serializable] public struct RgbColor { // All values are between 0 and 255. public int Red; public int Green; public int Blue; public RgbColor(int R, int G, int B) { #if DEBUG if (R < 0 || R > 255) { throw new ArgumentOutOfRangeException("R", R, "R must corrospond to a byte value"); } if (G < 0 || G > 255) { throw new ArgumentOutOfRangeException("G", G, "G must corrospond to a byte value"); } if (B < 0 || B > 255) { throw new ArgumentOutOfRangeException("B", B, "B must corrospond to a byte value"); } #endif Red = R; Green = G; Blue = B; } public static RgbColor FromHsv(HsvColor hsv) { return hsv.ToRgb(); } // public Color ToColor() // { // return Color.FromArgb(Red, Green, Blue); // } public HsvColor ToHsv() { // In this function, R, G, and B values must be scaled // to be between 0 and 1. // HsvColor.Hue will be a value between 0 and 360, and // HsvColor.Saturation and value are between 0 and 1. double min; double max; double delta; double r = (double) Red / 255; double g = (double) Green / 255; double b = (double) Blue / 255; double h; double s; double v; min = Math.Min(Math.Min(r, g), b); max = Math.Max(Math.Max(r, g), b); v = max; delta = max - min; if (max == 0 || delta == 0) { // R, G, and B must be 0, or all the same. // In this case, S is 0, and H is undefined. // Using H = 0 is as good as any... s = 0; h = 0; } else { s = delta / max; if (r == max) { // Between Yellow and Magenta h = (g - b) / delta; } else if (g == max) { // Between Cyan and Yellow h = 2 + (b - r) / delta; } else { // Between Magenta and Cyan h = 4 + (r - g) / delta; } } // Scale h to be between 0 and 360. // This may require adding 360, if the value // is negative. h *= 60; if (h < 0) { h += 360; } // Scale to the requirements of this // application. All values are between 0 and 255. return new HsvColor((int)h, (int)(s * 100), (int)(v * 100)); } public override string ToString() { return String.Format("({0}, {1}, {2})", Red, Green, Blue); } } } pinta-1.3/Pinta.Core/Effects/Scanline.cs0000664000175000017500000000407611747026475021254 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { public struct Scanline { private int x; private int y; private int length; public int X { get { return x; } } public int Y { get { return y; } } public int Length { get { return length; } } public override int GetHashCode() { unchecked { return length.GetHashCode() + x.GetHashCode() + y.GetHashCode(); } } public override bool Equals(object obj) { if (obj is Scanline) { Scanline rhs = (Scanline)obj; return x == rhs.x && y == rhs.y && length == rhs.length; } else { return false; } } public static bool operator== (Scanline lhs, Scanline rhs) { return lhs.x == rhs.x && lhs.y == rhs.y && lhs.length == rhs.length; } public static bool operator!= (Scanline lhs, Scanline rhs) { return !(lhs == rhs); } public override string ToString() { return "(" + x + "," + y + "):[" + length.ToString() + "]"; } public Scanline(int x, int y, int length) { this.x = x; this.y = y; this.length = length; } } } pinta-1.3/Pinta.Core/Effects/SplineInterpolator.cs0000664000175000017500000000727211747026475023356 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections; using System.Collections.Generic; namespace Pinta.Core { public sealed class SplineInterpolator { private SortedList points = new SortedList(); private double[] y2; public int Count { get { return this.points.Count; } } public void Add(double x, double y) { points[x] = y; this.y2 = null; } public void Clear() { this.points.Clear(); } // Interpolate() and PreCompute() are adapted from: // NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING // ISBN 0-521-43108-5, page 113, section 3.3. public double Interpolate(double x) { if (y2 == null) { PreCompute(); } IList xa = this.points.Keys; IList ya = this.points.Values; int n = ya.Count; int klo = 0; // We will find the right place in the table by means of int khi = n - 1; // bisection. This is optimal if sequential calls to this while (khi - klo > 1) { // routine are at random values of x. If sequential calls int k = (khi + klo) >> 1;// are in order, and closely spaced, one would do better if (xa[k] > x) { khi = k; // to store previous values of klo and khi and test if } else { klo = k; } } double h = xa[khi] - xa[klo]; double a = (xa[khi] - x) / h; double b = (x - xa[klo]) / h; // Cubic spline polynomial is now evaluated. return a * ya[klo] + b * ya[khi] + ((a * a * a - a) * y2[klo] + (b * b * b - b) * y2[khi]) * (h * h) / 6.0; } private void PreCompute() { int n = points.Count; double[] u = new double[n]; IList xa = points.Keys; IList ya = points.Values; this.y2 = new double[n]; u[0] = 0; this.y2[0] = 0; for (int i = 1; i < n - 1; ++i) { // This is the decomposition loop of the tridiagonal algorithm. // y2 and u are used for temporary storage of the decomposed factors. double wx = xa[i + 1] - xa[i - 1]; double sig = (xa[i] - xa[i - 1]) / wx; double p = sig * y2[i - 1] + 2.0; this.y2[i] = (sig - 1.0) / p; double ddydx = (ya[i + 1] - ya[i]) / (xa[i + 1] - xa[i]) - (ya[i] - ya[i - 1]) / (xa[i] - xa[i - 1]); u[i] = (6.0 * ddydx / wx - sig * u[i - 1]) / p; } this.y2[n - 1] = 0; // This is the backsubstitution loop of the tridiagonal algorithm for (int i = n - 2; i >= 0; --i) { this.y2[i] = this.y2[i] * this.y2[i + 1] + u[i]; } } } } pinta-1.3/Pinta.Core/Effects/UnaryPixelOp.cs0000664000175000017500000000613411747026475022114 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Threading; using Cairo; namespace Pinta.Core { /// /// Defines a way to operate on a pixel, or a region of pixels, in a unary fashion. /// That is, it is a simple function F that takes one parameter and returns a /// result of the form: d = F(c) /// [Serializable] public unsafe abstract class UnaryPixelOp : PixelOp { public UnaryPixelOp () { } public abstract ColorBgra Apply (ColorBgra color); public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { unsafe { while (length > 0) { *dst = Apply (*src); ++dst; ++src; --length; } } } public unsafe virtual void Apply (ColorBgra* ptr, int length) { unsafe { while (length > 0) { *ptr = Apply (*ptr); ++ptr; --length; } } } private unsafe void ApplyRectangle (ImageSurface surface, Gdk.Rectangle rect) { for (int y = rect.Left; y < rect.Bottom; ++y) { ColorBgra* ptr = surface.GetPointAddress (rect.Left, y); Apply (ptr, rect.Width); } } public void Apply (ImageSurface surface, Gdk.Rectangle[] roi, int startIndex, int length) { Gdk.Rectangle regionBounds = Utility.GetRegionBounds (roi, startIndex, length); if (regionBounds != Gdk.Rectangle.Intersect (surface.GetBounds (), regionBounds)) throw new ArgumentOutOfRangeException ("roi", "Region is out of bounds"); unsafe { for (int x = startIndex; x < startIndex + length; ++x) ApplyRectangle (surface, roi[x]); } } public void Apply (ImageSurface surface, Gdk.Rectangle[] roi) { Apply (surface, roi, 0, roi.Length); } public unsafe void Apply (ImageSurface surface, Gdk.Rectangle roi) { ApplyRectangle (surface, roi); } public override void Apply (ImageSurface dst, Gdk.Point dstOffset, ImageSurface src, Gdk.Point srcOffset, int scanLength) { Apply (dst.GetPointAddress (dstOffset), src.GetPointAddress (srcOffset), scanLength); } public void Apply (ImageSurface dst, ImageSurface src, Gdk.Rectangle roi) { ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; ColorBgra* dst_data_ptr = (ColorBgra*)dst.DataPtr; int dst_width = dst.Width; for (int y = roi.Y; y < roi.Bottom; ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_data_ptr, dst_width, roi.X, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, roi.X, y); Apply (dstPtr, srcPtr, roi.Width); } } public void Apply (ImageSurface dst, ImageSurface src, Gdk.Rectangle[] rois) { foreach (Gdk.Rectangle roi in rois) Apply (dst, src, roi); } } } pinta-1.3/Pinta.Core/Effects/UnaryPixelOps.cs0000664000175000017500000007144211747026475022303 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { /// /// Provides a set of standard UnaryPixelOps. /// public sealed class UnaryPixelOps { private UnaryPixelOps() { } /// /// Passes through the given color value. /// result(color) = color /// [Serializable] public class Identity : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { return color; } public unsafe override void Apply(ColorBgra *dst, ColorBgra *src, int length) { for (int i = 0; i < length; i++) { *dst = *src; dst++; src++; } } public unsafe override void Apply(ColorBgra* ptr, int length) { return; } } /// /// Always returns a constant color. /// [Serializable] public class Constant : UnaryPixelOp { private ColorBgra setColor; public override ColorBgra Apply(ColorBgra color) { return setColor; } public unsafe override void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { *dst = setColor; ++dst; --length; } } public unsafe override void Apply(ColorBgra* ptr, int length) { while (length > 0) { *ptr = setColor; ++ptr; --length; } } public Constant(ColorBgra setColor) { this.setColor = setColor; } } /// /// Blends pixels with the specified constant color. /// [Serializable] public class BlendConstant : UnaryPixelOp { private ColorBgra blendColor; public override ColorBgra Apply(ColorBgra color) { int a = blendColor.A; int invA = 255 - a; int r = ((color.R * invA) + (blendColor.R * a)) / 256; int g = ((color.G * invA) + (blendColor.G * a)) / 256; int b = ((color.B * invA) + (blendColor.B * a)) / 256; byte a2 = ComputeAlpha(color.A, blendColor.A); return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, a2); } public BlendConstant(ColorBgra blendColor) { this.blendColor = blendColor; } } /// /// Used to set a given channel of a pixel to a given, predefined color. /// Useful if you want to set only the alpha value of a given region. /// [Serializable] public class SetChannel : UnaryPixelOp { private int channel; private byte setValue; public override ColorBgra Apply(ColorBgra color) { color[channel] = setValue; return color; } public override unsafe void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { *dst = *src; (*dst)[channel] = setValue; ++dst; ++src; --length; } } public override unsafe void Apply(ColorBgra* ptr, int length) { while (length > 0) { (*ptr)[channel] = setValue; ++ptr; --length; } } public SetChannel(int channel, byte setValue) { this.channel = channel; this.setValue = setValue; } } /// /// Specialization of SetChannel that sets the alpha channel. /// /// This class depends on the system being litte-endian with the alpha channel /// occupying the 8 most-significant-bits of a ColorBgra instance. /// By the way, we use addition instead of bitwise-OR because an addition can be /// perform very fast (0.5 cycles) on a Pentium 4. [Serializable] public class SetAlphaChannel : UnaryPixelOp { private UInt32 addValue; public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromUInt32((color.Bgra & 0x00ffffff) + addValue); } public override unsafe void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { dst->Bgra = (src->Bgra & 0x00ffffff) + addValue; ++dst; ++src; --length; } } public override unsafe void Apply(ColorBgra* ptr, int length) { while (length > 0) { ptr->Bgra = (ptr->Bgra & 0x00ffffff) + addValue; ++ptr; --length; } } public SetAlphaChannel(byte alphaValue) { addValue = (uint)alphaValue << 24; } } /// /// Specialization of SetAlphaChannel that always sets alpha to 255. /// [Serializable] public class SetAlphaChannelTo255 : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromUInt32(color.Bgra | 0xff000000); } public override unsafe void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { dst->Bgra = src->Bgra | 0xff000000; ++dst; ++src; --length; } } public override unsafe void Apply(ColorBgra* ptr, int length) { while (length > 0) { ptr->Bgra |= 0xff000000; ++ptr; --length; } } } /// /// Inverts a pixel's color, and passes through the alpha component. /// [Serializable] public class Invert : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromBgra((byte)(255 - color.B), (byte)(255 - color.G), (byte)(255 - color.R), color.A); } } /// /// If the color is within the red tolerance, remove it /// [Serializable] public class RedEyeRemove : UnaryPixelOp { private int tolerence; private double setSaturation; public RedEyeRemove(int tol, int sat) { tolerence = tol; setSaturation = (double)sat / 100; } public override ColorBgra Apply(ColorBgra color) { // The higher the saturation, the more red it is int saturation = GetSaturation(color); // The higher the difference between the other colors, the more red it is int difference = color.R - Math.Max(color.B,color.G); // If it is within tolerence, and the saturation is high if ((difference > tolerence) && (saturation > 100)) { double i = 255.0 * color.GetIntensity(); byte ib = (byte)(i * setSaturation); // adjust the red color for user inputted saturation return ColorBgra.FromBgra((byte)color.B,(byte)color.G, ib, color.A); } else { return color; } } //Saturation formula from RgbColor.cs, public HsvColor ToHsv() private int GetSaturation(ColorBgra color) { double min; double max; double delta; double r = (double) color.R / 255; double g = (double) color.G / 255; double b = (double) color.B / 255; double s; min = Math.Min(Math.Min(r, g), b); max = Math.Max(Math.Max(r, g), b); delta = max - min; if (max == 0 || delta == 0) { // R, G, and B must be 0, or all the same. // In this case, S is 0, and H is undefined. // Using H = 0 is as good as any... s = 0; } else { s = delta / max; } return (int)(s * 255); } } /// /// Inverts a pixel's color and its alpha component. /// [Serializable] public class InvertWithAlpha : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromBgra((byte)(255 - color.B), (byte)(255 - color.G), (byte)(255 - color.R), (byte)(255 - color.A)); } } /// /// Averages the input color's red, green, and blue channels. The alpha component /// is unaffected. /// [Serializable] public class AverageChannels : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { byte average = (byte)(((int)color.R + (int)color.G + (int)color.B) / 3); return ColorBgra.FromBgra(average, average, average, color.A); } } [Serializable] public class Desaturate : UnaryPixelOp { public override ColorBgra Apply(ColorBgra color) { byte i = color.GetIntensityByte(); return ColorBgra.FromBgra(i, i, i, color.A); } public unsafe override void Apply(ColorBgra* ptr, int length) { while (length > 0) { byte i = ptr->GetIntensityByte(); ptr->R = i; ptr->G = i; ptr->B = i; ++ptr; --length; } } public unsafe override void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { byte i = src->GetIntensityByte(); dst->B = i; dst->G = i; dst->R = i; dst->A = src->A; ++dst; ++src; --length; } } } [Serializable] public class LuminosityCurve : UnaryPixelOp { public byte[] Curve = new byte[256]; public LuminosityCurve() { for (int i = 0; i < 256; ++i) { Curve[i] = (byte)i; } } public override ColorBgra Apply(ColorBgra color) { byte lumi = color.GetIntensityByte(); int diff = Curve[lumi] - lumi; return ColorBgra.FromBgraClamped( color.B + diff, color.G + diff, color.R + diff, color.A); } } [Serializable] public class ChannelCurve : UnaryPixelOp { public byte[] CurveB = new byte[256]; public byte[] CurveG = new byte[256]; public byte[] CurveR = new byte[256]; public ChannelCurve() { for (int i = 0; i < 256; ++i) { CurveB[i] = (byte)i; CurveG[i] = (byte)i; CurveR[i] = (byte)i; } } public override unsafe void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (--length >= 0) { dst->B = CurveB[src->B]; dst->G = CurveG[src->G]; dst->R = CurveR[src->R]; dst->A = src->A; ++dst; ++src; } } public override unsafe void Apply(ColorBgra* ptr, int length) { while (--length >= 0) { ptr->B = CurveB[ptr->B]; ptr->G = CurveG[ptr->G]; ptr->R = CurveR[ptr->R]; ++ptr; } } public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromBgra(CurveB[color.B], CurveG[color.G], CurveR[color.R], color.A); } // public override void Apply(Surface dst, Point dstOffset, Surface src, Point srcOffset, int scanLength) // { // base.Apply (dst, dstOffset, src, srcOffset, scanLength); // } } [Serializable] public class Level : ChannelCurve, ICloneable { private ColorBgra colorInLow; public ColorBgra ColorInLow { get { return colorInLow; } set { if (value.R == 255) { value.R = 254; } if (value.G == 255) { value.G = 254; } if (value.B == 255) { value.B = 254; } if (colorInHigh.R < value.R + 1) { colorInHigh.R = (byte)(value.R + 1); } if (colorInHigh.G < value.G + 1) { colorInHigh.G = (byte)(value.R + 1); } if (colorInHigh.B < value.B + 1) { colorInHigh.B = (byte)(value.R + 1); } colorInLow = value; UpdateLookupTable(); } } private ColorBgra colorInHigh; public ColorBgra ColorInHigh { get { return colorInHigh; } set { if (value.R == 0) { value.R = 1; } if (value.G == 0) { value.G = 1; } if (value.B == 0) { value.B = 1; } if (colorInLow.R > value.R - 1) { colorInLow.R = (byte)(value.R - 1); } if (colorInLow.G > value.G - 1) { colorInLow.G = (byte)(value.R - 1); } if (colorInLow.B > value.B - 1) { colorInLow.B = (byte)(value.R - 1); } colorInHigh = value; UpdateLookupTable(); } } private ColorBgra colorOutLow; public ColorBgra ColorOutLow { get { return colorOutLow; } set { if (value.R == 255) { value.R = 254; } if (value.G == 255) { value.G = 254; } if (value.B == 255) { value.B = 254; } if (colorOutHigh.R < value.R + 1) { colorOutHigh.R = (byte)(value.R + 1); } if (colorOutHigh.G < value.G + 1) { colorOutHigh.G = (byte)(value.G + 1); } if (colorOutHigh.B < value.B + 1) { colorOutHigh.B = (byte)(value.B + 1); } colorOutLow = value; UpdateLookupTable(); } } private ColorBgra colorOutHigh; public ColorBgra ColorOutHigh { get { return colorOutHigh; } set { if (value.R == 0) { value.R = 1; } if (value.G == 0) { value.G = 1; } if (value.B == 0) { value.B = 1; } if (colorOutLow.R > value.R - 1) { colorOutLow.R = (byte)(value.R - 1); } if (colorOutLow.G > value.G - 1) { colorOutLow.G = (byte)(value.G - 1); } if (colorOutLow.B > value.B - 1) { colorOutLow.B = (byte)(value.B - 1); } colorOutHigh = value; UpdateLookupTable(); } } private float[] gamma = new float[3]; public float GetGamma(int index) { if (index < 0 || index >= 3) { throw new ArgumentOutOfRangeException("index", index, "Index must be between 0 and 2"); } return gamma[index]; } public void SetGamma(int index, float val) { if (index < 0 || index >= 3) { throw new ArgumentOutOfRangeException("index", index, "Index must be between 0 and 2"); } gamma[index] = Utility.Clamp(val, 0.1f, 10.0f); UpdateLookupTable(); } public bool isValid = true; public static Level AutoFromLoMdHi(ColorBgra lo, ColorBgra md, ColorBgra hi) { float[] gamma = new float[3]; for (int i = 0; i < 3; i++) { if (lo[i] < md[i] && md[i] < hi[i]) { gamma[i] = (float)Utility.Clamp(Math.Log(0.5, (float)(md[i] - lo[i]) / (float)(hi[i] - lo[i])), 0.1, 10.0); } else { gamma[i] = 1.0f; } } return new Level(lo, hi, gamma, ColorBgra.Black, ColorBgra.White); } private void UpdateLookupTable() { for (int i = 0; i < 3; i++) { if (colorOutHigh[i] < colorOutLow[i] || colorInHigh[i] <= colorInLow[i] || gamma[i] < 0) { isValid = false; return; } for (int j = 0; j < 256; j++) { ColorBgra col = Apply(j, j, j); CurveB[j] = col.B; CurveG[j] = col.G; CurveR[j] = col.R; } } } public Level() : this(ColorBgra.Black, ColorBgra.White, new float[] { 1, 1, 1 }, ColorBgra.Black, ColorBgra.White) { } public Level(ColorBgra in_lo, ColorBgra in_hi, float[] gamma, ColorBgra out_lo, ColorBgra out_hi) { colorInLow = in_lo; colorInHigh = in_hi; colorOutLow = out_lo; colorOutHigh = out_hi; if (gamma.Length != 3) { throw new ArgumentException("gamma", "gamma must be a float[3]"); } this.gamma = gamma; UpdateLookupTable(); } public ColorBgra Apply(float r, float g, float b) { ColorBgra ret = new ColorBgra(); float[] input = new float[] { b, g, r }; for (int i = 0; i < 3; i++) { float v = (input[i] - colorInLow[i]); if (v < 0) { ret[i] = colorOutLow[i]; } else if (v + colorInLow[i] >= colorInHigh[i]) { ret[i] = colorOutHigh[i]; } else { ret[i] = (byte)Utility.Clamp( colorOutLow[i] + (colorOutHigh[i] - colorOutLow[i]) * Math.Pow(v / (colorInHigh[i] - colorInLow[i]), gamma[i]), 0.0f, 255.0f); } } return ret; } public void UnApply(ColorBgra after, float[] beforeOut, float[] slopesOut) { if (beforeOut.Length != 3) { throw new ArgumentException("before must be a float[3]", "before"); } if (slopesOut.Length != 3) { throw new ArgumentException("slopes must be a float[3]", "slopes"); } for (int i = 0; i < 3; i++) { beforeOut[i] = colorInLow[i] + (colorInHigh[i] - colorInLow[i]) * (float)Math.Pow((float)(after[i] - colorOutLow[i]) / (colorOutHigh[i] - colorOutLow[i]), 1 / gamma[i]); slopesOut[i] = (float)(colorInHigh[i] - colorInLow[i]) / ((colorOutHigh[i] - colorOutLow[i]) * gamma[i]) * (float)Math.Pow((float)(after[i] - colorOutLow[i]) / (colorOutHigh[i] - colorOutLow[i]), 1 / gamma[i] - 1); if (float.IsInfinity(slopesOut[i]) || float.IsNaN(slopesOut[i])) { slopesOut[i] = 0; } } } public object Clone() { Level copy = new Level(colorInLow, colorInHigh, (float[])gamma.Clone(), colorOutLow, colorOutHigh); copy.CurveB = (byte[])this.CurveB.Clone(); copy.CurveG = (byte[])this.CurveG.Clone(); copy.CurveR = (byte[])this.CurveR.Clone(); return copy; } } [Serializable] public class HueSaturationLightness : UnaryPixelOp { private int hueDelta; private int satFactor; private UnaryPixelOp blendOp; public HueSaturationLightness(int hueDelta, int satDelta, int lightness) { this.hueDelta = hueDelta; this.satFactor = (satDelta * 1024) / 100; if (lightness == 0) { blendOp = new UnaryPixelOps.Identity(); } else if (lightness > 0) { blendOp = new UnaryPixelOps.BlendConstant(ColorBgra.FromBgra(255, 255, 255, (byte)((lightness * 255) / 100))); } else // if (lightness < 0) { blendOp = new UnaryPixelOps.BlendConstant(ColorBgra.FromBgra(0, 0, 0, (byte)((-lightness * 255) / 100))); } } public override ColorBgra Apply (ColorBgra color) { //adjust saturation byte intensity = color.GetIntensityByte(); color.R = Utility.ClampToByte((intensity * 1024 + (color.R - intensity) * satFactor) >> 10); color.G = Utility.ClampToByte((intensity * 1024 + (color.G - intensity) * satFactor) >> 10); color.B = Utility.ClampToByte((intensity * 1024 + (color.B - intensity) * satFactor) >> 10); HsvColor hsvColor = (new RgbColor(color.R, color.G, color.B)).ToHsv(); int hue = hsvColor.Hue; hue += hueDelta; while (hue < 0) { hue += 360; } while (hue > 360) { hue -= 360; } hsvColor.Hue = hue; RgbColor rgbColor=hsvColor.ToRgb(); ColorBgra newColor = ColorBgra.FromBgr((byte)rgbColor.Blue, (byte)rgbColor.Green, (byte)rgbColor.Red); newColor = blendOp.Apply(newColor); newColor.A = color.A; return newColor; } } [Serializable] public class PosterizePixel : UnaryPixelOp { private byte[] redLevels; private byte[] greenLevels; private byte[] blueLevels; public PosterizePixel(int red, int green, int blue) { this.redLevels = CalcLevels(red); this.greenLevels = CalcLevels(green); this.blueLevels = CalcLevels(blue); } private static byte[] CalcLevels(int levelCount) { byte[] t1 = new byte[levelCount]; for (int i = 1; i < levelCount; i++) { t1[i] = (byte)((255 * i) / (levelCount - 1)); } byte[] levels = new byte[256]; int j = 0; int k = 0; for (int i = 0; i < 256; i++) { levels[i] = t1[j]; k += levelCount; if (k > 255) { k -= 255; j++; } } return levels; } public override ColorBgra Apply(ColorBgra color) { return ColorBgra.FromBgra(blueLevels[color.B], greenLevels[color.G], redLevels[color.R], color.A); } public unsafe override void Apply(ColorBgra* ptr, int length) { while (length > 0) { ptr->B = this.blueLevels[ptr->B]; ptr->G = this.greenLevels[ptr->G]; ptr->R = this.redLevels[ptr->R]; ++ptr; --length; } } public unsafe override void Apply(ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { dst->B = this.blueLevels[src->B]; dst->G = this.greenLevels[src->G]; dst->R = this.redLevels[src->R]; dst->A = src->A; ++dst; ++src; --length; } } } } } pinta-1.3/Pinta.Core/Effects/UserBlendOp.cs0000664000175000017500000000233011747026475021671 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Core { /// /// Abstract base class that all "user" blend ops derive from. /// These ops are available in the UI for a user to choose from /// in order to configure the blending properties of a Layer. /// /// See UserBlendOps.cs for guidelines on implementation. /// [Serializable] public abstract class UserBlendOp : BinaryPixelOp { public virtual UserBlendOp CreateWithOpacity (int opacity) { return this; } public override string ToString () { return Utility.GetStaticName (this.GetType ()); } } } pinta-1.3/Pinta.Core/Effects/UserBlendOps.Generated.cs0000664000175000017500000050050411747026475023757 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; // The generalized alpha compositing formula, "B OVER A" is: // C(A,a,B,b) = bB + aA - baA // where: // A = background color value // a = background alpha value // B = foreground color value // b = foreground alpha value // // However, we need a general formula for composition based on any type of // blend operation and not just for 'normal' blending. We want multiplicative, // additive, etc. blend operations. // // The generalized alpha compositing formula w.r.t. a replaceable blending // function is: // // G(A,a,B,b,F) = (a - ab)A + (b - ab)B + abF(A, B) // // Where F is a function of A and B, or F(A,B), that results in another color // value. For A OVER B blending, we simply use F(A,B) = B. It can be easily // shown that the two formulas simplify to the same expression when this F is // used. // // G can be generalized even further to take a function for the other input // values. This can be useful if one wishes to implement something like // (1 - B) OVER A blending. // // In this reality, F(A,B) is really F(A,B,r). The syntax "r = F(A,B)" is // the same as "F(A,B,r)" where r is essentially an 'out' parameter. // Multiplies a and b, which are [0,255] as if they were scaled to [0,1], and returns the result in r // a and b are evaluated once. r is evaluated multiple times. // F(A,B) = blending function for the pixel values // h(a) = function for loading lhs.A, usually just ID // j(a) = function for loading rhs.A, usually just ID // n DIV d //{ r = (((B) == 0) ? 0 : Math.Max(0, (255 - (((255 - (A)) * 255) / (B))))); } // { r = ((B) == 255 ? 255 : Math.Min(255, ((A) * 255) / (255 - (B)))); } // r = { (((B) == 255) ? 255 : Math.Min(255, ((A) * (A)) / (255 - (B)))); } //{ r = ((B) + (A) - (((B) * (A)) / 255)); } namespace Pinta.Core { partial class UserBlendOps { // i = z * 3; // (x / z) = ((x * masTable[i]) + masTable[i + 1]) >> masTable[i + 2) private static readonly uint[] masTable = { 0x00000000, 0x00000000, 0, // 0 0x00000001, 0x00000000, 0, // 1 0x00000001, 0x00000000, 1, // 2 0xAAAAAAAB, 0x00000000, 33, // 3 0x00000001, 0x00000000, 2, // 4 0xCCCCCCCD, 0x00000000, 34, // 5 0xAAAAAAAB, 0x00000000, 34, // 6 0x49249249, 0x49249249, 33, // 7 0x00000001, 0x00000000, 3, // 8 0x38E38E39, 0x00000000, 33, // 9 0xCCCCCCCD, 0x00000000, 35, // 10 0xBA2E8BA3, 0x00000000, 35, // 11 0xAAAAAAAB, 0x00000000, 35, // 12 0x4EC4EC4F, 0x00000000, 34, // 13 0x49249249, 0x49249249, 34, // 14 0x88888889, 0x00000000, 35, // 15 0x00000001, 0x00000000, 4, // 16 0xF0F0F0F1, 0x00000000, 36, // 17 0x38E38E39, 0x00000000, 34, // 18 0xD79435E5, 0xD79435E5, 36, // 19 0xCCCCCCCD, 0x00000000, 36, // 20 0xC30C30C3, 0xC30C30C3, 36, // 21 0xBA2E8BA3, 0x00000000, 36, // 22 0xB21642C9, 0x00000000, 36, // 23 0xAAAAAAAB, 0x00000000, 36, // 24 0x51EB851F, 0x00000000, 35, // 25 0x4EC4EC4F, 0x00000000, 35, // 26 0x97B425ED, 0x97B425ED, 36, // 27 0x49249249, 0x49249249, 35, // 28 0x8D3DCB09, 0x00000000, 36, // 29 0x88888889, 0x00000000, 36, // 30 0x42108421, 0x42108421, 35, // 31 0x00000001, 0x00000000, 5, // 32 0x3E0F83E1, 0x00000000, 35, // 33 0xF0F0F0F1, 0x00000000, 37, // 34 0x75075075, 0x75075075, 36, // 35 0x38E38E39, 0x00000000, 35, // 36 0x6EB3E453, 0x6EB3E453, 36, // 37 0xD79435E5, 0xD79435E5, 37, // 38 0x69069069, 0x69069069, 36, // 39 0xCCCCCCCD, 0x00000000, 37, // 40 0xC7CE0C7D, 0x00000000, 37, // 41 0xC30C30C3, 0xC30C30C3, 37, // 42 0x2FA0BE83, 0x00000000, 35, // 43 0xBA2E8BA3, 0x00000000, 37, // 44 0x5B05B05B, 0x5B05B05B, 36, // 45 0xB21642C9, 0x00000000, 37, // 46 0xAE4C415D, 0x00000000, 37, // 47 0xAAAAAAAB, 0x00000000, 37, // 48 0x5397829D, 0x00000000, 36, // 49 0x51EB851F, 0x00000000, 36, // 50 0xA0A0A0A1, 0x00000000, 37, // 51 0x4EC4EC4F, 0x00000000, 36, // 52 0x9A90E7D9, 0x9A90E7D9, 37, // 53 0x97B425ED, 0x97B425ED, 37, // 54 0x94F2094F, 0x94F2094F, 37, // 55 0x49249249, 0x49249249, 36, // 56 0x47DC11F7, 0x47DC11F7, 36, // 57 0x8D3DCB09, 0x00000000, 37, // 58 0x22B63CBF, 0x00000000, 35, // 59 0x88888889, 0x00000000, 37, // 60 0x4325C53F, 0x00000000, 36, // 61 0x42108421, 0x42108421, 36, // 62 0x41041041, 0x41041041, 36, // 63 0x00000001, 0x00000000, 6, // 64 0xFC0FC0FD, 0x00000000, 38, // 65 0x3E0F83E1, 0x00000000, 36, // 66 0x07A44C6B, 0x00000000, 33, // 67 0xF0F0F0F1, 0x00000000, 38, // 68 0x76B981DB, 0x00000000, 37, // 69 0x75075075, 0x75075075, 37, // 70 0xE6C2B449, 0x00000000, 38, // 71 0x38E38E39, 0x00000000, 36, // 72 0x381C0E07, 0x381C0E07, 36, // 73 0x6EB3E453, 0x6EB3E453, 37, // 74 0x1B4E81B5, 0x00000000, 35, // 75 0xD79435E5, 0xD79435E5, 38, // 76 0x3531DEC1, 0x00000000, 36, // 77 0x69069069, 0x69069069, 37, // 78 0xCF6474A9, 0x00000000, 38, // 79 0xCCCCCCCD, 0x00000000, 38, // 80 0xCA4587E7, 0x00000000, 38, // 81 0xC7CE0C7D, 0x00000000, 38, // 82 0x3159721F, 0x00000000, 36, // 83 0xC30C30C3, 0xC30C30C3, 38, // 84 0xC0C0C0C1, 0x00000000, 38, // 85 0x2FA0BE83, 0x00000000, 36, // 86 0x2F149903, 0x00000000, 36, // 87 0xBA2E8BA3, 0x00000000, 38, // 88 0xB81702E1, 0x00000000, 38, // 89 0x5B05B05B, 0x5B05B05B, 37, // 90 0x2D02D02D, 0x2D02D02D, 36, // 91 0xB21642C9, 0x00000000, 38, // 92 0xB02C0B03, 0x00000000, 38, // 93 0xAE4C415D, 0x00000000, 38, // 94 0x2B1DA461, 0x2B1DA461, 36, // 95 0xAAAAAAAB, 0x00000000, 38, // 96 0xA8E83F57, 0xA8E83F57, 38, // 97 0x5397829D, 0x00000000, 37, // 98 0xA57EB503, 0x00000000, 38, // 99 0x51EB851F, 0x00000000, 37, // 100 0xA237C32B, 0xA237C32B, 38, // 101 0xA0A0A0A1, 0x00000000, 38, // 102 0x9F1165E7, 0x9F1165E7, 38, // 103 0x4EC4EC4F, 0x00000000, 37, // 104 0x27027027, 0x27027027, 36, // 105 0x9A90E7D9, 0x9A90E7D9, 38, // 106 0x991F1A51, 0x991F1A51, 38, // 107 0x97B425ED, 0x97B425ED, 38, // 108 0x2593F69B, 0x2593F69B, 36, // 109 0x94F2094F, 0x94F2094F, 38, // 110 0x24E6A171, 0x24E6A171, 36, // 111 0x49249249, 0x49249249, 37, // 112 0x90FDBC09, 0x90FDBC09, 38, // 113 0x47DC11F7, 0x47DC11F7, 37, // 114 0x8E78356D, 0x8E78356D, 38, // 115 0x8D3DCB09, 0x00000000, 38, // 116 0x23023023, 0x23023023, 36, // 117 0x22B63CBF, 0x00000000, 36, // 118 0x44D72045, 0x00000000, 37, // 119 0x88888889, 0x00000000, 38, // 120 0x8767AB5F, 0x8767AB5F, 38, // 121 0x4325C53F, 0x00000000, 37, // 122 0x85340853, 0x85340853, 38, // 123 0x42108421, 0x42108421, 37, // 124 0x10624DD3, 0x00000000, 35, // 125 0x41041041, 0x41041041, 37, // 126 0x10204081, 0x10204081, 35, // 127 0x00000001, 0x00000000, 7, // 128 0x0FE03F81, 0x00000000, 35, // 129 0xFC0FC0FD, 0x00000000, 39, // 130 0xFA232CF3, 0x00000000, 39, // 131 0x3E0F83E1, 0x00000000, 37, // 132 0xF6603D99, 0x00000000, 39, // 133 0x07A44C6B, 0x00000000, 34, // 134 0xF2B9D649, 0x00000000, 39, // 135 0xF0F0F0F1, 0x00000000, 39, // 136 0x077975B9, 0x00000000, 34, // 137 0x76B981DB, 0x00000000, 38, // 138 0x75DED953, 0x00000000, 38, // 139 0x75075075, 0x75075075, 38, // 140 0x3A196B1F, 0x00000000, 37, // 141 0xE6C2B449, 0x00000000, 39, // 142 0xE525982B, 0x00000000, 39, // 143 0x38E38E39, 0x00000000, 37, // 144 0xE1FC780F, 0x00000000, 39, // 145 0x381C0E07, 0x381C0E07, 37, // 146 0xDEE95C4D, 0x00000000, 39, // 147 0x6EB3E453, 0x6EB3E453, 38, // 148 0xDBEB61EF, 0x00000000, 39, // 149 0x1B4E81B5, 0x00000000, 36, // 150 0x36406C81, 0x00000000, 37, // 151 0xD79435E5, 0xD79435E5, 39, // 152 0xD62B80D7, 0x00000000, 39, // 153 0x3531DEC1, 0x00000000, 37, // 154 0xD3680D37, 0x00000000, 39, // 155 0x69069069, 0x69069069, 38, // 156 0x342DA7F3, 0x00000000, 37, // 157 0xCF6474A9, 0x00000000, 39, // 158 0xCE168A77, 0xCE168A77, 39, // 159 0xCCCCCCCD, 0x00000000, 39, // 160 0xCB8727C1, 0x00000000, 39, // 161 0xCA4587E7, 0x00000000, 39, // 162 0xC907DA4F, 0x00000000, 39, // 163 0xC7CE0C7D, 0x00000000, 39, // 164 0x634C0635, 0x00000000, 38, // 165 0x3159721F, 0x00000000, 37, // 166 0x621B97C3, 0x00000000, 38, // 167 0xC30C30C3, 0xC30C30C3, 39, // 168 0x60F25DEB, 0x00000000, 38, // 169 0xC0C0C0C1, 0x00000000, 39, // 170 0x17F405FD, 0x17F405FD, 36, // 171 0x2FA0BE83, 0x00000000, 37, // 172 0xBD691047, 0xBD691047, 39, // 173 0x2F149903, 0x00000000, 37, // 174 0x5D9F7391, 0x00000000, 38, // 175 0xBA2E8BA3, 0x00000000, 39, // 176 0x5C90A1FD, 0x5C90A1FD, 38, // 177 0xB81702E1, 0x00000000, 39, // 178 0x5B87DDAD, 0x5B87DDAD, 38, // 179 0x5B05B05B, 0x5B05B05B, 38, // 180 0xB509E68B, 0x00000000, 39, // 181 0x2D02D02D, 0x2D02D02D, 37, // 182 0xB30F6353, 0x00000000, 39, // 183 0xB21642C9, 0x00000000, 39, // 184 0x1623FA77, 0x1623FA77, 36, // 185 0xB02C0B03, 0x00000000, 39, // 186 0xAF3ADDC7, 0x00000000, 39, // 187 0xAE4C415D, 0x00000000, 39, // 188 0x15AC056B, 0x15AC056B, 36, // 189 0x2B1DA461, 0x2B1DA461, 37, // 190 0xAB8F69E3, 0x00000000, 39, // 191 0xAAAAAAAB, 0x00000000, 39, // 192 0x15390949, 0x00000000, 36, // 193 0xA8E83F57, 0xA8E83F57, 39, // 194 0x15015015, 0x15015015, 36, // 195 0x5397829D, 0x00000000, 38, // 196 0xA655C439, 0xA655C439, 39, // 197 0xA57EB503, 0x00000000, 39, // 198 0x5254E78F, 0x00000000, 38, // 199 0x51EB851F, 0x00000000, 38, // 200 0x028C1979, 0x00000000, 33, // 201 0xA237C32B, 0xA237C32B, 39, // 202 0xA16B312F, 0x00000000, 39, // 203 0xA0A0A0A1, 0x00000000, 39, // 204 0x4FEC04FF, 0x00000000, 38, // 205 0x9F1165E7, 0x9F1165E7, 39, // 206 0x27932B49, 0x00000000, 37, // 207 0x4EC4EC4F, 0x00000000, 38, // 208 0x9CC8E161, 0x00000000, 39, // 209 0x27027027, 0x27027027, 37, // 210 0x9B4C6F9F, 0x00000000, 39, // 211 0x9A90E7D9, 0x9A90E7D9, 39, // 212 0x99D722DB, 0x00000000, 39, // 213 0x991F1A51, 0x991F1A51, 39, // 214 0x4C346405, 0x00000000, 38, // 215 0x97B425ED, 0x97B425ED, 39, // 216 0x4B809701, 0x4B809701, 38, // 217 0x2593F69B, 0x2593F69B, 37, // 218 0x12B404AD, 0x12B404AD, 36, // 219 0x94F2094F, 0x94F2094F, 39, // 220 0x25116025, 0x25116025, 37, // 221 0x24E6A171, 0x24E6A171, 37, // 222 0x24BC44E1, 0x24BC44E1, 37, // 223 0x49249249, 0x49249249, 38, // 224 0x91A2B3C5, 0x00000000, 39, // 225 0x90FDBC09, 0x90FDBC09, 39, // 226 0x905A3863, 0x905A3863, 39, // 227 0x47DC11F7, 0x47DC11F7, 38, // 228 0x478BBCED, 0x00000000, 38, // 229 0x8E78356D, 0x8E78356D, 39, // 230 0x46ED2901, 0x46ED2901, 38, // 231 0x8D3DCB09, 0x00000000, 39, // 232 0x2328A701, 0x2328A701, 37, // 233 0x23023023, 0x23023023, 37, // 234 0x45B81A25, 0x45B81A25, 38, // 235 0x22B63CBF, 0x00000000, 37, // 236 0x08A42F87, 0x08A42F87, 35, // 237 0x44D72045, 0x00000000, 38, // 238 0x891AC73B, 0x00000000, 39, // 239 0x88888889, 0x00000000, 39, // 240 0x10FEF011, 0x00000000, 36, // 241 0x8767AB5F, 0x8767AB5F, 39, // 242 0x86D90545, 0x00000000, 39, // 243 0x4325C53F, 0x00000000, 38, // 244 0x85BF3761, 0x85BF3761, 39, // 245 0x85340853, 0x85340853, 39, // 246 0x10953F39, 0x10953F39, 36, // 247 0x42108421, 0x42108421, 38, // 248 0x41CC9829, 0x41CC9829, 38, // 249 0x10624DD3, 0x00000000, 36, // 250 0x828CBFBF, 0x00000000, 39, // 251 0x41041041, 0x41041041, 38, // 252 0x81848DA9, 0x00000000, 39, // 253 0x10204081, 0x10204081, 36, // 254 0x80808081, 0x00000000, 39 // 255 }; [Serializable] public sealed class NormalBlendOp : UserBlendOp { public static string StaticName { get { return "Normal"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((rhs).B); }; { fG = ((rhs).G); }; { fR = ((rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((*src).B); }; { fG = ((*src).G); }; { fR = ((*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((*rhs).B); }; { fG = ((*rhs).G); }; { fR = ((*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((rhs).B); }; { fG = ((rhs).G); }; { fR = ((rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new NormalBlendOpWithOpacity (opacity); } private sealed class NormalBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "Normal"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((rhs).B); }; { fG = ((rhs).G); }; { fR = ((rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((*src).B); }; { fG = ((*src).G); }; { fR = ((*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = ((*rhs).B); }; { fG = ((*rhs).G); }; { fR = ((*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public NormalBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class MultiplyBlendOp : UserBlendOp { public static string StaticName { get { return "Multiply"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*dst).B)) * (((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((*dst).G)) * (((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((*dst).R)) * (((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*lhs).B)) * (((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((*lhs).G)) * (((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((*lhs).R)) * (((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new MultiplyBlendOpWithOpacity (opacity); } private sealed class MultiplyBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Multiply" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*dst).B)) * (((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((*dst).G)) * (((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((*dst).R)) * (((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*lhs).B)) * (((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; }; { { fG = ((((*lhs).G)) * (((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; }; { { fR = ((((*lhs).R)) * (((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public MultiplyBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class AdditiveBlendOp : UserBlendOp { public static string StaticName { get { return "Additive"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((lhs).B) + ((rhs).B)); }; { fG = Math.Min (255, ((lhs).G) + ((rhs).G)); }; { fR = Math.Min (255, ((lhs).R) + ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((*dst).B) + ((*src).B)); }; { fG = Math.Min (255, ((*dst).G) + ((*src).G)); }; { fR = Math.Min (255, ((*dst).R) + ((*src).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((*lhs).B) + ((*rhs).B)); }; { fG = Math.Min (255, ((*lhs).G) + ((*rhs).G)); }; { fR = Math.Min (255, ((*lhs).R) + ((*rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((lhs).B) + ((rhs).B)); }; { fG = Math.Min (255, ((lhs).G) + ((rhs).G)); }; { fR = Math.Min (255, ((lhs).R) + ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new AdditiveBlendOpWithOpacity (opacity); } private sealed class AdditiveBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Additive" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((lhs).B) + ((rhs).B)); }; { fG = Math.Min (255, ((lhs).G) + ((rhs).G)); }; { fR = Math.Min (255, ((lhs).R) + ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((*dst).B) + ((*src).B)); }; { fG = Math.Min (255, ((*dst).G) + ((*src).G)); }; { fR = Math.Min (255, ((*dst).R) + ((*src).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min (255, ((*lhs).B) + ((*rhs).B)); }; { fG = Math.Min (255, ((*lhs).G) + ((*rhs).G)); }; { fR = Math.Min (255, ((*lhs).R) + ((*rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public AdditiveBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class ColorBurnBlendOp : UserBlendOp { public static string StaticName { get { return "ColorBurn"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 0) { fB = 0; } else { { int i = (((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((lhs).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((rhs).G) == 0) { fG = 0; } else { { int i = (((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((lhs).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((rhs).R) == 0) { fR = 0; } else { { int i = (((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((lhs).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 0) { fB = 0; } else { { int i = (((*src).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((*dst).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((*src).G) == 0) { fG = 0; } else { { int i = (((*src).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((*dst).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((*src).R) == 0) { fR = 0; } else { { int i = (((*src).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((*dst).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 0) { fB = 0; } else { { int i = (((*rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((*lhs).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((*rhs).G) == 0) { fG = 0; } else { { int i = (((*rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((*lhs).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((*rhs).R) == 0) { fR = 0; } else { { int i = (((*rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((*lhs).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 0) { fB = 0; } else { { int i = (((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((lhs).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((rhs).G) == 0) { fG = 0; } else { { int i = (((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((lhs).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((rhs).R) == 0) { fR = 0; } else { { int i = (((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((lhs).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new ColorBurnBlendOpWithOpacity (opacity); } private sealed class ColorBurnBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "ColorBurn" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 0) { fB = 0; } else { { int i = (((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((lhs).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((rhs).G) == 0) { fG = 0; } else { { int i = (((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((lhs).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((rhs).R) == 0) { fR = 0; } else { { int i = (((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((lhs).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 0) { fB = 0; } else { { int i = (((*src).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((*dst).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((*src).G) == 0) { fG = 0; } else { { int i = (((*src).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((*dst).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((*src).R) == 0) { fR = 0; } else { { int i = (((*src).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((*dst).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 0) { fB = 0; } else { { int i = (((*rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((255 - ((*lhs).B)) * 255) * M) + A) >> (int)S); }; fB = 255 - fB; fB = Math.Max (0, fB); } }; { if (((*rhs).G) == 0) { fG = 0; } else { { int i = (((*rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((255 - ((*lhs).G)) * 255) * M) + A) >> (int)S); }; fG = 255 - fG; fG = Math.Max (0, fG); } }; { if (((*rhs).R) == 0) { fR = 0; } else { { int i = (((*rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((255 - ((*lhs).R)) * 255) * M) + A) >> (int)S); }; fR = 255 - fR; fR = Math.Max (0, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public ColorBurnBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class ColorDodgeBlendOp : UserBlendOp { public static string StaticName { get { return "ColorDodge"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = ((255 - ((rhs).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((lhs).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = ((255 - ((rhs).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((lhs).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = ((255 - ((rhs).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((lhs).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 255) { fB = 255; } else { { int i = ((255 - ((*src).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((*dst).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*src).G) == 255) { fG = 255; } else { { int i = ((255 - ((*src).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((*dst).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*src).R) == 255) { fR = 255; } else { { int i = ((255 - ((*src).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((*dst).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 255) { fB = 255; } else { { int i = ((255 - ((*rhs).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((*lhs).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*rhs).G) == 255) { fG = 255; } else { { int i = ((255 - ((*rhs).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((*lhs).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*rhs).R) == 255) { fR = 255; } else { { int i = ((255 - ((*rhs).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((*lhs).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = ((255 - ((rhs).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((lhs).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = ((255 - ((rhs).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((lhs).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = ((255 - ((rhs).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((lhs).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new ColorDodgeBlendOpWithOpacity (opacity); } private sealed class ColorDodgeBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "ColorDodge" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = ((255 - ((rhs).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((lhs).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = ((255 - ((rhs).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((lhs).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = ((255 - ((rhs).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((lhs).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 255) { fB = 255; } else { { int i = ((255 - ((*src).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((*dst).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*src).G) == 255) { fG = 255; } else { { int i = ((255 - ((*src).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((*dst).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*src).R) == 255) { fR = 255; } else { { int i = ((255 - ((*src).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((*dst).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 255) { fB = 255; } else { { int i = ((255 - ((*rhs).B))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)((((((*lhs).B) * 255) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*rhs).G) == 255) { fG = 255; } else { { int i = ((255 - ((*rhs).G))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)((((((*lhs).G) * 255) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*rhs).R) == 255) { fR = 255; } else { { int i = ((255 - ((*rhs).R))) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)((((((*lhs).R) * 255) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public ColorDodgeBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class ReflectBlendOp : UserBlendOp { public static string StaticName { get { return "Reflect"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = (255 - ((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((lhs).B) * ((lhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = (255 - ((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((lhs).G) * ((lhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = (255 - ((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((lhs).R) * ((lhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 255) { fB = 255; } else { { int i = (255 - ((*src).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*dst).B) * ((*dst).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*src).G) == 255) { fG = 255; } else { { int i = (255 - ((*src).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*dst).G) * ((*dst).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*src).R) == 255) { fR = 255; } else { { int i = (255 - ((*src).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*dst).R) * ((*dst).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 255) { fB = 255; } else { { int i = (255 - ((*rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*lhs).B) * ((*lhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*rhs).G) == 255) { fG = 255; } else { { int i = (255 - ((*rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*lhs).G) * ((*lhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*rhs).R) == 255) { fR = 255; } else { { int i = (255 - ((*rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*lhs).R) * ((*lhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = (255 - ((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((lhs).B) * ((lhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = (255 - ((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((lhs).G) * ((lhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = (255 - ((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((lhs).R) * ((lhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new ReflectBlendOpWithOpacity (opacity); } private sealed class ReflectBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Reflect" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((rhs).B) == 255) { fB = 255; } else { { int i = (255 - ((rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((lhs).B) * ((lhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((rhs).G) == 255) { fG = 255; } else { { int i = (255 - ((rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((lhs).G) * ((lhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((rhs).R) == 255) { fR = 255; } else { { int i = (255 - ((rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((lhs).R) * ((lhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*src).B) == 255) { fB = 255; } else { { int i = (255 - ((*src).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*dst).B) * ((*dst).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*src).G) == 255) { fG = 255; } else { { int i = (255 - ((*src).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*dst).G) * ((*dst).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*src).R) == 255) { fR = 255; } else { { int i = (255 - ((*src).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*dst).R) * ((*dst).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*rhs).B) == 255) { fB = 255; } else { { int i = (255 - ((*rhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*lhs).B) * ((*lhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*rhs).G) == 255) { fG = 255; } else { { int i = (255 - ((*rhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*lhs).G) * ((*lhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*rhs).R) == 255) { fR = 255; } else { { int i = (255 - ((*rhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*lhs).R) * ((*lhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public ReflectBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class GlowBlendOp : UserBlendOp { public static string StaticName { get { return "Glow"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) == 255) { fB = 255; } else { { int i = (255 - ((lhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((rhs).B) * ((rhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((lhs).G) == 255) { fG = 255; } else { { int i = (255 - ((lhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((rhs).G) * ((rhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((lhs).R) == 255) { fR = 255; } else { { int i = (255 - ((lhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((rhs).R) * ((rhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*dst).B) == 255) { fB = 255; } else { { int i = (255 - ((*dst).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*src).B) * ((*src).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*dst).G) == 255) { fG = 255; } else { { int i = (255 - ((*dst).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*src).G) * ((*src).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*dst).R) == 255) { fR = 255; } else { { int i = (255 - ((*dst).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*src).R) * ((*src).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*lhs).B) == 255) { fB = 255; } else { { int i = (255 - ((*lhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*rhs).B) * ((*rhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*lhs).G) == 255) { fG = 255; } else { { int i = (255 - ((*lhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*rhs).G) * ((*rhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*lhs).R) == 255) { fR = 255; } else { { int i = (255 - ((*lhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*rhs).R) * ((*rhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) == 255) { fB = 255; } else { { int i = (255 - ((lhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((rhs).B) * ((rhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((lhs).G) == 255) { fG = 255; } else { { int i = (255 - ((lhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((rhs).G) * ((rhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((lhs).R) == 255) { fR = 255; } else { { int i = (255 - ((lhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((rhs).R) * ((rhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new GlowBlendOpWithOpacity (opacity); } private sealed class GlowBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Glow" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) == 255) { fB = 255; } else { { int i = (255 - ((lhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((rhs).B) * ((rhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((lhs).G) == 255) { fG = 255; } else { { int i = (255 - ((lhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((rhs).G) * ((rhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((lhs).R) == 255) { fR = 255; } else { { int i = (255 - ((lhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((rhs).R) * ((rhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*dst).B) == 255) { fB = 255; } else { { int i = (255 - ((*dst).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*src).B) * ((*src).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*dst).G) == 255) { fG = 255; } else { { int i = (255 - ((*dst).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*src).G) * ((*src).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*dst).R) == 255) { fR = 255; } else { { int i = (255 - ((*dst).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*src).R) * ((*src).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*lhs).B) == 255) { fB = 255; } else { { int i = (255 - ((*lhs).B)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fB = (int)(((((*rhs).B) * ((*rhs).B) * M) + A) >> (int)S); }; fB = Math.Min (255, fB); } }; { if (((*lhs).G) == 255) { fG = 255; } else { { int i = (255 - ((*lhs).G)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fG = (int)(((((*rhs).G) * ((*rhs).G) * M) + A) >> (int)S); }; fG = Math.Min (255, fG); } }; { if (((*lhs).R) == 255) { fR = 255; } else { { int i = (255 - ((*lhs).R)) * 3; uint M = masTable[i]; uint A = masTable[i + 1]; uint S = masTable[i + 2]; fR = (int)(((((*rhs).R) * ((*rhs).R) * M) + A) >> (int)S); }; fR = Math.Min (255, fR); } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public GlowBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class OverlayBlendOp : UserBlendOp { public static string StaticName { get { return "Overlay"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) < 128) { { fB = ((2 * ((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((lhs).B))) * (255 - ((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((lhs).G) < 128) { { fG = ((2 * ((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((lhs).G))) * (255 - ((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((lhs).R) < 128) { { fR = ((2 * ((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((lhs).R))) * (255 - ((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*dst).B) < 128) { { fB = ((2 * ((*dst).B)) * (((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((*dst).B))) * (255 - ((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((*dst).G) < 128) { { fG = ((2 * ((*dst).G)) * (((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((*dst).G))) * (255 - ((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((*dst).R) < 128) { { fR = ((2 * ((*dst).R)) * (((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((*dst).R))) * (255 - ((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*lhs).B) < 128) { { fB = ((2 * ((*lhs).B)) * (((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((*lhs).B))) * (255 - ((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((*lhs).G) < 128) { { fG = ((2 * ((*lhs).G)) * (((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((*lhs).G))) * (255 - ((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((*lhs).R) < 128) { { fR = ((2 * ((*lhs).R)) * (((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((*lhs).R))) * (255 - ((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) < 128) { { fB = ((2 * ((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((lhs).B))) * (255 - ((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((lhs).G) < 128) { { fG = ((2 * ((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((lhs).G))) * (255 - ((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((lhs).R) < 128) { { fR = ((2 * ((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((lhs).R))) * (255 - ((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new OverlayBlendOpWithOpacity (opacity); } private sealed class OverlayBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Overlay" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((lhs).B) < 128) { { fB = ((2 * ((lhs).B)) * (((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((lhs).B))) * (255 - ((rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((lhs).G) < 128) { { fG = ((2 * ((lhs).G)) * (((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((lhs).G))) * (255 - ((rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((lhs).R) < 128) { { fR = ((2 * ((lhs).R)) * (((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((lhs).R))) * (255 - ((rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*dst).B) < 128) { { fB = ((2 * ((*dst).B)) * (((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((*dst).B))) * (255 - ((*src).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((*dst).G) < 128) { { fG = ((2 * ((*dst).G)) * (((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((*dst).G))) * (255 - ((*src).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((*dst).R) < 128) { { fR = ((2 * ((*dst).R)) * (((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((*dst).R))) * (255 - ((*src).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { if (((*lhs).B) < 128) { { fB = ((2 * ((*lhs).B)) * (((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; } else { { fB = ((2 * (255 - ((*lhs).B))) * (255 - ((*rhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = 255 - fB; } }; { if (((*lhs).G) < 128) { { fG = ((2 * ((*lhs).G)) * (((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; } else { { fG = ((2 * (255 - ((*lhs).G))) * (255 - ((*rhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = 255 - fG; } }; { if (((*lhs).R) < 128) { { fR = ((2 * ((*lhs).R)) * (((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; } else { { fR = ((2 * (255 - ((*lhs).R))) * (255 - ((*rhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = 255 - fR; } }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public OverlayBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class DifferenceBlendOp : UserBlendOp { public static string StaticName { get { return "Difference"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((rhs).B) - ((lhs).B)); }; { fG = Math.Abs (((rhs).G) - ((lhs).G)); }; { fR = Math.Abs (((rhs).R) - ((lhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((*src).B) - ((*dst).B)); }; { fG = Math.Abs (((*src).G) - ((*dst).G)); }; { fR = Math.Abs (((*src).R) - ((*dst).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((*rhs).B) - ((*lhs).B)); }; { fG = Math.Abs (((*rhs).G) - ((*lhs).G)); }; { fR = Math.Abs (((*rhs).R) - ((*lhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((rhs).B) - ((lhs).B)); }; { fG = Math.Abs (((rhs).G) - ((lhs).G)); }; { fR = Math.Abs (((rhs).R) - ((lhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new DifferenceBlendOpWithOpacity (opacity); } private sealed class DifferenceBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Difference" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((rhs).B) - ((lhs).B)); }; { fG = Math.Abs (((rhs).G) - ((lhs).G)); }; { fR = Math.Abs (((rhs).R) - ((lhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((*src).B) - ((*dst).B)); }; { fG = Math.Abs (((*src).G) - ((*dst).G)); }; { fR = Math.Abs (((*src).R) - ((*dst).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Abs (((*rhs).B) - ((*lhs).B)); }; { fG = Math.Abs (((*rhs).G) - ((*lhs).G)); }; { fR = Math.Abs (((*rhs).R) - ((*lhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public DifferenceBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class NegationBlendOp : UserBlendOp { public static string StaticName { get { return "Negation"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((lhs).B) - ((rhs).B))); }; { fG = (255 - Math.Abs (255 - ((lhs).G) - ((rhs).G))); }; { fR = (255 - Math.Abs (255 - ((lhs).R) - ((rhs).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((*dst).B) - ((*src).B))); }; { fG = (255 - Math.Abs (255 - ((*dst).G) - ((*src).G))); }; { fR = (255 - Math.Abs (255 - ((*dst).R) - ((*src).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((*lhs).B) - ((*rhs).B))); }; { fG = (255 - Math.Abs (255 - ((*lhs).G) - ((*rhs).G))); }; { fR = (255 - Math.Abs (255 - ((*lhs).R) - ((*rhs).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((lhs).B) - ((rhs).B))); }; { fG = (255 - Math.Abs (255 - ((lhs).G) - ((rhs).G))); }; { fR = (255 - Math.Abs (255 - ((lhs).R) - ((rhs).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new NegationBlendOpWithOpacity (opacity); } private sealed class NegationBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Negation" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((lhs).B) - ((rhs).B))); }; { fG = (255 - Math.Abs (255 - ((lhs).G) - ((rhs).G))); }; { fR = (255 - Math.Abs (255 - ((lhs).R) - ((rhs).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((*dst).B) - ((*src).B))); }; { fG = (255 - Math.Abs (255 - ((*dst).G) - ((*src).G))); }; { fR = (255 - Math.Abs (255 - ((*dst).R) - ((*src).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (255 - Math.Abs (255 - ((*lhs).B) - ((*rhs).B))); }; { fG = (255 - Math.Abs (255 - ((*lhs).G) - ((*rhs).G))); }; { fR = (255 - Math.Abs (255 - ((*lhs).R) - ((*rhs).R))); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public NegationBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class LightenBlendOp : UserBlendOp { public static string StaticName { get { return "Lighten"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((lhs).B, (rhs).B); }; { fG = Math.Max ((lhs).G, (rhs).G); }; { fR = Math.Max ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((*dst).B, (*src).B); }; { fG = Math.Max ((*dst).G, (*src).G); }; { fR = Math.Max ((*dst).R, (*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((*lhs).B, (*rhs).B); }; { fG = Math.Max ((*lhs).G, (*rhs).G); }; { fR = Math.Max ((*lhs).R, (*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((lhs).B, (rhs).B); }; { fG = Math.Max ((lhs).G, (rhs).G); }; { fR = Math.Max ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new LightenBlendOpWithOpacity (opacity); } private sealed class LightenBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Lighten" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((lhs).B, (rhs).B); }; { fG = Math.Max ((lhs).G, (rhs).G); }; { fR = Math.Max ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((*dst).B, (*src).B); }; { fG = Math.Max ((*dst).G, (*src).G); }; { fR = Math.Max ((*dst).R, (*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Max ((*lhs).B, (*rhs).B); }; { fG = Math.Max ((*lhs).G, (*rhs).G); }; { fR = Math.Max ((*lhs).R, (*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public LightenBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class DarkenBlendOp : UserBlendOp { public static string StaticName { get { return "Darken"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((lhs).B, (rhs).B); }; { fG = Math.Min ((lhs).G, (rhs).G); }; { fR = Math.Min ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((*dst).B, (*src).B); }; { fG = Math.Min ((*dst).G, (*src).G); }; { fR = Math.Min ((*dst).R, (*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((*lhs).B, (*rhs).B); }; { fG = Math.Min ((*lhs).G, (*rhs).G); }; { fR = Math.Min ((*lhs).R, (*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((lhs).B, (rhs).B); }; { fG = Math.Min ((lhs).G, (rhs).G); }; { fR = Math.Min ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new DarkenBlendOpWithOpacity (opacity); } private sealed class DarkenBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Darken" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((lhs).B, (rhs).B); }; { fG = Math.Min ((lhs).G, (rhs).G); }; { fR = Math.Min ((lhs).R, (rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((*dst).B, (*src).B); }; { fG = Math.Min ((*dst).G, (*src).G); }; { fR = Math.Min ((*dst).R, (*src).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = Math.Min ((*lhs).B, (*rhs).B); }; { fG = Math.Min ((*lhs).G, (*rhs).G); }; { fR = Math.Min ((*lhs).R, (*rhs).R); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public DarkenBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class ScreenBlendOp : UserBlendOp { public static string StaticName { get { return "Screen"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((rhs).B)) * (((lhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((rhs).B) + ((lhs).B) - fB; }; { { fG = ((((rhs).G)) * (((lhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((rhs).G) + ((lhs).G) - fG; }; { { fR = ((((rhs).R)) * (((lhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((rhs).R) + ((lhs).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*src).B)) * (((*dst).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((*src).B) + ((*dst).B) - fB; }; { { fG = ((((*src).G)) * (((*dst).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((*src).G) + ((*dst).G) - fG; }; { { fR = ((((*src).R)) * (((*dst).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((*src).R) + ((*dst).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*rhs).B)) * (((*lhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((*rhs).B) + ((*lhs).B) - fB; }; { { fG = ((((*rhs).G)) * (((*lhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((*rhs).G) + ((*lhs).G) - fG; }; { { fR = ((((*rhs).R)) * (((*lhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((*rhs).R) + ((*lhs).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((rhs).B)) * (((lhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((rhs).B) + ((lhs).B) - fB; }; { { fG = ((((rhs).G)) * (((lhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((rhs).G) + ((lhs).G) - fG; }; { { fR = ((((rhs).R)) * (((lhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((rhs).R) + ((lhs).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new ScreenBlendOpWithOpacity (opacity); } private sealed class ScreenBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Screen" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((rhs).B)) * (((lhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((rhs).B) + ((lhs).B) - fB; }; { { fG = ((((rhs).G)) * (((lhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((rhs).G) + ((lhs).G) - fG; }; { { fR = ((((rhs).R)) * (((lhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((rhs).R) + ((lhs).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*src).B)) * (((*dst).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((*src).B) + ((*dst).B) - fB; }; { { fG = ((((*src).G)) * (((*dst).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((*src).G) + ((*dst).G) - fG; }; { { fR = ((((*src).R)) * (((*dst).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((*src).R) + ((*dst).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { { fB = ((((*rhs).B)) * (((*lhs).B)) + 0x80); fB = ((((fB) >> 8) + (fB)) >> 8); }; fB = ((*rhs).B) + ((*lhs).B) - fB; }; { { fG = ((((*rhs).G)) * (((*lhs).G)) + 0x80); fG = ((((fG) >> 8) + (fG)) >> 8); }; fG = ((*rhs).G) + ((*lhs).G) - fG; }; { { fR = ((((*rhs).R)) * (((*lhs).R)) + 0x80); fR = ((((fR) >> 8) + (fR)) >> 8); }; fR = ((*rhs).R) + ((*lhs).R) - fR; }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public ScreenBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } [Serializable] public sealed class XorBlendOp : UserBlendOp { public static string StaticName { get { return "Xor"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((lhs).B) ^ ((rhs).B)); }; { fG = (((lhs).G) ^ ((rhs).G)); }; { fR = (((lhs).R) ^ ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((*dst).B) ^ ((*src).B)); }; { fG = (((*dst).G) ^ ((*src).G)); }; { fR = (((*dst).R) ^ ((*src).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((*lhs).B) ^ ((*rhs).B)); }; { fG = (((*lhs).G) ^ ((*rhs).G)); }; { fR = (((*lhs).R) ^ ((*rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public static ColorBgra ApplyStatic (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((lhs).B) ^ ((rhs).B)); }; { fG = (((lhs).G) ^ ((rhs).G)); }; { fR = (((lhs).R) ^ ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public override UserBlendOp CreateWithOpacity (int opacity) { return new XorBlendOpWithOpacity (opacity); } private sealed class XorBlendOpWithOpacity : UserBlendOp { private int opacity; private byte ApplyOpacity (byte a) { int r; { r = (a); }; { r = ((r) * (this.opacity) + 0x80); r = ((((r) >> 8) + (r)) >> 8); }; return (byte)r; } public static string StaticName { get { return "UserBlendOps." + "Xor" + "BlendOp.Name"; } } public override ColorBgra Apply (ColorBgra lhs, ColorBgra rhs) { int lhsA; { lhsA = ((lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((lhs).B) ^ ((rhs).B)); }; { fG = (((lhs).G) ^ ((rhs).G)); }; { fR = (((lhs).R) ^ ((rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((lhs).B * y) + ((rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((lhs).G * y) + ((rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((lhs).R * y) + ((rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; return ColorBgra.FromUInt32 (ret); } public unsafe override void Apply (ColorBgra* dst, ColorBgra* src, int length) { while (length > 0) { int lhsA; { lhsA = ((*dst).A); }; int rhsA; { rhsA = ApplyOpacity ((*src).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((*dst).B) ^ ((*src).B)); }; { fG = (((*dst).G) ^ ((*src).G)); }; { fR = (((*dst).R) ^ ((*src).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*dst).B * y) + ((*src).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*dst).G * y) + ((*src).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*dst).R * y) + ((*src).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++src; --length; } } public unsafe override void Apply (ColorBgra* dst, ColorBgra* lhs, ColorBgra* rhs, int length) { while (length > 0) { int lhsA; { lhsA = ((*lhs).A); }; int rhsA; { rhsA = ApplyOpacity ((*rhs).A); }; int y; { y = ((lhsA) * (255 - rhsA) + 0x80); y = ((((y) >> 8) + (y)) >> 8); }; int totalA = y + rhsA; uint ret; if (totalA == 0) { ret = 0; } else { int fB; int fG; int fR; { fB = (((*lhs).B) ^ ((*rhs).B)); }; { fG = (((*lhs).G) ^ ((*rhs).G)); }; { fR = (((*lhs).R) ^ ((*rhs).R)); }; int x; { x = ((lhsA) * (rhsA) + 0x80); x = ((((x) >> 8) + (x)) >> 8); }; int z = rhsA - x; int masIndex = totalA * 3; uint taM = masTable[masIndex]; uint taA = masTable[masIndex + 1]; uint taS = masTable[masIndex + 2]; uint b = (uint)(((((long)((((*lhs).B * y) + ((*rhs).B * z) + (fB * x)))) * taM) + taA) >> (int)taS); uint g = (uint)(((((long)((((*lhs).G * y) + ((*rhs).G * z) + (fG * x)))) * taM) + taA) >> (int)taS); uint r = (uint)(((((long)((((*lhs).R * y) + ((*rhs).R * z) + (fR * x)))) * taM) + taA) >> (int)taS); int a; { { a = ((lhsA) * (255 - (rhsA)) + 0x80); a = ((((a) >> 8) + (a)) >> 8); }; a += (rhsA); }; ret = b + (g << 8) + (r << 16) + ((uint)a << 24); }; dst->Bgra = ret; ++dst; ++lhs; ++rhs; --length; } } public XorBlendOpWithOpacity (int opacity) { if (this.opacity < 0 || this.opacity > 255) { throw new ArgumentOutOfRangeException (); } this.opacity = opacity; } } } } } pinta-1.3/Pinta.Core/Effects/UserBlendOps.cs0000664000175000017500000000452511747026475022064 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections; using System.Collections.Generic; using System.Reflection; namespace Pinta.Core { /// /// This class contains all the render ops that can be used by the user /// to configure a layer's blending mode. It also contains helper /// functions to aid in enumerating and using these blend ops. /// /// Credit for mathematical descriptions of many of the blend modes goes to /// a page on Pegtop Software's website called, "Blend Modes" /// http://www.pegtop.net/delphi/articles/blendmodes/ /// public sealed partial class UserBlendOps { private UserBlendOps () { } /// /// Returns an array of Type objects that lists all of the pixel ops contained /// within this class. You can then use Utility.GetStaticName to retrieve the /// value of the StaticName property. /// /// public static Type[] GetBlendOps () { Type[] allTypes = typeof (UserBlendOps).GetNestedTypes (); List types = new List (allTypes.Length); foreach (Type type in allTypes) { if (type.IsSubclassOf (typeof (UserBlendOp)) && !type.IsAbstract) { types.Add (type); } } return types.ToArray (); } public static string GetBlendOpFriendlyName (Type opType) { return Utility.GetStaticName (opType); } public static UserBlendOp CreateBlendOp (Type opType) { ConstructorInfo ci = opType.GetConstructor (System.Type.EmptyTypes); UserBlendOp op = (UserBlendOp)ci.Invoke (null); return op; } public static UserBlendOp CreateDefaultBlendOp () { return new NormalBlendOp (); } public static Type GetDefaultBlendOp () { return typeof (NormalBlendOp); } } } pinta-1.3/Pinta.Core/Effects/Utility.cs0000664000175000017500000005466711747026475021176 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) Rick Brewster, Tom Jackson, and past contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Reflection; using System.Collections; using System.Collections.Generic; namespace Pinta.Core { public static class Utility { public static Cairo.Rectangle PointsToRectangle (Cairo.PointD p1, Cairo.PointD p2, bool constrain) { // We want to create a rectangle that always has positive width/height double x, y, w, h; if (p1.Y <= p2.Y) { y = p1.Y; h = p2.Y - y + 1; } else { y = p2.Y; h = p1.Y - y + 1; } if (p1.X <= p2.X) { x = p1.X; if (constrain) w = h; else w = p2.X - x + 1; } else { x = p2.X; if (constrain) { w = h; x = p1.X - w; } else w = p1.X - x + 1; } return new Cairo.Rectangle (x, y, w, h); } internal static bool IsNumber (float x) { return x >= float.MinValue && x <= float.MaxValue; } public static double Clamp (double x, double min, double max) { if (x < min) { return min; } else if (x > max) { return max; } else { return x; } } public static float Clamp (float x, float min, float max) { if (x < min) { return min; } else if (x > max) { return max; } else { return x; } } public static int Clamp (int x, int min, int max) { if (x < min) { return min; } else if (x > max) { return max; } else { return x; } } public static byte ClampToByte (double x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } public static byte ClampToByte (float x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } public static byte ClampToByte (int x) { if (x > 255) { return 255; } else if (x < 0) { return 0; } else { return (byte)x; } } public static float Lerp (float from, float to, float frac) { return (from + frac * (to - from)); } public static double Lerp (double from, double to, double frac) { return (from + frac * (to - from)); } public static Cairo.PointD Lerp (Cairo.PointD from, Cairo.PointD to, float frac) { return new Cairo.PointD (Lerp (from.X, to.X, frac), Lerp (from.Y, to.Y, frac)); } public static void Swap(ref int a, ref int b) { int t; t = a; a = b; b = t; } /// /// Smoothly blends between two colors. /// public static ColorBgra Blend(ColorBgra ca, ColorBgra cb, byte cbAlpha) { uint caA = (uint)Utility.FastScaleByteByByte((byte)(255 - cbAlpha), ca.A); uint cbA = (uint)Utility.FastScaleByteByByte(cbAlpha, cb.A); uint cbAT = caA + cbA; uint r; uint g; uint b; if (cbAT == 0) { r = 0; g = 0; b = 0; } else { r = ((ca.R * caA) + (cb.R * cbA)) / cbAT; g = ((ca.G * caA) + (cb.G * cbA)) / cbAT; b = ((ca.B * caA) + (cb.B * cbA)) / cbAT; } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)cbAT); } /// /// Allows you to find the bounding box for a "region" that is described as an /// array of bounding boxes. /// /// The "region" you want to find a bounding box for. /// A RectangleF structure that surrounds the Region. public static Gdk.Rectangle GetRegionBounds (Gdk.Rectangle[] rects, int startIndex, int length) { if (rects.Length == 0) { return Gdk.Rectangle.Zero; } int left = rects[startIndex].Left; int top = rects[startIndex].Top; int right = rects[startIndex].Right; int bottom = rects[startIndex].Bottom; for (int i = startIndex + 1; i < startIndex + length; ++i) { Gdk.Rectangle rect = rects[i]; if (rect.Left < left) { left = rect.Left; } if (rect.Top < top) { top = rect.Top; } if (rect.Right > right) { right = rect.Right; } if (rect.Bottom > bottom) { bottom = rect.Bottom; } } return Gdk.Rectangle.FromLTRB (left, top, right, bottom); } public static int ColorDifference (ColorBgra a, ColorBgra b) { return (int)Math.Ceiling (Math.Sqrt (ColorDifferenceSquared (a, b))); } public static int ColorDifferenceSquared (ColorBgra a, ColorBgra b) { int diffSq = 0, tmp; tmp = a.R - b.R; diffSq += tmp * tmp; tmp = a.G - b.G; diffSq += tmp * tmp; tmp = a.B - b.B; diffSq += tmp * tmp; return diffSq / 3; } public static Gdk.Rectangle[] InflateRectangles (Gdk.Rectangle[] rects, int len) { Gdk.Rectangle[] inflated = new Gdk.Rectangle[rects.Length]; for (int i = 0; i < rects.Length; ++i) inflated[i] = new Gdk.Rectangle(rects[i].X-len, rects[i].Y-len, rects[i].Width + 2 * len, rects[i].Height + 2 * len); return inflated; } public static Gdk.Region RectanglesToRegion(Gdk.Rectangle[] rects) { Gdk.Region reg = Gdk.Region.Rectangle(Gdk.Rectangle.Zero); foreach (Gdk.Rectangle r in rects) reg.UnionWithRect(r); return reg; } public static string GetStaticName (Type type) { PropertyInfo pi = type.GetProperty ("StaticName", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetProperty); return (string)pi.GetValue (null, null); } public static byte FastScaleByteByByte (byte a, byte b) { int r1 = a * b + 0x80; int r2 = ((r1 >> 8) + r1) >> 8; return (byte)r2; } public static Gdk.Point[] GetLinePoints(Gdk.Point first, Gdk.Point second) { Gdk.Point[] coords = null; int x1 = first.X; int y1 = first.Y; int x2 = second.X; int y2 = second.Y; int dx = x2 - x1; int dy = y2 - y1; int dxabs = Math.Abs(dx); int dyabs = Math.Abs(dy); int px = x1; int py = y1; int sdx = Math.Sign(dx); int sdy = Math.Sign(dy); int x = 0; int y = 0; if (dxabs > dyabs) { coords = new Gdk.Point[dxabs + 1]; for (int i = 0; i <= dxabs; i++) { y += dyabs; if (y >= dxabs) { y -= dxabs; py += sdy; } coords[i] = new Gdk.Point(px, py); px += sdx; } } else // had to add in this cludge for slopes of 1 ... wasn't drawing half the line if (dxabs == dyabs) { coords = new Gdk.Point[dxabs + 1]; for (int i = 0; i <= dxabs; i++) { coords[i] = new Gdk.Point(px, py); px += sdx; py += sdy; } } else { coords = new Gdk.Point[dyabs + 1]; for (int i = 0; i <= dyabs; i++) { x += dxabs; if (x >= dyabs) { x -= dyabs; px += sdx; } coords[i] = new Gdk.Point(px, py); py += sdy; } } return coords; } public static unsafe void GetRgssOffsets (Cairo.PointD* samplesArray, int sampleCount, int quality) { if (sampleCount < 1) { throw new ArgumentOutOfRangeException("sampleCount", "sampleCount must be [0, int.MaxValue]"); } if (sampleCount != quality * quality) { throw new ArgumentOutOfRangeException("sampleCount != (quality * quality)"); } if (sampleCount == 1) { samplesArray[0] = new Cairo.PointD (0.0, 0.0); } else { for (int i = 0; i < sampleCount; ++i) { double y = (i + 1d) / (sampleCount + 1d); double x = y * quality; x -= (int)x; samplesArray[i] = new Cairo.PointD (x - 0.5d, y - 0.5d); } } } public static int FastDivideShortByByte(ushort n, byte d) { int i = d * 3; uint m = masTable[i]; uint a = masTable[i + 1]; uint s = masTable[i + 2]; uint nTimesMPlusA = unchecked((n * m) + a); uint shifted = nTimesMPlusA >> (int)s; int r = (int)shifted; return r; } // i = z * 3; // (x / z) = ((x * masTable[i]) + masTable[i + 1]) >> masTable[i + 2) private static readonly uint[] masTable = { 0x00000000, 0x00000000, 0, // 0 0x00000001, 0x00000000, 0, // 1 0x00000001, 0x00000000, 1, // 2 0xAAAAAAAB, 0x00000000, 33, // 3 0x00000001, 0x00000000, 2, // 4 0xCCCCCCCD, 0x00000000, 34, // 5 0xAAAAAAAB, 0x00000000, 34, // 6 0x49249249, 0x49249249, 33, // 7 0x00000001, 0x00000000, 3, // 8 0x38E38E39, 0x00000000, 33, // 9 0xCCCCCCCD, 0x00000000, 35, // 10 0xBA2E8BA3, 0x00000000, 35, // 11 0xAAAAAAAB, 0x00000000, 35, // 12 0x4EC4EC4F, 0x00000000, 34, // 13 0x49249249, 0x49249249, 34, // 14 0x88888889, 0x00000000, 35, // 15 0x00000001, 0x00000000, 4, // 16 0xF0F0F0F1, 0x00000000, 36, // 17 0x38E38E39, 0x00000000, 34, // 18 0xD79435E5, 0xD79435E5, 36, // 19 0xCCCCCCCD, 0x00000000, 36, // 20 0xC30C30C3, 0xC30C30C3, 36, // 21 0xBA2E8BA3, 0x00000000, 36, // 22 0xB21642C9, 0x00000000, 36, // 23 0xAAAAAAAB, 0x00000000, 36, // 24 0x51EB851F, 0x00000000, 35, // 25 0x4EC4EC4F, 0x00000000, 35, // 26 0x97B425ED, 0x97B425ED, 36, // 27 0x49249249, 0x49249249, 35, // 28 0x8D3DCB09, 0x00000000, 36, // 29 0x88888889, 0x00000000, 36, // 30 0x42108421, 0x42108421, 35, // 31 0x00000001, 0x00000000, 5, // 32 0x3E0F83E1, 0x00000000, 35, // 33 0xF0F0F0F1, 0x00000000, 37, // 34 0x75075075, 0x75075075, 36, // 35 0x38E38E39, 0x00000000, 35, // 36 0x6EB3E453, 0x6EB3E453, 36, // 37 0xD79435E5, 0xD79435E5, 37, // 38 0x69069069, 0x69069069, 36, // 39 0xCCCCCCCD, 0x00000000, 37, // 40 0xC7CE0C7D, 0x00000000, 37, // 41 0xC30C30C3, 0xC30C30C3, 37, // 42 0x2FA0BE83, 0x00000000, 35, // 43 0xBA2E8BA3, 0x00000000, 37, // 44 0x5B05B05B, 0x5B05B05B, 36, // 45 0xB21642C9, 0x00000000, 37, // 46 0xAE4C415D, 0x00000000, 37, // 47 0xAAAAAAAB, 0x00000000, 37, // 48 0x5397829D, 0x00000000, 36, // 49 0x51EB851F, 0x00000000, 36, // 50 0xA0A0A0A1, 0x00000000, 37, // 51 0x4EC4EC4F, 0x00000000, 36, // 52 0x9A90E7D9, 0x9A90E7D9, 37, // 53 0x97B425ED, 0x97B425ED, 37, // 54 0x94F2094F, 0x94F2094F, 37, // 55 0x49249249, 0x49249249, 36, // 56 0x47DC11F7, 0x47DC11F7, 36, // 57 0x8D3DCB09, 0x00000000, 37, // 58 0x22B63CBF, 0x00000000, 35, // 59 0x88888889, 0x00000000, 37, // 60 0x4325C53F, 0x00000000, 36, // 61 0x42108421, 0x42108421, 36, // 62 0x41041041, 0x41041041, 36, // 63 0x00000001, 0x00000000, 6, // 64 0xFC0FC0FD, 0x00000000, 38, // 65 0x3E0F83E1, 0x00000000, 36, // 66 0x07A44C6B, 0x00000000, 33, // 67 0xF0F0F0F1, 0x00000000, 38, // 68 0x76B981DB, 0x00000000, 37, // 69 0x75075075, 0x75075075, 37, // 70 0xE6C2B449, 0x00000000, 38, // 71 0x38E38E39, 0x00000000, 36, // 72 0x381C0E07, 0x381C0E07, 36, // 73 0x6EB3E453, 0x6EB3E453, 37, // 74 0x1B4E81B5, 0x00000000, 35, // 75 0xD79435E5, 0xD79435E5, 38, // 76 0x3531DEC1, 0x00000000, 36, // 77 0x69069069, 0x69069069, 37, // 78 0xCF6474A9, 0x00000000, 38, // 79 0xCCCCCCCD, 0x00000000, 38, // 80 0xCA4587E7, 0x00000000, 38, // 81 0xC7CE0C7D, 0x00000000, 38, // 82 0x3159721F, 0x00000000, 36, // 83 0xC30C30C3, 0xC30C30C3, 38, // 84 0xC0C0C0C1, 0x00000000, 38, // 85 0x2FA0BE83, 0x00000000, 36, // 86 0x2F149903, 0x00000000, 36, // 87 0xBA2E8BA3, 0x00000000, 38, // 88 0xB81702E1, 0x00000000, 38, // 89 0x5B05B05B, 0x5B05B05B, 37, // 90 0x2D02D02D, 0x2D02D02D, 36, // 91 0xB21642C9, 0x00000000, 38, // 92 0xB02C0B03, 0x00000000, 38, // 93 0xAE4C415D, 0x00000000, 38, // 94 0x2B1DA461, 0x2B1DA461, 36, // 95 0xAAAAAAAB, 0x00000000, 38, // 96 0xA8E83F57, 0xA8E83F57, 38, // 97 0x5397829D, 0x00000000, 37, // 98 0xA57EB503, 0x00000000, 38, // 99 0x51EB851F, 0x00000000, 37, // 100 0xA237C32B, 0xA237C32B, 38, // 101 0xA0A0A0A1, 0x00000000, 38, // 102 0x9F1165E7, 0x9F1165E7, 38, // 103 0x4EC4EC4F, 0x00000000, 37, // 104 0x27027027, 0x27027027, 36, // 105 0x9A90E7D9, 0x9A90E7D9, 38, // 106 0x991F1A51, 0x991F1A51, 38, // 107 0x97B425ED, 0x97B425ED, 38, // 108 0x2593F69B, 0x2593F69B, 36, // 109 0x94F2094F, 0x94F2094F, 38, // 110 0x24E6A171, 0x24E6A171, 36, // 111 0x49249249, 0x49249249, 37, // 112 0x90FDBC09, 0x90FDBC09, 38, // 113 0x47DC11F7, 0x47DC11F7, 37, // 114 0x8E78356D, 0x8E78356D, 38, // 115 0x8D3DCB09, 0x00000000, 38, // 116 0x23023023, 0x23023023, 36, // 117 0x22B63CBF, 0x00000000, 36, // 118 0x44D72045, 0x00000000, 37, // 119 0x88888889, 0x00000000, 38, // 120 0x8767AB5F, 0x8767AB5F, 38, // 121 0x4325C53F, 0x00000000, 37, // 122 0x85340853, 0x85340853, 38, // 123 0x42108421, 0x42108421, 37, // 124 0x10624DD3, 0x00000000, 35, // 125 0x41041041, 0x41041041, 37, // 126 0x10204081, 0x10204081, 35, // 127 0x00000001, 0x00000000, 7, // 128 0x0FE03F81, 0x00000000, 35, // 129 0xFC0FC0FD, 0x00000000, 39, // 130 0xFA232CF3, 0x00000000, 39, // 131 0x3E0F83E1, 0x00000000, 37, // 132 0xF6603D99, 0x00000000, 39, // 133 0x07A44C6B, 0x00000000, 34, // 134 0xF2B9D649, 0x00000000, 39, // 135 0xF0F0F0F1, 0x00000000, 39, // 136 0x077975B9, 0x00000000, 34, // 137 0x76B981DB, 0x00000000, 38, // 138 0x75DED953, 0x00000000, 38, // 139 0x75075075, 0x75075075, 38, // 140 0x3A196B1F, 0x00000000, 37, // 141 0xE6C2B449, 0x00000000, 39, // 142 0xE525982B, 0x00000000, 39, // 143 0x38E38E39, 0x00000000, 37, // 144 0xE1FC780F, 0x00000000, 39, // 145 0x381C0E07, 0x381C0E07, 37, // 146 0xDEE95C4D, 0x00000000, 39, // 147 0x6EB3E453, 0x6EB3E453, 38, // 148 0xDBEB61EF, 0x00000000, 39, // 149 0x1B4E81B5, 0x00000000, 36, // 150 0x36406C81, 0x00000000, 37, // 151 0xD79435E5, 0xD79435E5, 39, // 152 0xD62B80D7, 0x00000000, 39, // 153 0x3531DEC1, 0x00000000, 37, // 154 0xD3680D37, 0x00000000, 39, // 155 0x69069069, 0x69069069, 38, // 156 0x342DA7F3, 0x00000000, 37, // 157 0xCF6474A9, 0x00000000, 39, // 158 0xCE168A77, 0xCE168A77, 39, // 159 0xCCCCCCCD, 0x00000000, 39, // 160 0xCB8727C1, 0x00000000, 39, // 161 0xCA4587E7, 0x00000000, 39, // 162 0xC907DA4F, 0x00000000, 39, // 163 0xC7CE0C7D, 0x00000000, 39, // 164 0x634C0635, 0x00000000, 38, // 165 0x3159721F, 0x00000000, 37, // 166 0x621B97C3, 0x00000000, 38, // 167 0xC30C30C3, 0xC30C30C3, 39, // 168 0x60F25DEB, 0x00000000, 38, // 169 0xC0C0C0C1, 0x00000000, 39, // 170 0x17F405FD, 0x17F405FD, 36, // 171 0x2FA0BE83, 0x00000000, 37, // 172 0xBD691047, 0xBD691047, 39, // 173 0x2F149903, 0x00000000, 37, // 174 0x5D9F7391, 0x00000000, 38, // 175 0xBA2E8BA3, 0x00000000, 39, // 176 0x5C90A1FD, 0x5C90A1FD, 38, // 177 0xB81702E1, 0x00000000, 39, // 178 0x5B87DDAD, 0x5B87DDAD, 38, // 179 0x5B05B05B, 0x5B05B05B, 38, // 180 0xB509E68B, 0x00000000, 39, // 181 0x2D02D02D, 0x2D02D02D, 37, // 182 0xB30F6353, 0x00000000, 39, // 183 0xB21642C9, 0x00000000, 39, // 184 0x1623FA77, 0x1623FA77, 36, // 185 0xB02C0B03, 0x00000000, 39, // 186 0xAF3ADDC7, 0x00000000, 39, // 187 0xAE4C415D, 0x00000000, 39, // 188 0x15AC056B, 0x15AC056B, 36, // 189 0x2B1DA461, 0x2B1DA461, 37, // 190 0xAB8F69E3, 0x00000000, 39, // 191 0xAAAAAAAB, 0x00000000, 39, // 192 0x15390949, 0x00000000, 36, // 193 0xA8E83F57, 0xA8E83F57, 39, // 194 0x15015015, 0x15015015, 36, // 195 0x5397829D, 0x00000000, 38, // 196 0xA655C439, 0xA655C439, 39, // 197 0xA57EB503, 0x00000000, 39, // 198 0x5254E78F, 0x00000000, 38, // 199 0x51EB851F, 0x00000000, 38, // 200 0x028C1979, 0x00000000, 33, // 201 0xA237C32B, 0xA237C32B, 39, // 202 0xA16B312F, 0x00000000, 39, // 203 0xA0A0A0A1, 0x00000000, 39, // 204 0x4FEC04FF, 0x00000000, 38, // 205 0x9F1165E7, 0x9F1165E7, 39, // 206 0x27932B49, 0x00000000, 37, // 207 0x4EC4EC4F, 0x00000000, 38, // 208 0x9CC8E161, 0x00000000, 39, // 209 0x27027027, 0x27027027, 37, // 210 0x9B4C6F9F, 0x00000000, 39, // 211 0x9A90E7D9, 0x9A90E7D9, 39, // 212 0x99D722DB, 0x00000000, 39, // 213 0x991F1A51, 0x991F1A51, 39, // 214 0x4C346405, 0x00000000, 38, // 215 0x97B425ED, 0x97B425ED, 39, // 216 0x4B809701, 0x4B809701, 38, // 217 0x2593F69B, 0x2593F69B, 37, // 218 0x12B404AD, 0x12B404AD, 36, // 219 0x94F2094F, 0x94F2094F, 39, // 220 0x25116025, 0x25116025, 37, // 221 0x24E6A171, 0x24E6A171, 37, // 222 0x24BC44E1, 0x24BC44E1, 37, // 223 0x49249249, 0x49249249, 38, // 224 0x91A2B3C5, 0x00000000, 39, // 225 0x90FDBC09, 0x90FDBC09, 39, // 226 0x905A3863, 0x905A3863, 39, // 227 0x47DC11F7, 0x47DC11F7, 38, // 228 0x478BBCED, 0x00000000, 38, // 229 0x8E78356D, 0x8E78356D, 39, // 230 0x46ED2901, 0x46ED2901, 38, // 231 0x8D3DCB09, 0x00000000, 39, // 232 0x2328A701, 0x2328A701, 37, // 233 0x23023023, 0x23023023, 37, // 234 0x45B81A25, 0x45B81A25, 38, // 235 0x22B63CBF, 0x00000000, 37, // 236 0x08A42F87, 0x08A42F87, 35, // 237 0x44D72045, 0x00000000, 38, // 238 0x891AC73B, 0x00000000, 39, // 239 0x88888889, 0x00000000, 39, // 240 0x10FEF011, 0x00000000, 36, // 241 0x8767AB5F, 0x8767AB5F, 39, // 242 0x86D90545, 0x00000000, 39, // 243 0x4325C53F, 0x00000000, 38, // 244 0x85BF3761, 0x85BF3761, 39, // 245 0x85340853, 0x85340853, 39, // 246 0x10953F39, 0x10953F39, 36, // 247 0x42108421, 0x42108421, 38, // 248 0x41CC9829, 0x41CC9829, 38, // 249 0x10624DD3, 0x00000000, 36, // 250 0x828CBFBF, 0x00000000, 39, // 251 0x41041041, 0x41041041, 38, // 252 0x81848DA9, 0x00000000, 39, // 253 0x10204081, 0x10204081, 36, // 254 0x80808081, 0x00000000, 39 // 255 }; //enumerable/enumerator that given a range, will give an enumerator. //The reason to create it is to make easy accessible Linq (or ParallelLinq) //using constructions like: foreach (var x in new RangeEnumerable(3, 6)) { ... } where x will take values {3.4.5} public class RangeEnumerable : IEnumerable { private readonly int _startValue; private readonly int _endValue; public RangeEnumerable(int startValue, int endValue) { _startValue = startValue; _endValue = endValue; } public IEnumerator GetEnumerator() { return new RangeEnumerator(_startValue, _endValue); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } public class RangeEnumerator : IEnumerator { private int _startValue; private int _endValue; private int _current; public RangeEnumerator(int startValue, int endValue) { Setup(startValue, endValue); } private void Setup(int startValue, int endValue) { _startValue = startValue; _endValue = endValue; _current = startValue; } public void Dispose() { _current = _startValue; } public bool MoveNext() { _current++; return _current < _endValue; } public void Reset() { _current = _startValue; } public int Current { get {return _current;} } object IEnumerator.Current { get {return Current;} } } } } pinta-1.3/Pinta.Core/Enumerations/0000775000175000017500000000000011747026475020254 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Enumerations/EffectAdjustment.cs0000664000175000017500000000243511747026475024042 0ustar00cameroncameron00000000000000// // EffectAdjustment.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public enum EffectAdjustment { Effect, Adjustment } } pinta-1.3/Pinta.Core/Enumerations/GradientColorMode.cs0000664000175000017500000000244011747026475024144 0ustar00cameroncameron00000000000000// // GradientColorMode.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public enum GradientColorMode { Color, Transparency } } pinta-1.3/Pinta.Core/EventArgs/0000775000175000017500000000000011747026475017501 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/EventArgs/CanvasInvalidatedEventArgs.cs0000664000175000017500000000307711747026475025236 0ustar00cameroncameron00000000000000// // CanvasInvalidatedEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; namespace Pinta.Core { public class CanvasInvalidatedEventArgs : EventArgs { public bool EntireSurface { get; set; } public Rectangle Rectangle { get; set; } public CanvasInvalidatedEventArgs () { EntireSurface = true; } public CanvasInvalidatedEventArgs (Rectangle rect) { EntireSurface = false; Rectangle = rect; } } } pinta-1.3/Pinta.Core/EventArgs/DocumentCancelEventArgs.cs0000664000175000017500000000301711747026475024534 0ustar00cameroncameron00000000000000// // DocumentCancelEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; namespace Pinta.Core { public class DocumentCancelEventArgs : CancelEventArgs { public Document Document { get; set; } public bool SaveAs { get; private set; } public DocumentCancelEventArgs (Document document, bool saveAs) { Document = document; SaveAs = saveAs; } } } pinta-1.3/Pinta.Core/EventArgs/DocumentEventArgs.cs0000664000175000017500000000261611747026475023432 0ustar00cameroncameron00000000000000// // DocumentEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class DocumentEventArgs : EventArgs { public Document Document { get; set; } public DocumentEventArgs (Document document) { Document = document; } } } pinta-1.3/Pinta.Core/EventArgs/HistoryItemAddedEventArgs.cs0000664000175000017500000000264411747026475025057 0ustar00cameroncameron00000000000000// // HistoryItemAddedEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class HistoryItemAddedEventArgs : EventArgs { public BaseHistoryItem Item { get; set; } public HistoryItemAddedEventArgs (BaseHistoryItem item) { Item = item; } } } pinta-1.3/Pinta.Core/EventArgs/HistoryItemRemovedEventArgs.cs0000664000175000017500000000267011747026475025456 0ustar00cameroncameron00000000000000// // HistoryItemRemovedEventArgs.cs // // Author: // Anirudh Sanjeev // // Copyright (c) 2010 Anirudh Sanjeev // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public sealed class HistoryItemRemovedEventArgs : EventArgs { public BaseHistoryItem Item { get; set; } public HistoryItemRemovedEventArgs (BaseHistoryItem item) { Item = item; } } } pinta-1.3/Pinta.Core/EventArgs/LivePreviewEndedEventArgs.cs0000664000175000017500000000312611747026475025052 0ustar00cameroncameron00000000000000// // LivePreviewEndedEventArgs.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public enum RenderStatus { Completed, Canceled, Faulted } public class LivePreviewEndedEventArgs : EventArgs { public LivePreviewEndedEventArgs (RenderStatus status, Exception exception) { this.Status = status; this.Exception = exception; } public RenderStatus Status { get; private set; } public Exception Exception { get; private set; } } } pinta-1.3/Pinta.Core/EventArgs/LivePreviewRenderUpdatedEventArgs.cs0000664000175000017500000000311511747026475026557 0ustar00cameroncameron00000000000000// // LivePreviewRenderUpdatedEventArgs.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class LivePreviewRenderUpdatedEventArgs : EventArgs { public LivePreviewRenderUpdatedEventArgs (double progress, Gdk.Rectangle bounds) { this.Progress = progress; this.Bounds = bounds; } public double Progress { get; private set; } public Gdk.Rectangle Bounds { get; private set; } } } pinta-1.3/Pinta.Core/EventArgs/LivePreviewStartedEventArgs.cs0000664000175000017500000000251411747026475025441 0ustar00cameroncameron00000000000000// // LivePreviewStartedEventArgs.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class LivePreviewStartedEventArgs : EventArgs { public LivePreviewStartedEventArgs () { } } } pinta-1.3/Pinta.Core/EventArgs/ModifyCompressionEventArgs.cs0000664000175000017500000000274711747026475025332 0ustar00cameroncameron00000000000000// // ModifyCompressionEventArgs.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class ModifyCompressionEventArgs: EventArgs { public int Quality { get; set; } public bool Cancel { get; set; } public ModifyCompressionEventArgs (int quality) { this.Quality = quality; this.Cancel = false; } } } pinta-1.3/Pinta.Core/EventArgs/TextChangedEventArgs.cs0000664000175000017500000000260511747026475024050 0ustar00cameroncameron00000000000000// // TextChangedEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class TextChangedEventArgs : EventArgs { public string Text { get; set; } public TextChangedEventArgs (string text) { Text = text; } } } pinta-1.3/Pinta.Core/EventArgs/ToolEventArgs.cs0000664000175000017500000000262711747026475022573 0ustar00cameroncameron00000000000000// // ToolEventArgs.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; namespace Pinta.Core { public class ToolEventArgs : EventArgs { public BaseTool Tool { get; private set; } public ToolEventArgs (BaseTool tool) { Tool = tool; } } } pinta-1.3/Pinta.Core/Extensions/0000775000175000017500000000000011747026475017742 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Extensions/CairoExtensions.cs0000664000175000017500000010737411747026475023422 0ustar00cameroncameron00000000000000// // CairoExtensions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // Some functions are from Paint.NET: ///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using System.Collections.Generic; namespace Pinta.Core { public static class CairoExtensions { // Most of these functions return an affected area // This can be ignored if you don't need it #region context public static Rectangle DrawRectangle (this Context g, Rectangle r, Color color, int lineWidth) { // Put it on a pixel line if (lineWidth == 1) r = new Rectangle (r.X - 0.5, r.Y - 0.5, r.Width, r.Height); g.Save (); g.MoveTo (r.X, r.Y); g.LineTo (r.X + r.Width, r.Y); g.LineTo (r.X + r.Width, r.Y + r.Height); g.LineTo (r.X, r.Y + r.Height); g.LineTo (r.X, r.Y); g.Color = color; g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Path CreateRectanglePath (this Context g, Rectangle r) { g.Save (); g.MoveTo (r.X, r.Y); g.LineTo (r.X + r.Width, r.Y); g.LineTo (r.X + r.Width, r.Y + r.Height); g.LineTo (r.X, r.Y + r.Height); g.LineTo (r.X, r.Y); Path path = g.CopyPath (); g.Restore (); return path; } public static Rectangle FillRectangle (this Context g, Rectangle r, Color color) { g.Save (); g.MoveTo (r.X, r.Y); g.LineTo (r.X + r.Width, r.Y); g.LineTo (r.X + r.Width, r.Y + r.Height); g.LineTo (r.X, r.Y + r.Height); g.LineTo (r.X, r.Y); g.Color = color; Rectangle dirty = g.StrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static Rectangle FillRectangle (this Context g, Rectangle r, Pattern pattern) { g.Save (); g.MoveTo (r.X, r.Y); g.LineTo (r.X + r.Width, r.Y); g.LineTo (r.X + r.Width, r.Y + r.Height); g.LineTo (r.X, r.Y + r.Height); g.LineTo (r.X, r.Y); g.Pattern = pattern; Rectangle dirty = g.StrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static Rectangle DrawPolygonal (this Context g, PointD[] points, Color color) { Random rand = new Random (); g.Save (); g.MoveTo (points[0]); foreach (var point in points) { g.LineTo (point.X - rand.NextDouble () * 0, point.Y); //g.Stroke(); } g.Color = color; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle FillPolygonal (this Context g, PointD[] points, Color color) { g.Save (); g.MoveTo (points[0]); foreach (var point in points) g.LineTo (point); g.Color = color; Rectangle dirty = g.StrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static Rectangle FillStrokedRectangle (this Context g, Rectangle r, Color fill, Color stroke, int lineWidth) { double x = r.X; double y = r.Y; g.Save (); // Put it on a pixel line if (lineWidth == 1) { x += 0.5; y += 0.5; } g.MoveTo (x, y); g.LineTo (x + r.Width, y); g.LineTo (x + r.Width, y + r.Height); g.LineTo (x, y + r.Height); g.LineTo (x, y); g.Color = fill; g.FillPreserve (); g.Color = stroke; g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle DrawEllipse (this Context g, Rectangle r, Color color, int lineWidth) { double rx = r.Width / 2; double ry = r.Height / 2; double cx = r.X + rx; double cy = r.Y + ry; double c1 = 0.552285; g.Save (); g.MoveTo (cx + rx, cy); g.CurveTo (cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry); g.CurveTo (cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy); g.CurveTo (cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry); g.CurveTo (cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy); g.ClosePath (); g.Color = color; g.LineWidth = lineWidth; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle FillEllipse (this Context g, Rectangle r, Color color) { double rx = r.Width / 2; double ry = r.Height / 2; double cx = r.X + rx; double cy = r.Y + ry; double c1 = 0.552285; g.Save (); g.MoveTo (cx + rx, cy); g.CurveTo (cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry); g.CurveTo (cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy); g.CurveTo (cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry); g.CurveTo (cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy); g.ClosePath (); g.Color = color; Rectangle dirty = g.StrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static Path CreateEllipsePath (this Context g, Rectangle r) { double rx = r.Width / 2; double ry = r.Height / 2; double cx = r.X + rx; double cy = r.Y + ry; double c1 = 0.552285; g.Save (); g.MoveTo (cx + rx, cy); g.CurveTo (cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry); g.CurveTo (cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy); g.CurveTo (cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry); g.CurveTo (cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy); g.ClosePath (); Path path = g.CopyPath (); g.Restore (); return path; } public static Rectangle FillStrokedEllipse (this Context g, Rectangle r, Color fill, Color stroke, int lineWidth) { double rx = r.Width / 2; double ry = r.Height / 2; double cx = r.X + rx; double cy = r.Y + ry; double c1 = 0.552285; g.Save (); g.MoveTo (cx + rx, cy); g.CurveTo (cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry); g.CurveTo (cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy); g.CurveTo (cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry); g.CurveTo (cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy); g.ClosePath (); g.Color = fill; g.FillPreserve (); g.Color = stroke; g.LineWidth = lineWidth; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle FillStrokedRoundedRectangle (this Context g, Rectangle r, double radius, Color fill, Color stroke, int lineWidth) { g.Save (); if ((radius > r.Height / 2) || (radius > r.Width / 2)) radius = Math.Min (r.Height / 2, r.Width / 2); g.MoveTo (r.X, r.Y + radius); g.Arc (r.X + radius, r.Y + radius, radius, Math.PI, -Math.PI / 2); g.LineTo (r.X + r.Width - radius, r.Y); g.Arc (r.X + r.Width - radius, r.Y + radius, radius, -Math.PI / 2, 0); g.LineTo (r.X + r.Width, r.Y + r.Height - radius); g.Arc (r.X + r.Width - radius, r.Y + r.Height - radius, radius, 0, Math.PI / 2); g.LineTo (r.X + radius, r.Y + r.Height); g.Arc (r.X + radius, r.Y + r.Height - radius, radius, Math.PI / 2, Math.PI); g.ClosePath (); g.Color = fill; g.FillPreserve (); g.Color = stroke; g.LineWidth = lineWidth; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle FillRoundedRectangle (this Context g, Rectangle r, double radius, Color fill) { g.Save (); if ((radius > r.Height / 2) || (radius > r.Width / 2)) radius = Math.Min (r.Height / 2, r.Width / 2); g.MoveTo (r.X, r.Y + radius); g.Arc (r.X + radius, r.Y + radius, radius, Math.PI, -Math.PI / 2); g.LineTo (r.X + r.Width - radius, r.Y); g.Arc (r.X + r.Width - radius, r.Y + radius, radius, -Math.PI / 2, 0); g.LineTo (r.X + r.Width, r.Y + r.Height - radius); g.Arc (r.X + r.Width - radius, r.Y + r.Height - radius, radius, 0, Math.PI / 2); g.LineTo (r.X + radius, r.Y + r.Height); g.Arc (r.X + radius, r.Y + r.Height - radius, radius, Math.PI / 2, Math.PI); g.ClosePath (); g.Color = fill; Rectangle dirty = g.StrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static void FillRegion (this Context g, Gdk.Region region, Color color) { g.Save (); g.Color = color; foreach (Gdk.Rectangle r in region.GetRectangles ()) { g.MoveTo (r.X, r.Y); g.LineTo (r.X + r.Width, r.Y); g.LineTo (r.X + r.Width, r.Y + r.Height); g.LineTo (r.X, r.Y + r.Height); g.LineTo (r.X, r.Y); g.Color = color; g.StrokeExtents (); g.Fill (); } g.Restore (); } public static Rectangle DrawRoundedRectangle (this Context g, Rectangle r, double radius, Color stroke, int lineWidth) { g.Save (); Path p = g.CreateRoundedRectanglePath (r, radius); g.AppendPath (p); g.Color = stroke; g.LineWidth = lineWidth; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); (p as IDisposable).Dispose (); return dirty; } public static Path CreateRoundedRectanglePath (this Context g, Rectangle r, double radius) { g.Save (); if ((radius > r.Height / 2) || (radius > r.Width / 2)) radius = Math.Min (r.Height / 2, r.Width / 2); g.MoveTo (r.X, r.Y + radius); g.Arc (r.X + radius, r.Y + radius, radius, Math.PI, -Math.PI / 2); g.LineTo (r.X + r.Width - radius, r.Y); g.Arc (r.X + r.Width - radius, r.Y + radius, radius, -Math.PI / 2, 0); g.LineTo (r.X + r.Width, r.Y + r.Height - radius); g.Arc (r.X + r.Width - radius, r.Y + r.Height - radius, radius, 0, Math.PI / 2); g.LineTo (r.X + radius, r.Y + r.Height); g.Arc (r.X + radius, r.Y + r.Height - radius, radius, Math.PI / 2, Math.PI); g.ClosePath (); Path p = g.CopyPath (); g.Restore (); return p; } public static void QuadraticCurveTo (this Context g, double x1, double y1, double x2, double y2) { var c_x = g.CurrentPoint.X; var c_y = g.CurrentPoint.Y; var cp1x = c_x + 2.0 / 3.0 * (x1 - c_x); var cp1y = c_y + 2.0 / 3.0 * (y1 - c_y); var cp2x = cp1x + (x2 - c_x) / 3.0; var cp2y = cp1y + (y2 - c_y) / 3.0; g.CurveTo (cp1x, cp1y, cp2x, cp2y, x2, y2); } public static Rectangle DrawLine (this Context g, PointD p1, PointD p2, Color color, int lineWidth) { // Put it on a pixel line if (lineWidth == 1) p1 = new PointD (p1.X - 0.5, p1.Y - 0.5); g.Save (); g.MoveTo (p1.X, p1.Y); g.LineTo (p2.X, p2.Y); g.Color = color; g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.StrokeExtents (); g.Stroke (); g.Restore (); return dirty; } private static Pango.Style CairoToPangoSlant (FontSlant slant) { switch (slant) { case FontSlant.Italic: return Pango.Style.Italic; case FontSlant.Oblique: return Pango.Style.Oblique; default: return Pango.Style.Normal; } } private static Pango.Weight CairoToPangoWeight (FontWeight weight) { return (weight == FontWeight.Bold) ? Pango.Weight.Bold : Pango.Weight.Normal; } public static Rectangle DrawText (this Context g, PointD p, string family, FontSlant slant, FontWeight weight, double size, Color color, string text, bool antiAliasing) { g.Save (); g.MoveTo (p.X, p.Y); g.Color = color; g.Antialias = antiAliasing ? Antialias.Subpixel : Antialias.None; Pango.Layout layout = Pango.CairoHelper.CreateLayout (g); Pango.FontDescription fd = new Pango.FontDescription (); fd.Family = family; fd.Style = CairoToPangoSlant (slant); fd.Weight = CairoToPangoWeight (weight); fd.AbsoluteSize = size * Pango.Scale.PangoScale; layout.FontDescription = fd; layout.SetText (text); Pango.CairoHelper.ShowLayoutLine (g, layout.Lines[0]); Pango.Rectangle unused = Pango.Rectangle.Zero; Pango.Rectangle te = Pango.Rectangle.Zero; layout.GetExtents (out unused, out te); (layout as IDisposable).Dispose (); g.Restore (); return new Rectangle (te.X, te.Y, te.Width, te.Height); } public static void DrawPixbuf (this Context g, Gdk.Pixbuf pixbuf, Point dest) { g.Save (); Gdk.CairoHelper.SetSourcePixbuf (g, pixbuf, dest.X, dest.Y); g.Paint (); g.Restore (); } public static void DrawLinearGradient (this Context g, Surface oldsurface, GradientColorMode mode, Color c1, Color c2, PointD p1, PointD p2) { g.Save (); Gradient gradient = new Cairo.LinearGradient (p1.X, p1.Y, p2.X, p2.Y); if (mode == GradientColorMode.Color) { gradient.AddColorStop (0, c1); gradient.AddColorStop (1, c2); g.Source = gradient; g.Paint (); } else if (mode == GradientColorMode.Transparency) { gradient.AddColorStop (0, new Color (0, 0, 0, 1)); gradient.AddColorStop (1, new Color (0, 0, 0, 0)); g.Source = new SurfacePattern (oldsurface); g.Mask (gradient); } g.Restore (); } public static void DrawLinearReflectedGradient (this Context g, Surface oldsurface, GradientColorMode mode, Color c1, Color c2, PointD p1, PointD p2) { g.Save (); Gradient gradient = new Cairo.LinearGradient (p1.X, p1.Y, p2.X, p2.Y); if (mode == GradientColorMode.Color) { gradient.AddColorStop (0, c1); gradient.AddColorStop (0.5, c2); gradient.AddColorStop (1, c1); g.Source = gradient; g.Paint (); } else if (mode == GradientColorMode.Transparency) { gradient.AddColorStop (0, new Color (0, 0, 0, 1)); gradient.AddColorStop (0.5, new Color (0, 0, 0, 0)); gradient.AddColorStop (1, new Color (0, 0, 0, 1)); g.Source = new SurfacePattern (oldsurface); g.Mask (gradient); } g.Restore (); } public static void DrawRadialGradient (this Context g, Surface oldsurface, GradientColorMode mode, Color c1, Color c2, PointD p1, PointD p2, double r1, double r2) { g.Save (); Gradient gradient = new Cairo.RadialGradient (p1.X, p1.Y, r1, p2.X, p2.Y, r2); if (mode == GradientColorMode.Color) { gradient.AddColorStop (0, c1); gradient.AddColorStop (1, c2); g.Source = gradient; g.Paint (); } else if (mode == GradientColorMode.Transparency) { gradient.AddColorStop (0, new Color (0, 0, 0, 1)); gradient.AddColorStop (1, new Color (0, 0, 0, 0)); g.Source = new SurfacePattern (oldsurface); g.Mask (gradient); } g.Restore (); } #endregion public static double Distance (this PointD s, PointD e) { return Magnitude (new PointD (s.X - e.X, s.Y - e.Y)); } public static double Magnitude (this PointD p) { return Math.Sqrt (p.X * p.X + p.Y * p.Y); } public static Cairo.Rectangle ToCairoRectangle (this Gdk.Rectangle r) { return new Cairo.Rectangle (r.X, r.Y, r.Width, r.Height); } public static Cairo.Point Location (this Cairo.Rectangle r) { return new Cairo.Point ((int)r.X, (int)r.Y); } public static Cairo.Rectangle Clamp (this Cairo.Rectangle r) { double x = r.X; double y = r.Y; double w = r.Width; double h = r.Height; if (x < 0) { w -= x; x = 0; } if (y < 0) { h -= y; y = 0; } return new Cairo.Rectangle (x, y, w, h); } public static Gdk.Rectangle ToGdkRectangle (this Cairo.Rectangle r) { return new Gdk.Rectangle ((int)r.X, (int)r.Y, (int)r.Width, (int)r.Height); } public static bool ContainsPoint (this Cairo.Rectangle r, double x, double y) { if (x < r.X || x >= r.X + r.Width) return false; if (y < r.Y || y >= r.Y + r.Height) return false; return true; } public static bool ContainsPoint (this Cairo.Rectangle r, Cairo.PointD point) { return ContainsPoint (r, point.X, point.Y); } public unsafe static Gdk.Pixbuf ToPixbuf (this Cairo.ImageSurface surfSource) { Cairo.ImageSurface surf = surfSource.Clone (); surf.Flush (); ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; int len = surf.Data.Length / 4; for (int i = 0; i < len; i++) { if (dstPtr->A != 0) *dstPtr = (ColorBgra.FromBgra (dstPtr->R, dstPtr->G, dstPtr->B, dstPtr->A)); dstPtr++; } Gdk.Pixbuf pb = new Gdk.Pixbuf (surf.Data, true, 8, surf.Width, surf.Height, surf.Stride); (surf as IDisposable).Dispose (); return pb; } public unsafe static Color GetPixel (this Cairo.ImageSurface surf, int x, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); return new Color (dstPtr->R / 255f, dstPtr->G / 255f, dstPtr->B / 255f, dstPtr->A / 255f); } public unsafe static void SetPixel (this Cairo.ImageSurface surf, int x, int y, Color color) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); dstPtr->R = (byte)(color.R * 255); dstPtr->G = (byte)(color.G * 255); dstPtr->B = (byte)(color.B * 255); dstPtr->A = (byte)(color.A * 255); } public unsafe static void SetPixel (this Cairo.ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, int x, int y, Color color) { ColorBgra* dstPtr = surfDataPtr; dstPtr += (x) + (y * surfWidth); dstPtr->R = (byte)(color.R * 255); dstPtr->G = (byte)(color.G * 255); dstPtr->B = (byte)(color.B * 255); dstPtr->A = (byte)(color.A * 255); } public unsafe static ColorBgra GetColorBgra (this Cairo.ImageSurface surf, int x, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); return *dstPtr; } public unsafe static void SetColorBgra (this Cairo.ImageSurface surf, ColorBgra color, int x, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); *dstPtr = color; } public unsafe static void SetColorBgra (this Cairo.ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, ColorBgra color, int x, int y) { ColorBgra* dstPtr = surfDataPtr; dstPtr += (x) + (y * surfWidth); *dstPtr = color; } public unsafe static ColorBgra GetColorBgra (this Cairo.ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, int x, int y) { ColorBgra* dstPtr = surfDataPtr; dstPtr += (x) + (y * surfWidth); return *dstPtr; } public static ColorBgra ToColorBgra (this Cairo.Color color) { ColorBgra c = new ColorBgra (); c.R = (byte)(color.R * 255); c.G = (byte)(color.G * 255); c.B = (byte)(color.B * 255); c.A = (byte)(color.A * 255); return c; } public static Cairo.Color ToCairoColor (this ColorBgra color) { Cairo.Color c = new Cairo.Color (); c.R = color.R / 255d; c.G = color.G / 255d; c.B = color.B / 255d; c.A = color.A / 255d; return c; } public static Gdk.Color ToGdkColor (this ColorBgra color) { Gdk.Color c = new Gdk.Color (color.R, color.G, color.B); return c; } public static string ToString2 (this Cairo.Color c) { return string.Format ("R: {0} G: {1} B: {2} A: {3}", c.R, c.G, c.B, c.A); } public static string ToString2 (this Cairo.PointD c) { return string.Format ("{0}, {1}", c.X, c.Y); } public static uint ToUint (this Cairo.Color c) { return Pinta.Core.ColorBgra.BgraToUInt32 ((int)(c.B * 255), (int)(c.R * 255), (int)(c.G * 255), (int)(c.A * 255)); } public static Gdk.Size ToSize (this Cairo.Point point) { return new Gdk.Size (point.X, point.Y); } public static ImageSurface Clone (this ImageSurface surf) { ImageSurface newsurf = new ImageSurface (surf.Format, surf.Width, surf.Height); using (Context g = new Context (newsurf)) { g.SetSource (surf); g.Paint (); } return newsurf; } public static unsafe bool ContainsTranslucent (this ImageSurface surf) { bool ret = false; ColorBgra* ptr = (ColorBgra*)surf.DataPtr; int width = surf.Width; for (int x = 0; x < width; x++) for (int y = 0; y < surf.Height; y++) { int a = (int)surf.GetColorBgra (ptr, width, x, y).A; if (a > 0 && a < 255) { Console.WriteLine (surf.GetColorBgra (ptr, width, x, y).ToString ()); ret = true; } } return ret; } public static Path Clone (this Path path) { Path newpath; using (Context g = new Context (PintaCore.Layers.CurrentLayer.Surface)) { g.AppendPath (path); newpath = g.CopyPath (); } return newpath; } public static void Clear (this ImageSurface surface) { using (Context g = new Context (surface)) { g.Operator = Operator.Clear; g.Paint (); } } public static Gdk.Rectangle GetBounds (this Path path) { Rectangle rect; using (Context g = new Context (PintaCore.Layers.CurrentLayer.Surface)) { g.AppendPath (PintaCore.Layers.SelectionPath); // We don't want the bounding box to include a stroke width // of 1, but setting it to 0 returns an empty rectangle. Set // it to a sufficiently small width and rounding takes care of it g.LineWidth = .01; rect = g.StrokeExtents (); } int x = (int)Math.Round (rect.X); int y = (int)Math.Round (rect.Y); int w = (int)Math.Round (rect.Width); int h = (int)Math.Round (rect.Height); return new Gdk.Rectangle (x, y, w - x, h - y); } public static Gdk.Color ToGdkColor (this Cairo.Color color) { Gdk.Color c = new Gdk.Color (); c.Blue = (ushort)(color.B * ushort.MaxValue); c.Red = (ushort)(color.R * ushort.MaxValue); c.Green = (ushort)(color.G * ushort.MaxValue); return c; } public static ushort GdkColorAlpha (this Cairo.Color color) { return (ushort)(color.A * ushort.MaxValue); } public static double GetBottom (this Rectangle rect) { return rect.Y + rect.Height; } public static double GetRight (this Rectangle rect) { return rect.X + rect.Width; } /// /// Determines if the requested pixel coordinate is within bounds. /// /// The x coordinate. /// The y coordinate. /// true if (x,y) is in bounds, false if it's not. public static bool IsVisible (this ImageSurface surf, int x, int y) { return x >= 0 && x < surf.Width && y >= 0 && y < surf.Height; } public static unsafe ColorBgra* GetPointAddressUnchecked (this ImageSurface surf, int x, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); return dstPtr; } public static unsafe ColorBgra* GetPointAddressUnchecked (this ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, int x, int y) { ColorBgra* dstPtr = surfDataPtr; dstPtr += (x) + (y * surfWidth); return dstPtr; } public static unsafe ColorBgra GetPointUnchecked (this ImageSurface surf, int x, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); return *dstPtr; } // This isn't really an extension method, since it doesn't use // the passed in argument, but it's nice to have the same calling // convention as the uncached version. If you can use this one // over the other, it is much faster in tight loops (like effects). public static unsafe ColorBgra GetPointUnchecked (this ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, int x, int y) { ColorBgra* dstPtr = surfDataPtr; dstPtr += (x) + (y * surfWidth); return *dstPtr; } public static unsafe ColorBgra* GetRowAddressUnchecked (this ImageSurface surf, int y) { ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += y * surf.Width; return dstPtr; } public static unsafe ColorBgra* GetRowAddressUnchecked (this ImageSurface surf, ColorBgra* surfDataPtr, int surfWidth, int y) { ColorBgra* dstPtr = surfDataPtr; dstPtr += y * surfWidth; return dstPtr; } public static unsafe ColorBgra* GetPointAddress (this ImageSurface surf, int x, int y) { if (x < 0 || x >= surf.Width) throw new ArgumentOutOfRangeException ("x", "Out of bounds: x=" + x.ToString ()); return surf.GetPointAddressUnchecked (x, y); } public static unsafe ColorBgra* GetPointAddress (this ImageSurface surf, Gdk.Point point) { return surf.GetPointAddress (point.X, point.Y); } public static Gdk.Rectangle GetBounds (this ImageSurface surf) { return new Gdk.Rectangle (0, 0, surf.Width, surf.Height); } public static Gdk.Size GetSize (this ImageSurface surf) { return new Gdk.Size (surf.Width, surf.Height); } /// /// There was a bug in gdk-sharp where this returns incorrect values. /// We will probably have to use this for a long time until every distro /// has an updated gdk. /// public static bool ContainsCorrect (this Gdk.Rectangle r, int x, int y) { return ((((x >= r.Left) && (x < r.Right)) && (y >= r.Top)) && (y < r.Bottom)); } /// /// There was a bug in gdk-sharp where this returns incorrect values. /// We will probably have to use this for a long time until every distro /// has an updated gdk. /// public static bool ContainsCorrect (this Gdk.Rectangle r, Gdk.Point pt) { return r.ContainsCorrect (pt.X, pt.Y); } public static unsafe ColorBgra GetBilinearSample (this ImageSurface src, float x, float y) { return GetBilinearSample (src, (ColorBgra*)src.DataPtr, src.Width, src.Height, x, y); } public static unsafe ColorBgra GetBilinearSample (this ImageSurface src, ColorBgra* srcDataPtr, int srcWidth, int srcHeight, float x, float y) { if (!Utility.IsNumber (x) || !Utility.IsNumber (y)) return ColorBgra.Transparent; float u = x; float v = y; if (u >= 0 && v >= 0 && u < srcWidth && v < srcHeight) { unchecked { int iu = (int)Math.Floor (u); uint sxfrac = (uint)(256 * (u - (float)iu)); uint sxfracinv = 256 - sxfrac; int iv = (int)Math.Floor (v); uint syfrac = (uint)(256 * (v - (float)iv)); uint syfracinv = 256 - syfrac; uint wul = (uint)(sxfracinv * syfracinv); uint wur = (uint)(sxfrac * syfracinv); uint wll = (uint)(sxfracinv * syfrac); uint wlr = (uint)(sxfrac * syfrac); int sx = iu; int sy = iv; int sleft = sx; int sright; if (sleft == (srcWidth - 1)) sright = sleft; else sright = sleft + 1; int stop = sy; int sbottom; if (stop == (srcHeight - 1)) sbottom = stop; else sbottom = stop + 1; ColorBgra* cul = src.GetPointAddressUnchecked (srcDataPtr, srcWidth, sleft, stop); ColorBgra* cur = cul + (sright - sleft); ColorBgra* cll = src.GetPointAddressUnchecked (srcDataPtr, srcWidth, sleft, sbottom); ColorBgra* clr = cll + (sright - sleft); ColorBgra c = ColorBgra.BlendColors4W16IP (*cul, wul, *cur, wur, *cll, wll, *clr, wlr); return c; } } else { return ColorBgra.FromUInt32 (0); } } public static unsafe ColorBgra GetBilinearSampleClamped (this ImageSurface src, float x, float y) { return GetBilinearSampleClamped (src, (ColorBgra*)src.DataPtr, src.Width, src.Height, x, y); } public static unsafe ColorBgra GetBilinearSampleClamped (this ImageSurface src, ColorBgra* srcDataPtr, int srcWidth, int srcHeight, float x, float y) { if (!Utility.IsNumber (x) || !Utility.IsNumber (y)) return ColorBgra.Transparent; float u = x; float v = y; if (u < 0) u = 0; else if (u > srcWidth - 1) u = srcWidth - 1; if (v < 0) v = 0; else if (v > srcHeight - 1) v = srcHeight - 1; unchecked { int iu = (int)Math.Floor (u); uint sxfrac = (uint)(256 * (u - (float)iu)); uint sxfracinv = 256 - sxfrac; int iv = (int)Math.Floor (v); uint syfrac = (uint)(256 * (v - (float)iv)); uint syfracinv = 256 - syfrac; uint wul = (uint)(sxfracinv * syfracinv); uint wur = (uint)(sxfrac * syfracinv); uint wll = (uint)(sxfracinv * syfrac); uint wlr = (uint)(sxfrac * syfrac); int sx = iu; int sy = iv; int sleft = sx; int sright; if (sleft == (srcWidth - 1)) sright = sleft; else sright = sleft + 1; int stop = sy; int sbottom; if (stop == (srcHeight - 1)) sbottom = stop; else sbottom = stop + 1; ColorBgra* cul = src.GetPointAddressUnchecked (srcDataPtr, srcWidth, sleft, stop); ColorBgra* cur = cul + (sright - sleft); ColorBgra* cll = src.GetPointAddressUnchecked (srcDataPtr, srcWidth, sleft, sbottom); ColorBgra* clr = cll + (sright - sleft); ColorBgra c = ColorBgra.BlendColors4W16IP (*cul, wul, *cur, wur, *cll, wll, *clr, wlr); return c; } } public static unsafe ColorBgra GetBilinearSampleWrapped (this ImageSurface src, float x, float y) { return GetBilinearSampleWrapped (src, (ColorBgra*)src.DataPtr, src.Width, src.Height, x, y); } public static unsafe ColorBgra GetBilinearSampleWrapped (this ImageSurface src, ColorBgra* srcDataPtr, int srcWidth, int srcHeight, float x, float y) { if (!Utility.IsNumber (x) || !Utility.IsNumber (y)) return ColorBgra.Transparent; float u = x; float v = y; unchecked { int iu = (int)Math.Floor (u); uint sxfrac = (uint)(256 * (u - (float)iu)); uint sxfracinv = 256 - sxfrac; int iv = (int)Math.Floor (v); uint syfrac = (uint)(256 * (v - (float)iv)); uint syfracinv = 256 - syfrac; uint wul = (uint)(sxfracinv * syfracinv); uint wur = (uint)(sxfrac * syfracinv); uint wll = (uint)(sxfracinv * syfrac); uint wlr = (uint)(sxfrac * syfrac); int sx = iu; if (sx < 0) sx = (srcWidth - 1) + ((sx + 1) % srcWidth); else if (sx > (srcWidth - 1)) sx = sx % srcWidth; int sy = iv; if (sy < 0) sy = (srcHeight - 1) + ((sy + 1) % srcHeight); else if (sy > (srcHeight - 1)) sy = sy % srcHeight; int sleft = sx; int sright; if (sleft == (srcWidth - 1)) sright = 0; else sright = sleft + 1; int stop = sy; int sbottom; if (stop == (srcHeight - 1)) sbottom = 0; else sbottom = stop + 1; ColorBgra cul = src.GetPointUnchecked (srcDataPtr, srcWidth, sleft, stop); ColorBgra cur = src.GetPointUnchecked (srcDataPtr, srcWidth, sright, stop); ColorBgra cll = src.GetPointUnchecked (srcDataPtr, srcWidth, sleft, sbottom); ColorBgra clr = src.GetPointUnchecked (srcDataPtr, srcWidth, sright, sbottom); ColorBgra c = ColorBgra.BlendColors4W16IP (cul, wul, cur, wur, cll, wll, clr, wlr); return c; } } public static void TranslatePointsInPlace (this Point[] Points, int dx, int dy) { for (int i = 0; i < Points.Length; ++i) { Points[i].X += dx; Points[i].Y += dy; } } private struct Edge { public int miny; // int public int maxy; // int public int x; // fixed point: 24.8 public int dxdy; // fixed point: 24.8 public Edge (int miny, int maxy, int x, int dxdy) { this.miny = miny; this.maxy = maxy; this.x = x; this.dxdy = dxdy; } } public static Scanline[] GetScans (this Point[] points) { int ymax = 0; // Build edge table Edge[] edgeTable = new Edge[points.Length]; int edgeCount = 0; for (int i = 0; i < points.Length; ++i) { Point top = points[i]; Point bottom = points[(i + 1) % points.Length]; int dy; if (top.Y > bottom.Y) { Point temp = top; top = bottom; bottom = temp; } dy = bottom.Y - top.Y; if (dy != 0) { edgeTable[edgeCount] = new Edge (top.Y, bottom.Y, top.X << 8, (((bottom.X - top.X) << 8) / dy)); ymax = Math.Max (ymax, bottom.Y); ++edgeCount; } } // Sort edge table by miny for (int i = 0; i < edgeCount - 1; ++i) { int min = i; for (int j = i + 1; j < edgeCount; ++j) if (edgeTable[j].miny < edgeTable[min].miny) min = j; if (min != i) { Edge temp = edgeTable[min]; edgeTable[min] = edgeTable[i]; edgeTable[i] = temp; } } // Compute how many scanlines we will be emitting int scanCount = 0; int activeLow = 0; int activeHigh = 0; int yscan1 = edgeTable[0].miny; // we assume that edgeTable[0].miny == yscan while (activeHigh < edgeCount - 1 && edgeTable[activeHigh + 1].miny == yscan1) { ++activeHigh; } while (yscan1 <= ymax) { // Find new edges where yscan == miny while (activeHigh < edgeCount - 1 && edgeTable[activeHigh + 1].miny == yscan1) { ++activeHigh; } int count = 0; for (int i = activeLow; i <= activeHigh; ++i) { if (edgeTable[i].maxy > yscan1) { ++count; } } scanCount += count / 2; ++yscan1; // Remove edges where yscan == maxy while (activeLow < edgeCount - 1 && edgeTable[activeLow].maxy <= yscan1) { ++activeLow; } if (activeLow > activeHigh) activeHigh = activeLow; } // Allocate scanlines that we'll return Scanline[] scans = new Scanline[scanCount]; // Active Edge Table (AET): it is indices into the Edge Table (ET) int[] active = new int[edgeCount]; int activeCount = 0; int yscan2 = edgeTable[0].miny; int scansIndex = 0; // Repeat until both the ET and AET are empty while (yscan2 <= ymax) { // Move any edges from the ET to the AET where yscan == miny for (int i = 0; i < edgeCount; ++i) { if (edgeTable[i].miny == yscan2) { active[activeCount] = i; ++activeCount; } } // Sort the AET on x for (int i = 0; i < activeCount - 1; ++i) { int min = i; for (int j = i + 1; j < activeCount; ++j) if (edgeTable[active[j]].x < edgeTable[active[min]].x) min = j; if (min != i) { int temp = active[min]; active[min] = active[i]; active[i] = temp; } } // For each pair of entries in the AET, fill in pixels between their info for (int i = 0; i < activeCount; i += 2) { Edge el = edgeTable[active[i]]; Edge er = edgeTable[active[i + 1]]; int startx = (el.x + 0xff) >> 8; // ceil(x) int endx = er.x >> 8; // floor(x) scans[scansIndex] = new Scanline (startx, yscan2, endx - startx); ++scansIndex; } ++yscan2; // Remove from the AET any edge where yscan == maxy int k = 0; while (k < activeCount && activeCount > 0) { if (edgeTable[active[k]].maxy == yscan2) { // remove by shifting everything down one for (int j = k + 1; j < activeCount; ++j) active[j - 1] = active[j]; --activeCount; } else { ++k; } } // Update x for each entry in AET for (int i = 0; i < activeCount; ++i) edgeTable[active[i]].x += edgeTable[active[i]].dxdy; } return scans; } public static Path CreatePolygonPath (this Context g, Point[][] polygonSet) { g.Save (); Point p; for (int i = 0; i < polygonSet.Length; i++) { if (polygonSet[i].Length == 0) continue; p = polygonSet[i][0]; g.MoveTo (p.X, p.Y); for (int j = 1; j < polygonSet[i].Length; j++) { p = polygonSet[i][j]; g.LineTo (p.X, p.Y); } g.ClosePath (); } Path path = g.CopyPath (); g.Restore (); return path; } public static Gdk.Point ToGdkPoint (this PointD point) { return new Gdk.Point ((int)point.X, (int)point.Y); } } } pinta-1.3/Pinta.Core/Extensions/GdkExtensions.cs0000664000175000017500000000626411747026475023066 0ustar00cameroncameron00000000000000// // GdkExtensions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; namespace Pinta.Core { public static class GdkExtensions { // Invalidate the whole thing public static void Invalidate (this Window w) { int width; int height; w.GetSize (out width, out height); w.InvalidateRect (new Rectangle (0, 0, width, height), true); } public static Rectangle GetBounds (this Window w) { int width; int height; w.GetSize (out width, out height); return new Rectangle (0, 0, width, height); } public static Size GetSize (this Window w) { int width; int height; w.GetSize (out width, out height); return new Size (width, height); } public static Cairo.Color ToCairoColor (this Gdk.Color color) { return new Cairo.Color ((double)color.Red / ushort.MaxValue, (double)color.Green / ushort.MaxValue, (double)color.Blue / ushort.MaxValue); } public static Cairo.Color GetCairoColor (this Gtk.ColorSelection selection) { Cairo.Color cairo_color = selection.CurrentColor.ToCairoColor (); return new Cairo.Color (cairo_color.R, cairo_color.G, cairo_color.B, (double)selection.CurrentAlpha / ushort.MaxValue); } public static Gdk.Point Center (this Gdk.Rectangle rect) { return new Gdk.Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2); } public static ColorBgra ToBgraColor (this Gdk.Color color) { return ColorBgra.FromBgr ((byte)(color.Blue * 255 / ushort.MaxValue), (byte)(color.Green * 255 / ushort.MaxValue), (byte)(color.Red * 255 / ushort.MaxValue)); } public static bool IsNotSet (this Point p) { return p.X == int.MinValue && p.Y == int.MinValue; } public static bool IsShiftPressed (this EventButton ev) { return (ev.State & ModifierType.ShiftMask) == ModifierType.ShiftMask; } public static bool IsControlPressed (this EventButton ev) { return (ev.State & ModifierType.ControlMask) == ModifierType.ControlMask; } public static Cairo.PointD GetPoint (this EventButton ev) { return new Cairo.PointD (ev.X, ev.Y); } } } pinta-1.3/Pinta.Core/Extensions/GtkExtensions.cs0000664000175000017500000001416411747026475023104 0ustar00cameroncameron00000000000000// // GtkExtensions.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public static class GtkExtensions { public static void AddWidgetItem (this Toolbar tb, Widget w) { w.Show (); ToolItem ti = new ToolItem (); ti.Add (w); ti.Show (); tb.Insert (ti, tb.NItems); } public static void AppendItem (this Toolbar tb, ToolItem item) { item.Show (); tb.Insert (item, tb.NItems); } public static void AppendSeparator (this Menu menu) { SeparatorMenuItem smi = new SeparatorMenuItem (); smi.Show (); menu.Append (smi); } public static MenuItem AppendItem (this Menu menu, MenuItem item) { menu.Append (item); return item; } public static Gtk.Action AppendAction (this Menu menu, string actionName, string actionLabel, string actionTooltip, string actionIcon) { Gtk.Action action = new Gtk.Action (actionName, actionLabel, actionTooltip, actionIcon); menu.AppendItem ((MenuItem)action.CreateMenuItem ()); return action; } public static Gtk.ToggleAction AppendToggleAction (this Menu menu, string actionName, string actionLabel, string actionTooltip, string actionIcon) { Gtk.ToggleAction action = new Gtk.ToggleAction (actionName, actionLabel, actionTooltip, actionIcon); menu.AppendItem ((MenuItem)action.CreateMenuItem ()); return action; } public static MenuItem AppendMenuItemSorted (this Menu menu, MenuItem item) { var text = item.GetText (); for (int i = 0; i < menu.Children.Length; i++) if (string.Compare (((menu.Children[i]) as MenuItem).GetText (), text) > 0) { menu.Insert (item, i); return item; } menu.AppendItem (item); return item; } public static string GetText (this MenuItem item) { foreach (var child in item.AllChildren) if (child is Label) return (child as Label).Text; return string.Empty; } public static Gtk.ToolItem CreateToolBarItem (this Gtk.Action action) { Gtk.ToolItem item = (Gtk.ToolItem)action.CreateToolItem (); item.TooltipText = action.Label; return item; } public static Gtk.ImageMenuItem CreateAcceleratedMenuItem (this Gtk.Action action, Gdk.Key key, Gdk.ModifierType mods) { ImageMenuItem item = (ImageMenuItem)action.CreateMenuItem (); (item.Child as AccelLabel).AccelWidget = item; item.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (key, mods, AccelFlags.Visible)); return item; } public static Gtk.CheckMenuItem CreateAcceleratedMenuItem (this Gtk.ToggleAction action, Gdk.Key key, Gdk.ModifierType mods) { CheckMenuItem item = (CheckMenuItem)action.CreateMenuItem (); (item.Child as AccelLabel).AccelWidget = item; item.AddAccelerator ("activate", PintaCore.Actions.AccelGroup, new AccelKey (key, mods, AccelFlags.Visible)); return item; } public static Gtk.MenuItem CreateSubMenuItem (this Gtk.Action action) { MenuItem item = (MenuItem)action.CreateMenuItem (); Menu sub_menu = new Menu (); item.Submenu = sub_menu; return item; } /// /// Initialize an image preview widget for the dialog /// public static void AddImagePreview (this FileChooserDialog dialog) { dialog.PreviewWidget = new Image (); dialog.UpdatePreview += new EventHandler (OnUpdateImagePreview); } private const int MaxPreviewWidth = 256; private const int MaxPreviewHeight = 512; /// /// Update the image preview widget of a FileChooserDialog /// /// private static void OnUpdateImagePreview (object sender, EventArgs e) { FileChooserDialog dialog = (FileChooserDialog)sender; Image preview = (Image)dialog.PreviewWidget; if (preview.Pixbuf != null) { preview.Pixbuf.Dispose (); } try { Gdk.Pixbuf pixbuf = null; int imageWidth, imageHeight; string filename = dialog.PreviewFilename; var imageInfo = Gdk.Pixbuf.GetFileInfo (filename, out imageWidth, out imageHeight); if (imageInfo == null) { dialog.PreviewWidgetActive = false; return; } // scale down images that are too large, but don't scale up small images if (imageWidth > MaxPreviewWidth || imageHeight > MaxPreviewHeight) { pixbuf = new Gdk.Pixbuf (filename, MaxPreviewWidth, MaxPreviewHeight, true); } else { pixbuf = new Gdk.Pixbuf (filename); } // add padding so that small images don't cause the dialog to shrink preview.Xpad = (MaxPreviewWidth - pixbuf.Width) / 2; preview.Pixbuf = pixbuf; dialog.PreviewWidgetActive = true; } catch (GLib.GException) { // if the image preview failed, don't show the preview widget dialog.PreviewWidgetActive = false; } } } } pinta-1.3/Pinta.Core/Extensions/OtherExtensions.cs0000664000175000017500000000603611747026475023437 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using Cairo; namespace Pinta.Core { public static class OtherExtensions { public unsafe static Point[][] CreatePolygonSet (this IBitVector2D stencil, Rectangle bounds, int translateX, int translateY) { List polygons = new List (); if (!stencil.IsEmpty) { Point start = bounds.Location (); List pts = new List (); int count = 0; // find all islands while (true) { bool startFound = false; while (true) { if (stencil[start]) { startFound = true; break; } ++start.X; if (start.X >= bounds.GetRight ()) { ++start.Y; start.X = (int)bounds.X; if (start.Y >= bounds.GetBottom ()) { break; } } } if (!startFound) break; pts.Clear (); Point last = new Point (start.X, start.Y + 1); Point curr = new Point (start.X, start.Y); Point next = curr; Point left = new Point (); Point right = new Point (); // trace island outline while (true) { left.X = ((curr.X - last.X) + (curr.Y - last.Y) + 2) / 2 + curr.X - 1; left.Y = ((curr.Y - last.Y) - (curr.X - last.X) + 2) / 2 + curr.Y - 1; right.X = ((curr.X - last.X) - (curr.Y - last.Y) + 2) / 2 + curr.X - 1; right.Y = ((curr.Y - last.Y) + (curr.X - last.X) + 2) / 2 + curr.Y - 1; if (bounds.ContainsPoint (left.X, left.Y) && stencil[left]) { // go left next.X += curr.Y - last.Y; next.Y -= curr.X - last.X; } else if (bounds.ContainsPoint (right.X, right.Y) && stencil[right]) { // go straight next.X += curr.X - last.X; next.Y += curr.Y - last.Y; } else { // turn right next.X -= curr.Y - last.Y; next.Y += curr.X - last.X; } if (Math.Sign (next.X - curr.X) != Math.Sign (curr.X - last.X) || Math.Sign (next.Y - curr.Y) != Math.Sign (curr.Y - last.Y)) { pts.Add (curr); ++count; } last = curr; curr = next; if (next.X == start.X && next.Y == start.Y) break; } Point[] points = pts.ToArray (); Scanline[] scans = points.GetScans (); foreach (Scanline scan in scans) stencil.Invert (scan); points.TranslatePointsInPlace (translateX, translateY); polygons.Add (points); } } return polygons.ToArray (); } } } pinta-1.3/Pinta.Core/Extensions/ToolBarButton.cs0000664000175000017500000000301411747026475023025 0ustar00cameroncameron00000000000000// // ToolBarButton.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarButton : ToolButton { public ToolBarButton (string image, string label, string tooltip) : base (null, label) { Image i = new Image (PintaCore.Resources.GetIcon (image)); i.Show (); this.IconWidget = i; TooltipText = tooltip; Show (); } } } pinta-1.3/Pinta.Core/Extensions/ToolBarComboBox.cs0000664000175000017500000000411011747026475023260 0ustar00cameroncameron00000000000000// // ToolBarComboBox.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarComboBox : ToolItem { public ComboBox ComboBox { get; private set; } public ListStore Model { get; private set; } public ToolBarComboBox (int width, int activeIndex, bool allowEntry, params string[] contents) { if (allowEntry) ComboBox = new ComboBoxEntry (contents); else { Model = new ListStore (typeof(string), typeof (object)); if (contents != null) foreach (string entry in contents) Model.AppendValues (entry, null); ComboBox = CreateComboBox (); ComboBox.Model = Model; } ComboBox.AddEvents ((int)Gdk.EventMask.ButtonPressMask); ComboBox.WidthRequest = width; if (activeIndex >= 0) ComboBox.Active = activeIndex; ComboBox.Show (); Add (ComboBox); Show (); } protected virtual ComboBox CreateComboBox () { return ComboBox.NewText (); } } }pinta-1.3/Pinta.Core/Extensions/ToolBarFontComboBox.cs0000664000175000017500000000421311747026475024113 0ustar00cameroncameron00000000000000// // ToolBarFontComboBox.cs // // Author: // Olivier Dufour // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarFontComboBox : ToolBarComboBox { private CellRendererText cell_renderer; public ToolBarFontComboBox (int width, int activeIndex, params string[] contents) : base (width, activeIndex, false, contents) { } protected override ComboBox CreateComboBox () { var box = new ComboBox (); cell_renderer = new CellRendererText (); box.PackStart (cell_renderer, false); box.AddAttribute (cell_renderer, "text", 0); box.SetCellDataFunc (cell_renderer, new CellLayoutDataFunc (RenderFont)); return box; } private void RenderFont (CellLayout layout, CellRenderer renderer, TreeModel model, TreeIter iter) { string fontName = (string)model.GetValue (iter, 0); CellRendererText cell = renderer as CellRendererText; cell.Text = fontName; cell.Font = string.Format ("{0} 10", fontName); cell.Family = fontName; } } } pinta-1.3/Pinta.Core/Extensions/ToolBarImage.cs0000664000175000017500000000264711747026475022607 0ustar00cameroncameron00000000000000// // ToolBarImage.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarImage : ToolItem { public ToolBarImage (string image) { Image i = new Image (PintaCore.Resources.GetIcon (image)); i.Show (); Add (i); Show (); } } } pinta-1.3/Pinta.Core/Extensions/ToolBarLabel.cs0000664000175000017500000000276611747026475022606 0ustar00cameroncameron00000000000000// // ToolBarLabel.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarLabel : ToolItem { public ToolBarLabel (string text) { Label l = new Label (text); l.Show (); Add (l); Show (); } public string Text { get { return (Child as Label).Text; } set { (Child as Label).Text = value; } } } } pinta-1.3/Pinta.Core/Extensions/ToolBarSlider.cs0000664000175000017500000000314511747026475023001 0ustar00cameroncameron00000000000000// // ToolBarLabel.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarSlider : ToolItem { private HScale hscale; public ToolBarSlider (int min, int max, int step, int value) { hscale = new HScale (min, max, step); hscale.WidthRequest = 150; hscale.Value = value; hscale.ValuePos = PositionType.Left; hscale.Show (); Add (hscale); Show (); } public HScale Slider { get { return hscale; } } } } pinta-1.3/Pinta.Core/Extensions/ToolBarToggleButton.cs0000664000175000017500000000302211747026475024166 0ustar00cameroncameron00000000000000// // ToolBarButton.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ToolBarToggleButton : ToggleToolButton { public ToolBarToggleButton (string image, string label, string tooltip) : base () { Image i = new Image (PintaCore.Resources.GetIcon (image)); i.Show (); this.IconWidget = i; TooltipText = tooltip; Show (); } } }pinta-1.3/Pinta.Core/HistoryItems/0000775000175000017500000000000011747026475020246 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/HistoryItems/AddLayerHistoryItem.cs0000664000175000017500000000366611747026475024476 0ustar00cameroncameron00000000000000// // AddLayerHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class AddLayerHistoryItem : BaseHistoryItem { private int layer_index; private Layer layer; public AddLayerHistoryItem (string icon, string text, int newLayerIndex) : base (icon, text) { layer_index = newLayerIndex; } public override void Undo () { // Store the layer for "redo" layer = PintaCore.Layers[layer_index]; PintaCore.Layers.DeleteLayer (layer_index, false); } public override void Redo () { PintaCore.Layers.Insert (layer, layer_index); // Make new layer the current layer PintaCore.Layers.SetCurrentLayer (layer); layer = null; } public override void Dispose () { if (layer != null) (layer.Surface as IDisposable).Dispose (); } } } pinta-1.3/Pinta.Core/HistoryItems/BaseHistoryItem.cs0000664000175000017500000000374511747026475023661 0ustar00cameroncameron00000000000000// // BaseHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public enum HistoryItemState { Undo, Redo } public class BaseHistoryItem : IDisposable { public string Icon { get; set; } public string Text { get; set; } public HistoryItemState State { get; set; } public TreeIter Id; public virtual bool CausesDirty { get { return true; } } public BaseHistoryItem () { } public BaseHistoryItem (string icon, string text) { Icon = icon; Text = text; State = HistoryItemState.Undo; } public BaseHistoryItem (string icon, string text, HistoryItemState state) { Icon = icon; Text = text; State = state; } public virtual void Undo () { } public virtual void Redo () { } #region IDisposable Members public virtual void Dispose () { } #endregion } } pinta-1.3/Pinta.Core/HistoryItems/ClippedSurfaceHistoryItem.cs0000664000175000017500000000516311747026475025674 0ustar00cameroncameron00000000000000// // ClippedSurfaceHistoryItem.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; namespace Pinta.Core { public class ClippedSurfaceHistoryItem : BaseHistoryItem { IrregularSurface old_surface; int layer_index; public ClippedSurfaceHistoryItem (string icon, string text, IrregularSurface oldSurface, int layerIndex) : base (icon, text) { old_surface = (IrregularSurface)oldSurface.Clone(); layer_index = layerIndex; } public ClippedSurfaceHistoryItem (string icon, string text) : base (icon, text) { } public override void Undo () { // Grab the original surface IrregularSurface new_surf = new IrregularSurface(PintaCore.Layers[layer_index].Surface, old_surface.Region); // Undo to the "old" surface old_surface.Draw(PintaCore.Layers[layer_index].Surface); // Store the original surface for Redo old_surface = new_surf; PintaCore.Workspace.Invalidate (old_surface.Region.Clipbox); } public override void Redo () { // Grab the original surface IrregularSurface new_surf = new IrregularSurface(PintaCore.Layers[layer_index].Surface, old_surface.Region); // Undo to the "old" surface old_surface.Draw(PintaCore.Layers[layer_index].Surface); // Store the original surface for Redo old_surface = new_surf; PintaCore.Workspace.Invalidate (old_surface.Region.Clipbox); } public override void Dispose () { // Free up native surface (old_surface as IDisposable).Dispose (); } } }pinta-1.3/Pinta.Core/HistoryItems/CompoundHistoryItem.cs0000664000175000017500000000437611747026475024574 0ustar00cameroncameron00000000000000// // CompoundHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; namespace Pinta.Core { public class CompoundHistoryItem : BaseHistoryItem { protected List history_stack = new List (); public CompoundHistoryItem () : base () { } public CompoundHistoryItem (string icon, string text) : base (icon, text) { } public void Push (BaseHistoryItem item) { history_stack.Add (item); } public override void Undo () { foreach (var item in history_stack) item.Undo (); } public override void Redo () { // We want to redo the actions in the // opposite order than the undo order for (int i = history_stack.Count - 1; i >= 0; i--) history_stack[i].Redo (); } public override void Dispose () { foreach (var item in history_stack) item.Dispose (); } public void TakeSnapshotOfImage () { foreach (Layer item in PintaCore.Workspace.ActiveDocument.Layers) history_stack.Add (new SimpleHistoryItem (string.Empty, string.Empty, item.Surface.Clone (), PintaCore.Layers.IndexOf (item))); } } } pinta-1.3/Pinta.Core/HistoryItems/DeleteLayerHistoryItem.cs0000664000175000017500000000373511747026475025205 0ustar00cameroncameron00000000000000// // DeleteLayerHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class DeleteLayerHistoryItem : BaseHistoryItem { private int layer_index; private Layer layer; public DeleteLayerHistoryItem (string icon, string text, Layer layer, int layerIndex) : base (icon, text) { layer_index = layerIndex; this.layer = layer; } public override void Undo () { PintaCore.Layers.Insert (layer, layer_index); // Make new layer the current layer PintaCore.Layers.SetCurrentLayer (layer); layer = null; } public override void Redo () { // Store the layer for "undo" layer = PintaCore.Layers[layer_index]; PintaCore.Layers.DeleteLayer (layer_index, false); } public override void Dispose () { if (layer != null) (layer.Surface as IDisposable).Dispose (); } } } pinta-1.3/Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs0000664000175000017500000000631411747026475025407 0ustar00cameroncameron00000000000000// // FinishPixelsHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Mono.Unix; namespace Pinta.Core { public class FinishPixelsHistoryItem : BaseHistoryItem { private ImageSurface old_selection_layer; private PointD old_offset; private ImageSurface old_surface; public override bool CausesDirty { get { return false; } } public FinishPixelsHistoryItem () { Text = Catalog.GetString ("Finish Pixels"); Icon = "Tools.Move.png"; } public override void Undo () { PintaCore.Layers.ShowSelectionLayer = true; PointD swap_offset = PintaCore.Layers.SelectionLayer.Offset; ImageSurface swap_surf = PintaCore.Layers.CurrentLayer.Surface; ImageSurface swap_sel = PintaCore.Layers.SelectionLayer.Surface; PintaCore.Layers.SelectionLayer.Surface = old_selection_layer; PintaCore.Layers.SelectionLayer.Offset = old_offset; PintaCore.Layers.CurrentLayer.Surface = old_surface; old_offset = swap_offset; old_surface = swap_surf; old_selection_layer = swap_sel; PintaCore.Workspace.Invalidate (); PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); } public override void Redo () { PointD swap_offset = PintaCore.Layers.SelectionLayer.Offset; ImageSurface swap_surf = PintaCore.Layers.CurrentLayer.Surface.Clone (); ImageSurface swap_sel = PintaCore.Layers.SelectionLayer.Surface; PintaCore.Layers.CurrentLayer.Surface = old_surface; PintaCore.Layers.SelectionLayer.Surface = old_selection_layer; PintaCore.Layers.SelectionLayer.Offset = old_offset; old_surface = swap_surf; old_selection_layer = swap_sel; old_offset = swap_offset; PintaCore.Layers.DestroySelectionLayer (); PintaCore.Workspace.Invalidate (); } public override void Dispose () { if (old_surface != null) (old_surface as IDisposable).Dispose (); } public void TakeSnapshot () { old_selection_layer = PintaCore.Layers.SelectionLayer.Surface.Clone (); old_offset = PintaCore.Layers.SelectionLayer.Offset; old_surface = PintaCore.Layers.CurrentLayer.Surface.Clone (); } } } pinta-1.3/Pinta.Core/HistoryItems/InvertHistoryItem.cs0000664000175000017500000001200511747026475024243 0ustar00cameroncameron00000000000000// // InvertHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Mono.Unix; namespace Pinta.Core { // These are actions that can be undone by simply repeating // the action: invert colors, rotate 180 degrees, etc public class InvertHistoryItem : BaseHistoryItem { private InvertType type; private int layer_index; public InvertHistoryItem (InvertType type) { this.type = type; switch (type) { // Invert is disabled because it creates a new history item //case InvertType.InvertColors: // Text = Mono.Unix.Catalog.GetString ("Invert Colors"); // Icon = "Menu.Adjustments.InvertColors.png"; // break; case InvertType.Rotate180: Text = Catalog.GetString ("Rotate 180°"); Icon = "Menu.Image.Rotate180CW.png"; break; case InvertType.FlipHorizontal: Text = Catalog.GetString ("Flip Image Horizontal"); Icon = "Menu.Image.FlipHorizontal.png"; break; case InvertType.FlipVertical: Text = Catalog.GetString ("Flip Image Vertical"); Icon = "Menu.Image.FlipVertical.png"; break; case InvertType.Rotate90CW: Text = Catalog.GetString ("Rotate 90° Clockwise"); Icon = "Menu.Image.Rotate90CW.png"; break; case InvertType.Rotate90CCW: Text = Catalog.GetString ("Rotate 90° Counter-Clockwise"); Icon = "Menu.Image.Rotate90CCW.png"; break; } } public InvertHistoryItem (InvertType type, int layerIndex) { this.type = type; this.layer_index = layerIndex; switch (type) { case InvertType.FlipLayerHorizontal: Text = Catalog.GetString ("Flip Layer Horizontal"); Icon = "Menu.Image.FlipHorizontal.png"; break; case InvertType.FlipLayerVertical: Text = Catalog.GetString ("Flip Layer Vertical"); Icon = "Menu.Image.FlipVertical.png"; break; } } public override void Undo () { switch (type) { //case InvertType.InvertColors: // PintaCore.Actions.Adjustments.InvertColors.Activate (); // break; case InvertType.Rotate180: PintaCore.Layers.RotateImage180 (); break; case InvertType.FlipHorizontal: PintaCore.Layers.FlipImageHorizontal (); break; case InvertType.FlipVertical: PintaCore.Layers.FlipImageVertical (); break; case InvertType.Rotate90CW: PintaCore.Layers.RotateImageCCW (); break; case InvertType.Rotate90CCW: PintaCore.Layers.RotateImageCW (); break; case InvertType.FlipLayerHorizontal: PintaCore.Workspace.ActiveDocument.Layers[layer_index].FlipHorizontal (); PintaCore.Workspace.Invalidate (); break; case InvertType.FlipLayerVertical: PintaCore.Workspace.ActiveDocument.Layers[layer_index].FlipVertical (); PintaCore.Workspace.Invalidate (); break; } } public override void Redo () { switch (type) { //case InvertType.InvertColors: // PintaCore.Actions.Adjustments.InvertColors.Activate (); // break; case InvertType.Rotate180: PintaCore.Layers.RotateImage180 (); break; case InvertType.FlipHorizontal: PintaCore.Layers.FlipImageHorizontal (); break; case InvertType.FlipVertical: PintaCore.Layers.FlipImageVertical (); break; case InvertType.Rotate90CW: PintaCore.Layers.RotateImageCW (); break; case InvertType.Rotate90CCW: PintaCore.Layers.RotateImageCCW (); break; case InvertType.FlipLayerHorizontal: PintaCore.Workspace.ActiveDocument.Layers[layer_index].FlipHorizontal (); PintaCore.Workspace.Invalidate (); break; case InvertType.FlipLayerVertical: PintaCore.Workspace.ActiveDocument.Layers[layer_index].FlipVertical (); PintaCore.Workspace.Invalidate (); break; } } } public enum InvertType { InvertColors, Rotate180, FlipHorizontal, FlipVertical, Rotate90CW, Rotate90CCW, FlipLayerHorizontal, FlipLayerVertical } } pinta-1.3/Pinta.Core/HistoryItems/MovePixelsHistoryItem.cs0000664000175000017500000000627011747026475025076 0ustar00cameroncameron00000000000000// // MovePixelsHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; namespace Pinta.Core { public class MovePixelsHistoryItem : BaseHistoryItem { // There's 2 types of move pixel operations to handle // - The first move "lifts" the selection up into a temporary layer // and then moves it to the new spot // - Subsequent moves only move the selection // around the temporary layer private Document doc; private Path old_path; private PointD old_offset; private ImageSurface old_surface; private int layer_index; private bool lifted; // Whether this item has lift private bool is_lifted; // Track state of undo/redo lift public MovePixelsHistoryItem (string icon, string text, Document document) : base (icon, text) { doc = document; } public override void Undo () { Swap (); } public override void Redo () { Swap (); } public override void Dispose () { if (old_path != null) (old_path as IDisposable).Dispose (); if (old_surface != null) (old_surface as IDisposable).Dispose (); } private void Swap () { Path swap_path = PintaCore.Layers.SelectionPath; PointD swap_offset = PintaCore.Layers.SelectionLayer.Offset; PintaCore.Layers.SelectionPath = old_path; PintaCore.Layers.SelectionLayer.Offset = old_offset; old_path = swap_path; old_offset = swap_offset; if (lifted) { // Grab the original surface ImageSurface surf = PintaCore.Layers[layer_index].Surface; // Undo to the "old" surface PintaCore.Layers[layer_index].Surface = old_surface; // Store the original surface for Redo old_surface = surf; is_lifted = !is_lifted; doc.ShowSelectionLayer = is_lifted; } PintaCore.Workspace.Invalidate (); } public void TakeSnapshot (bool lift) { lifted = lift; is_lifted = true; if (lift) { layer_index = doc.CurrentLayerIndex; old_surface = doc.CurrentLayer.Surface.Clone (); } old_path = PintaCore.Layers.SelectionPath.Clone (); old_offset = PintaCore.Layers.SelectionLayer.Offset; } } } pinta-1.3/Pinta.Core/HistoryItems/PasteHistoryItem.cs0000664000175000017500000000564611747026475024065 0ustar00cameroncameron00000000000000// // PasteHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Mono.Unix; using Gtk; namespace Pinta.Core { public class PasteHistoryItem : BaseHistoryItem { private Gdk.Pixbuf paste_image; private Path old_path; private bool old_show_selection; public override bool CausesDirty { get { return true; } } public PasteHistoryItem (Gdk.Pixbuf pasteImage, Path oldPath, bool oldShowSelection) { Text = Catalog.GetString ("Paste"); Icon = Stock.Paste; paste_image = pasteImage; old_path = oldPath; old_show_selection = oldShowSelection; } public override void Redo () { Document doc = PintaCore.Workspace.ActiveDocument; // Copy the paste to the temp layer doc.CreateSelectionLayer (); doc.ShowSelectionLayer = true; Path p; using (Cairo.Context g = new Cairo.Context (doc.SelectionLayer.Surface)) { g.DrawPixbuf (paste_image, new Cairo.Point (0, 0)); p = g.CreateRectanglePath (new Rectangle (0, 0, paste_image.Width, paste_image.Height)); } Swap (); PintaCore.Workspace.Invalidate (); PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); } public override void Undo () { Swap (); PintaCore.Layers.DestroySelectionLayer (); PintaCore.Workspace.Invalidate (); } public override void Dispose () { if (paste_image != null) (paste_image as IDisposable).Dispose (); } private void Swap () { // Swap the selection paths, and whether the // selection path should be visible Document doc = PintaCore.Workspace.ActiveDocument; Path swap_path = doc.SelectionPath; bool swap_show_sel = doc.ShowSelection; doc.SelectionPath = old_path; doc.ShowSelection = old_show_selection; old_path = swap_path; old_show_selection = swap_show_sel; } } } pinta-1.3/Pinta.Core/HistoryItems/ResizeHistoryItem.cs0000664000175000017500000000562411747026475024246 0ustar00cameroncameron00000000000000// // ResizeHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Mono.Unix; using Gdk; namespace Pinta.Core { public class ResizeHistoryItem : CompoundHistoryItem { private Size old_size; public ResizeHistoryItem (Size oldSize) : base () { old_size = oldSize; Icon = "Menu.Image.Resize.png"; Text = Catalog.GetString ("Resize Image"); } public Cairo.Path RestorePath { get; set; } public override void Undo () { // maintain the current scaling setting after the operation double scale = PintaCore.Workspace.Scale; Size swap = PintaCore.Workspace.ImageSize; PintaCore.Workspace.ImageSize = old_size; PintaCore.Workspace.CanvasSize = old_size; old_size = swap; base.Undo (); if (RestorePath != null) { Cairo.Path old = PintaCore.Layers.SelectionPath; PintaCore.Layers.SelectionPath = RestorePath.Clone (); if (old != null) (old as IDisposable).Dispose (); PintaCore.Layers.ShowSelection = true; } else { PintaCore.Layers.ResetSelectionPath (); } PintaCore.Workspace.Invalidate (); PintaCore.Workspace.Scale = scale; } public override void Redo () { // maintain the current scaling setting after the operation double scale = PintaCore.Workspace.Scale; Size swap = PintaCore.Workspace.ImageSize; PintaCore.Workspace.ImageSize = old_size; PintaCore.Workspace.CanvasSize = old_size; old_size = swap; base.Redo (); PintaCore.Layers.ResetSelectionPath (); PintaCore.Workspace.Invalidate (); PintaCore.Workspace.Scale = scale; } public override void Dispose () { base.Dispose (); if (RestorePath != null) { (RestorePath as IDisposable).Dispose (); RestorePath = null; } } } } pinta-1.3/Pinta.Core/HistoryItems/SelectionHistoryItem.cs0000664000175000017500000000426211747026475024727 0ustar00cameroncameron00000000000000// // SelectionHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; namespace Pinta.Core { public class SelectionHistoryItem : BaseHistoryItem { private Path old_path; private bool show_selection; public override bool CausesDirty { get { return false; } } public SelectionHistoryItem (string icon, string text) : base (icon, text) { } public override void Undo () { Swap (); } public override void Redo () { Swap (); } public override void Dispose () { if (old_path != null) (old_path as IDisposable).Dispose (); } private void Swap () { Path swap_path = PintaCore.Layers.SelectionPath; bool swap_show = PintaCore.Layers.ShowSelection; PintaCore.Layers.SelectionPath = old_path; PintaCore.Layers.ShowSelection = show_selection; old_path = swap_path; show_selection = swap_show; PintaCore.Workspace.Invalidate (); } public void TakeSnapshot () { old_path = PintaCore.Layers.SelectionPath.Clone (); show_selection = PintaCore.Layers.ShowSelection; } } } pinta-1.3/Pinta.Core/HistoryItems/SimpleHistoryItem.cs0000664000175000017500000000465211747026475024236 0ustar00cameroncameron00000000000000// // SimpleHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; namespace Pinta.Core { public class SimpleHistoryItem : BaseHistoryItem { ImageSurface old_surface; int layer_index; public SimpleHistoryItem (string icon, string text, ImageSurface oldSurface, int layerIndex) : base (icon, text) { old_surface = oldSurface; layer_index = layerIndex; } public SimpleHistoryItem (string icon, string text) : base (icon, text) { } public override void Undo () { Swap (); } public override void Redo () { Swap (); } private void Swap () { // Grab the original surface ImageSurface surf = PintaCore.Layers[layer_index].Surface; // Undo to the "old" surface PintaCore.Layers[layer_index].Surface = old_surface; // Store the original surface for Redo old_surface = surf; PintaCore.Workspace.Invalidate (); } public override void Dispose () { // Free up native surface (old_surface as IDisposable).Dispose (); } public void TakeSnapshotOfLayer (int layerIndex) { layer_index = layerIndex; old_surface = PintaCore.Layers[layerIndex].Surface.Clone (); } public void TakeSnapshotOfLayer (Layer layer) { layer_index = PintaCore.Layers.IndexOf (layer); old_surface = layer.Surface.Clone (); } } } pinta-1.3/Pinta.Core/HistoryItems/SwapLayersHistoryItem.cs0000664000175000017500000000433311747026475025073 0ustar00cameroncameron00000000000000// // SwapLayersHistoryItem.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { // These are actions that can be undone by simply repeating // the action: invert colors, rotate 180 degrees, etc public class SwapLayersHistoryItem : BaseHistoryItem { private int layer_index_1; private int layer_index_2; public SwapLayersHistoryItem (string icon, string text, int layer1, int layer2) : base (icon, text) { layer_index_1 = layer1; layer_index_2 = layer2; } public override void Undo () { Swap (); } public override void Redo () { Swap (); } private void Swap () { int selected = PintaCore.Layers.CurrentLayerIndex; int l1 = Math.Min (layer_index_1, layer_index_2); int l2 = Math.Max (layer_index_1, layer_index_2); Layer layer1 = PintaCore.Layers[l1]; Layer layer2 = PintaCore.Layers[l2]; PintaCore.Layers.DeleteLayer (l1, false); PintaCore.Layers.DeleteLayer (l2 - 1, false); PintaCore.Layers.Insert (layer2, l1); PintaCore.Layers.Insert (layer1, l2); PintaCore.Layers.SetCurrentLayer (selected); } } } pinta-1.3/Pinta.Core/HistoryItems/UpdateLayerPropertiesHistoryItem.cs0000664000175000017500000000426511747026475027301 0ustar00cameroncameron00000000000000// // UpdateLayerPropertiesHistoryItem.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public class UpdateLayerPropertiesHistoryItem : BaseHistoryItem { int layer_index; LayerProperties initial_properties; LayerProperties updated_properties; public UpdateLayerPropertiesHistoryItem ( string icon, string text, int layerIndex, LayerProperties initialProperties, LayerProperties updatedProperties) : base (icon, text) { layer_index = layerIndex; initial_properties = initialProperties; updated_properties = updatedProperties; } public override void Undo () { var layer = PintaCore.Layers[layer_index]; layer.Opacity = initial_properties.Opacity; layer.Hidden = initial_properties.Hidden; layer.Name = initial_properties.Name; } public override void Redo () { var layer = PintaCore.Layers[layer_index]; layer.Opacity = updated_properties.Opacity; layer.Hidden = updated_properties.Hidden; layer.Name = updated_properties.Name; } public override void Dispose () { } } } pinta-1.3/Pinta.Core/ImageFormats/0000775000175000017500000000000011747026475020161 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/ImageFormats/FormatDescriptor.cs0000664000175000017500000000523311747026475024002 0ustar00cameroncameron00000000000000// // FormatDescriptor.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Text; using Gtk; using Mono.Unix; namespace Pinta.Core { public sealed class FormatDescriptor: IComparable { public string Name { get; private set; } public string[] Extensions { get; private set; } public IImageImporter Importer { get; private set; } public IImageExporter Exporter { get; private set; } public FileFilter Filter { get; private set; } public FormatDescriptor (string name, string displayPrefix, string[] extensions, IImageImporter importer, IImageExporter exporter) { if (name == null || extensions == null || importer == null) { throw new ArgumentNullException ("Format descriptor is initialized incorrectly"); } this.Name = name; this.Extensions = extensions; this.Importer = importer; this.Exporter = exporter; FileFilter ff = new FileFilter (); StringBuilder formatNames = new StringBuilder (); foreach (string ext in extensions) { if (formatNames.Length > 0) formatNames.Append (", "); string wildcard = string.Format ("*.{0}", ext); ff.AddPattern (wildcard); formatNames.Append (wildcard); } ff.Name = string.Format (Catalog.GetString ("{0} image ({1})"), displayPrefix, formatNames); this.Filter = ff; } public bool IsReadOnly () { return Exporter == null; } public int CompareTo (FormatDescriptor other) { // Ordering by format name (such as "jpeg") return Name.CompareTo (other.Name); } } } pinta-1.3/Pinta.Core/ImageFormats/GdkPixbufFormat.cs0000664000175000017500000000477611747026475023562 0ustar00cameroncameron00000000000000// // GdkPixbufFormat.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.IO; using Gdk; namespace Pinta.Core { public class GdkPixbufFormat: IImageImporter, IImageExporter { private string filetype; public GdkPixbufFormat(string filetype) { this.filetype = filetype; } public void Import (string fileName) { Pixbuf bg; // Handle any EXIF orientation flags using (var fs = new FileStream (fileName, FileMode.Open, FileAccess.Read)) bg = new Pixbuf (fs); bg = bg.ApplyEmbeddedOrientation (); Size imagesize = new Size (bg.Width, bg.Height); Document doc = PintaCore.Workspace.CreateAndActivateDocument (fileName, imagesize); doc.HasFile = true; doc.ImageSize = imagesize; doc.Workspace.CanvasSize = imagesize; Layer layer = doc.AddNewLayer (Path.GetFileName (fileName)); using (Cairo.Context g = new Cairo.Context (layer.Surface)) { CairoHelper.SetSourcePixbuf (g, bg, 0, 0); g.Paint (); } bg.Dispose (); } protected virtual void DoSave (Pixbuf pb, string fileName, string fileType) { pb.Save (fileName, fileType); } public void Export (Document document, string fileName) { Cairo.ImageSurface surf = document.GetFlattenedImage (); Pixbuf pb = surf.ToPixbuf (); DoSave(pb, fileName, filetype); (pb as IDisposable).Dispose (); (surf as IDisposable).Dispose (); } } } pinta-1.3/Pinta.Core/ImageFormats/IImageExporter.cs0000664000175000017500000000250511747026475023376 0ustar00cameroncameron00000000000000// // ImageExporter.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public interface IImageExporter { void Export (Document document, string fileName); } } pinta-1.3/Pinta.Core/ImageFormats/IImageImporter.cs0000664000175000017500000000246211747026475023371 0ustar00cameroncameron00000000000000// // ImageImporter.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Core { public interface IImageImporter { void Import (string fileName); } } pinta-1.3/Pinta.Core/ImageFormats/JpegFormat.cs0000664000175000017500000000321011747026475022542 0ustar00cameroncameron00000000000000// // JpegFormat.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.IO; using Gdk; namespace Pinta.Core { public class JpegFormat: GdkPixbufFormat { public JpegFormat() : base ("jpeg") { } protected override void DoSave (Pixbuf pb, string fileName, string fileType) { int level = PintaCore.Actions.File.RaiseModifyCompression (85); if (level != -1) pb.Savev (fileName, fileType, new string[] { "quality", null }, new string[] { level.ToString(), null }); } } } pinta-1.3/Pinta.Core/ImageFormats/OraFormat.cs0000664000175000017500000001631511747026475022410 0ustar00cameroncameron00000000000000// // OraFormat.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.IO; using System.Xml; using Gtk; using Gdk; using Cairo; using ICSharpCode.SharpZipLib.Zip; using System.Collections.Generic; namespace Pinta.Core { public class OraFormat: IImageImporter, IImageExporter { private const int ThumbMaxSize = 256; public void Import (string fileName) { ZipFile file = new ZipFile (fileName); XmlDocument stackXml = new XmlDocument (); stackXml.Load (file.GetInputStream (file.GetEntry ("stack.xml"))); XmlElement imageElement = stackXml.DocumentElement; int width = int.Parse (imageElement.GetAttribute ("w")); int height = int.Parse (imageElement.GetAttribute ("h")); Size imagesize = new Size (width, height); Document doc = PintaCore.Workspace.CreateAndActivateDocument (fileName, imagesize); doc.HasFile = true; XmlElement stackElement = (XmlElement) stackXml.GetElementsByTagName ("stack")[0]; XmlNodeList layerElements = stackElement.GetElementsByTagName ("layer"); if (layerElements.Count == 0) throw new XmlException ("No layers found in OpenRaster file"); doc.ImageSize = imagesize; doc.Workspace.CanvasSize = imagesize; for (int i = 0; i < layerElements.Count; i++) { XmlElement layerElement = (XmlElement) layerElements[i]; int x = int.Parse (GetAttribute (layerElement, "x", "0")); int y = int.Parse (GetAttribute (layerElement, "y", "0")); string name = GetAttribute (layerElement, "name", string.Format ("Layer {0}", i)); try { // Write the file to a temporary file first // Fixes a bug when running on .Net ZipEntry zf = file.GetEntry (layerElement.GetAttribute ("src")); Stream s = file.GetInputStream (zf); string tmp_file = System.IO.Path.GetTempFileName (); using (Stream stream_out = File.Open (tmp_file, FileMode.OpenOrCreate)) { byte[] buffer = new byte[2048]; while (true) { int len = s.Read (buffer, 0, buffer.Length); if (len > 0) stream_out.Write (buffer, 0, len); else break; } } Layer layer = doc.CreateLayer (name); doc.Insert (layer, 0); layer.Opacity = double.Parse (GetAttribute (layerElement, "opacity", "1"), GetFormat ()); using (var fs = new FileStream (tmp_file, FileMode.Open)) using (Pixbuf pb = new Pixbuf (fs)) { using (Context g = new Context (layer.Surface)) { CairoHelper.SetSourcePixbuf (g, pb, x, y); g.Paint (); } } try { File.Delete (tmp_file); } catch { } } catch { MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Could not import layer \"{0}\" from {0}", name, file); md.Title = "Error"; md.Run (); md.Destroy (); } } file.Close (); } private static IFormatProvider GetFormat () { return System.Globalization.CultureInfo.CreateSpecificCulture ("en"); } private static string GetAttribute (XmlElement element, string attribute, string defValue) { string ret = element.GetAttribute (attribute); return string.IsNullOrEmpty (ret) ? defValue : ret; } private Size GetThumbDimensions (int width, int height) { if (width <= ThumbMaxSize && height <= ThumbMaxSize) return new Size (width, height); if (width > height) return new Size (ThumbMaxSize, (int) ((double)height / width * ThumbMaxSize)); else return new Size ((int) ((double)width / height * ThumbMaxSize), ThumbMaxSize); } private byte[] GetLayerXmlData (List layers) { MemoryStream ms = new MemoryStream (); XmlTextWriter writer = new XmlTextWriter (ms, System.Text.Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartElement ("image"); writer.WriteAttributeString ("w", layers[0].Surface.Width.ToString ()); writer.WriteAttributeString ("h", layers[0].Surface.Height.ToString ()); writer.WriteStartElement ("stack"); writer.WriteAttributeString ("opacity", "1"); writer.WriteAttributeString ("name", "root"); // ORA stores layers top to bottom for (int i = layers.Count - 1; i >= 0; i--) { writer.WriteStartElement ("layer"); writer.WriteAttributeString ("opacity", layers[i].Hidden ? "0" : string.Format (GetFormat (), "{0:0.00}", layers[i].Opacity)); writer.WriteAttributeString ("name", layers[i].Name); writer.WriteAttributeString ("src", "data/layer" + i.ToString () + ".png"); writer.WriteEndElement (); } writer.WriteEndElement (); // stack writer.WriteEndElement (); // image writer.Close (); return ms.ToArray (); } public void Export (Document document, string fileName) { ZipOutputStream stream = new ZipOutputStream (new FileStream (fileName, FileMode.Create)); ZipEntry mimetype = new ZipEntry ("mimetype"); mimetype.CompressionMethod = CompressionMethod.Stored; stream.PutNextEntry (mimetype); byte[] databytes = System.Text.Encoding.ASCII.GetBytes ("image/openraster"); stream.Write (databytes, 0, databytes.Length); for (int i = 0; i < document.Layers.Count; i++) { Pixbuf pb = document.Layers[i].Surface.ToPixbuf (); byte[] buf = pb.SaveToBuffer ("png"); (pb as IDisposable).Dispose (); stream.PutNextEntry (new ZipEntry ("data/layer" + i.ToString () + ".png")); stream.Write (buf, 0, buf.Length); } stream.PutNextEntry (new ZipEntry ("stack.xml")); databytes = GetLayerXmlData (document.Layers); stream.Write (databytes, 0, databytes.Length); ImageSurface flattened = document.GetFlattenedImage (); Pixbuf flattenedPb = flattened.ToPixbuf (); Size newSize = GetThumbDimensions (flattenedPb.Width, flattenedPb.Height); Pixbuf thumb = flattenedPb.ScaleSimple (newSize.Width, newSize.Height, InterpType.Bilinear); stream.PutNextEntry (new ZipEntry ("Thumbnails/thumbnail.png")); databytes = thumb.SaveToBuffer ("png"); stream.Write (databytes, 0, databytes.Length); (flattened as IDisposable).Dispose(); (flattenedPb as IDisposable).Dispose(); (thumb as IDisposable).Dispose(); stream.Close (); } } } pinta-1.3/Pinta.Core/ImageFormats/TgaExporter.cs0000664000175000017500000001066311747026475022762 0ustar00cameroncameron00000000000000// // TgaExporter.cs // // Author: // Maia Kozheva // // Copyright (c) 2010 Maia Kozheva // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // Portions of the code originate from: // ///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Maia Kozheva // ///////////////////////////////////////////////////////////////////////////////// using System; using System.IO; using Cairo; namespace Pinta.Core { public class TgaExporter: IImageExporter { private struct TgaHeader { public byte idLength; // Image ID Field Length public byte cmapType; // Color Map Type public byte imageType; // Image Type public ushort cmapIndex; // First Entry Index public ushort cmapLength; // Color Map Length public byte cmapEntrySize; // Color Map Entry Size public ushort xOrigin; // X-origin of Image public ushort yOrigin; // Y-origin of Image public ushort imageWidth; // Image Width public ushort imageHeight; // Image Height public byte pixelDepth; // Pixel Depth public byte imageDesc; // Image Descriptor public void WriteTo (BinaryWriter output) { output.Write (this.idLength); output.Write (this.cmapType); output.Write (this.imageType); output.Write (this.cmapIndex); output.Write (this.cmapLength); output.Write (this.cmapEntrySize); output.Write (this.xOrigin); output.Write (this.yOrigin); output.Write (this.imageWidth); output.Write (this.imageHeight); output.Write (this.pixelDepth); output.Write (this.imageDesc); } } // For now, we only export in uncompressed ARGB32 format. If someone requests this functionality, // we can always add more through an export dialog. public void Export (Document document, string fileName) { ImageSurface surf = document.GetFlattenedImage (); // Assumes the surface is in ARGB32 format BinaryWriter writer = new BinaryWriter (new FileStream (fileName, FileMode.Create, FileAccess.Write)); try { TgaHeader header = new TgaHeader(); header.idLength = 0; header.cmapType = 0; header.imageType = 2; // uncompressed RGB header.cmapIndex = 0; header.cmapLength = 0; header.cmapEntrySize = 0; header.xOrigin = 0; header.yOrigin = 0; header.imageWidth = (ushort) surf.Width; header.imageHeight = (ushort) surf.Height; header.pixelDepth = 32; header.imageDesc = 8; // 32-bit, lower-left origin, which is weird but hey... header.WriteTo (writer); byte[] data = surf.Data; // It just so happens that the Cairo ARGB32 internal representation matches // the TGA format, except vertically-flipped. In little-endian, of course. for (int y = surf.Height - 1; y >= 0; y--) writer.Write (data, surf.Stride * y, surf.Stride); } finally { (surf as IDisposable).Dispose (); writer.Close (); } } } } pinta-1.3/Pinta.Core/Makefile.am0000664000175000017500000000716611747026475017651 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta.Core TARGET = library ASSEMBLY_BUILD_FLAGS = -unsafe REFERENCES = \ -r:Mono.Posix \ -r:System \ -r:System.Core \ -r:System.Data \ -r:System.Xml \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(MONO_CAIRO_LIBS) \ -r:../lib/ICSharpCode.SharpZipLib.dll \ -r:../bin/Pinta.Resources.dll SOURCES = \ Actions/EffectsActions.cs \ AssemblyInfo.cs \ Classes/Anchor.cs \ Classes/DocumentWorkspaceHistory.cs \ Classes/Document.cs \ Classes/DocumentWorkspace.cs \ Classes/ScaleFactor.cs \ Classes/Palette.cs \ Effects/BaseEffect.cs \ Effects/BinaryPixelOp.cs \ Effects/BitVector2DSurfaceAdapter.cs \ Effects/Histogram.cs \ Effects/HistogramRGB.cs \ Effects/IBitVector2D.cs \ Effects/Scanline.cs \ Effects/UserBlendOp.cs \ Effects/UserBlendOps.cs \ Effects/UserBlendOps.Generated.cs \ Enumerations/EffectAdjustment.cs \ Enumerations/GradientColorMode.cs \ EventArgs/CanvasInvalidatedEventArgs.cs \ EventArgs/DocumentEventArgs.cs \ EventArgs/HistoryItemAddedEventArgs.cs \ EventArgs/HistoryItemRemovedEventArgs.cs \ EventArgs/TextChangedEventArgs.cs \ Extensions/ToolBarSlider.cs \ HistoryItems/ResizeHistoryItem.cs \ HistoryItems/FinishPixelsHistoryItem.cs \ HistoryItems/MovePixelsHistoryItem.cs \ HistoryItems/SelectionHistoryItem.cs \ HistoryItems/BaseHistoryItem.cs \ HistoryItems/CompoundHistoryItem.cs \ HistoryItems/AddLayerHistoryItem.cs \ HistoryItems/SwapLayersHistoryItem.cs \ HistoryItems/DeleteLayerHistoryItem.cs \ HistoryItems/InvertHistoryItem.cs \ HistoryItems/SimpleHistoryItem.cs \ Managers/ActionManager.cs \ Managers/ChromeManager.cs \ Managers/HistoryManager.cs \ Managers/LayerManager.cs \ Managers/PaletteManager.cs \ Managers/ResourceManager.cs \ Managers/SettingsManager.cs \ Managers/SystemManager.cs \ Managers/ToolManager.cs \ Managers/WorkspaceManager.cs \ PintaCore.cs \ Extensions/CairoExtensions.cs \ Extensions/GdkExtensions.cs \ Extensions/GtkExtensions.cs \ Classes/Layer.cs \ Extensions/ToolBarButton.cs \ Extensions/ToolBarComboBox.cs \ Extensions/ToolBarImage.cs \ Extensions/ToolBarLabel.cs \ Actions/LayerActions.cs \ Actions/FileActions.cs \ Actions/EditActions.cs \ Actions/ViewActions.cs \ Actions/ImageActions.cs \ Actions/AdjustmentsActions.cs \ Actions/HelpActions.cs \ Effects/ColorBgra.cs \ Effects/UnaryPixelOps.cs \ Effects/UnaryPixelOp.cs \ Effects/PixelOp.cs \ Effects/Utility.cs \ Effects/HsvColor.cs \ Effects/RgbColor.cs \ Classes/BaseTool.cs \ Extensions/ToolBarToggleButton.cs \ HistoryItems/UpdateLayerPropertiesHistoryItem.cs \ Classes/ObservableObject.cs \ Classes/LayerProperties.cs \ Effects/ColorTransferMode.cs \ Effects/SplineInterpolator.cs \ Extensions/OtherExtensions.cs \ Effects/IrregularSurface.cs \ Effects/ISurfaceDraw.cs \ Effects/PlacedSurface.cs \ HistoryItems/ClippedSurfaceHistoryItem.cs \ Classes/IndexEventHandler.cs \ Classes/IndexEventArgs.cs \ Effects/LocalHistogramEffect.cs \ Effects/ColorDifferenceEffect.cs \ EventArgs/LivePreviewEndedEventArgs.cs \ EventArgs/LivePreviewRenderUpdatedEventArgs.cs \ EventArgs/LivePreviewStartedEventArgs.cs \ EventArgs/ModifyCompressionEventArgs.cs \ Managers/LivePreviewManager.cs \ Classes/AsyncEffectRenderer.cs \ Classes/GradientRenderer.cs \ Classes/GradientRenderers.cs \ ImageFormats/OraFormat.cs \ ImageFormats/GdkPixbufFormat.cs \ ImageFormats/JpegFormat.cs \ ImageFormats/IImageExporter.cs \ ImageFormats/IImageImporter.cs \ ImageFormats/FormatDescriptor.cs \ ImageFormats/TgaExporter.cs \ Classes/BasePaintBrush.cs \ Managers/PaintBrushManager.cs \ Widgets/MenuButton.cs \ Widgets/ToolBarDropDownButton.cs pinta-1.3/Pinta.Core/Managers/0000775000175000017500000000000011747026475017340 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Managers/ActionManager.cs0000664000175000017500000001271211747026475022402 0ustar00cameroncameron00000000000000// // ActionManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ActionManager { public AccelGroup AccelGroup { get; private set; } public FileActions File { get; private set; } public EditActions Edit { get; private set; } public ViewActions View { get; private set; } public ImageActions Image { get; private set; } public LayerActions Layers { get; private set; } public AdjustmentsActions Adjustments { get; private set; } public EffectsActions Effects { get; private set; } public WindowActions Window { get; private set; } public HelpActions Help { get; private set; } public ActionManager () { AccelGroup = new AccelGroup (); File = new FileActions (); Edit = new EditActions (); View = new ViewActions (); Image = new ImageActions (); Layers = new LayerActions (); Adjustments = new AdjustmentsActions (); Effects = new EffectsActions (); Window = new WindowActions (); Help = new HelpActions (); } public void CreateMainMenu (Gtk.MenuBar menu) { // File menu ImageMenuItem file = (ImageMenuItem)menu.Children[0]; file.Submenu = new Menu (); File.CreateMainMenu ((Menu)file.Submenu); //Edit menu ImageMenuItem edit = (ImageMenuItem)menu.Children[1]; edit.Submenu = new Menu (); Edit.CreateMainMenu ((Menu)edit.Submenu); // View menu ImageMenuItem view = (ImageMenuItem)menu.Children[2]; View.CreateMainMenu ((Menu)view.Submenu); // Image menu ImageMenuItem image = (ImageMenuItem)menu.Children[3]; image.Submenu = new Menu (); Image.CreateMainMenu ((Menu)image.Submenu); //Layers menu ImageMenuItem layer = (ImageMenuItem)menu.Children[4]; layer.Submenu = new Menu (); Layers.CreateMainMenu ((Menu)layer.Submenu); //Adjustments menu ImageMenuItem adj = (ImageMenuItem)menu.Children[5]; adj.Submenu = new Menu (); Adjustments.CreateMainMenu ((Menu)adj.Submenu); // Effects menu ImageMenuItem eff = (ImageMenuItem)menu.Children[6]; eff.Submenu = new Menu (); Effects.CreateMainMenu ((Menu)eff.Submenu); // Window menu ImageMenuItem window = (ImageMenuItem)menu.Children[7]; window.Submenu = new Menu (); Window.CreateMainMenu ((Menu)window.Submenu); //Help menu ImageMenuItem help = (ImageMenuItem)menu.Children[8]; help.Submenu = new Menu (); Help.CreateMainMenu ((Menu)help.Submenu); } public void CreateToolBar (Gtk.Toolbar toolbar) { toolbar.AppendItem (File.New.CreateToolBarItem ()); toolbar.AppendItem (File.Open.CreateToolBarItem ()); toolbar.AppendItem (File.Save.CreateToolBarItem ()); //toolbar.AppendItem (File.Print.CreateToolBarItem ()); toolbar.AppendItem (new SeparatorToolItem ()); // Cut/Copy/Paste comes before Undo/Redo on Windows if (PintaCore.System.OperatingSystem == OS.Windows) { toolbar.AppendItem (Edit.Cut.CreateToolBarItem ()); toolbar.AppendItem (Edit.Copy.CreateToolBarItem ()); toolbar.AppendItem (Edit.Paste.CreateToolBarItem ()); toolbar.AppendItem (new SeparatorToolItem ()); toolbar.AppendItem (Edit.Undo.CreateToolBarItem ()); toolbar.AppendItem (Edit.Redo.CreateToolBarItem ()); } else { toolbar.AppendItem (Edit.Undo.CreateToolBarItem ()); toolbar.AppendItem (Edit.Redo.CreateToolBarItem ()); toolbar.AppendItem (new SeparatorToolItem ()); toolbar.AppendItem (Edit.Cut.CreateToolBarItem ()); toolbar.AppendItem (Edit.Copy.CreateToolBarItem ()); toolbar.AppendItem (Edit.Paste.CreateToolBarItem ()); } toolbar.AppendItem (new SeparatorToolItem ()); toolbar.AppendItem (Image.CropToSelection.CreateToolBarItem ()); toolbar.AppendItem (Edit.Deselect.CreateToolBarItem ()); View.CreateToolBar (toolbar); toolbar.AppendItem (new SeparatorToolItem ()); toolbar.AppendItem (new ToolBarImage ("StatusBar.CursorXY.png")); ToolBarLabel cursor = new ToolBarLabel (" 0, 0"); toolbar.AppendItem (cursor); PintaCore.Chrome.LastCanvasCursorPointChanged += delegate { Gdk.Point pt = PintaCore.Chrome.LastCanvasCursorPoint; cursor.Text = string.Format (" {0}, {1}", pt.X, pt.Y); }; } public void RegisterHandlers () { File.RegisterHandlers (); Edit.RegisterHandlers (); Image.RegisterHandlers (); Layers.RegisterHandlers (); View.RegisterHandlers (); Help.RegisterHandlers (); } } } pinta-1.3/Pinta.Core/Managers/ChromeManager.cs0000664000175000017500000001000511747026475022373 0ustar00cameroncameron00000000000000// // ChromeManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta.Core { public class ChromeManager { private Toolbar tool_toolbar; private DrawingArea drawing_area; private Window main_window; private IProgressDialog progress_dialog; private bool main_window_busy; private Gdk.Point last_canvas_cursor_point; private MenuBar main_menu; private Toolbar main_toolbar; public Toolbar ToolToolBar { get { return tool_toolbar; } } public Toolbar MainToolBar { get { return main_toolbar; } } public DrawingArea Canvas { get { return drawing_area; } } public Window MainWindow { get { return main_window; } } public IProgressDialog ProgressDialog { get { return progress_dialog; } } public MenuBar MainMenu { get { return main_menu; } } public ChromeManager () { } #region Public Properties public Gdk.Point LastCanvasCursorPoint { get { return last_canvas_cursor_point; } set { if (last_canvas_cursor_point != value) { last_canvas_cursor_point = value; OnLastCanvasCursorPointChanged (); } } } public bool MainWindowBusy { get { return main_window_busy; } set { main_window_busy = value; if (main_window_busy) main_window.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch); else main_window.GdkWindow.Cursor = PintaCore.Tools.CurrentTool.DefaultCursor; } } #endregion #region Public Methods public void InitializeToolToolBar (Toolbar toolToolBar) { tool_toolbar = toolToolBar; } public void InitializeMainToolBar (Toolbar mainToolBar) { main_toolbar = mainToolBar; } public void InitializeCanvas (DrawingArea canvas) { drawing_area = canvas; } public void InitializeWindowShell (Window shell) { main_window = shell; } public void InitializeMainMenu (MenuBar menu) { main_menu = menu; } public void InitializeProgessDialog (IProgressDialog progressDialog) { if (progressDialog == null) throw new ArgumentNullException ("progressDialog"); progress_dialog = progressDialog; } public void SetStatusBarText (string text) { OnStatusBarTextChanged (text); } #endregion #region Protected Methods protected void OnLastCanvasCursorPointChanged () { if (LastCanvasCursorPointChanged != null) LastCanvasCursorPointChanged (this, EventArgs.Empty); } protected void OnStatusBarTextChanged (string text) { if (StatusBarTextChanged != null) StatusBarTextChanged (this, new TextChangedEventArgs (text)); } #endregion #region Public Events public event EventHandler LastCanvasCursorPointChanged; public event EventHandler StatusBarTextChanged; #endregion } public interface IProgressDialog { void Show (); void Hide (); string Title { get; set; } string Text { get; set; } double Progress { get; set; } event EventHandler Canceled; } } pinta-1.3/Pinta.Core/Managers/EffectsManager.cs0000664000175000017500000001227411747026475022547 0ustar00cameroncameron00000000000000// // EffectsManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2011 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Gtk; using Mono.Unix; namespace Pinta.Core { /// /// Provides methods for registering and unregistering effects and adjustments. /// public class EffectsManager { private Dictionary adjustments; private Dictionary adjustment_menuitems; private Dictionary effects; internal EffectsManager () { adjustments = new Dictionary (); adjustment_menuitems = new Dictionary (); effects = new Dictionary (); } /// /// Register a new adjustment with Pinta, causing it to be added to the Adjustments menu. /// /// The adjustment to register /// The action created for this adjustment public Gtk.Action RegisterAdjustment (BaseEffect adjustment) { // Add icon to IconFactory Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add (adjustment.Icon, new Gtk.IconSet (PintaCore.Resources.GetIcon (adjustment.Icon))); fact.AddDefault (); // Create a gtk action for each adjustment Gtk.Action act = new Gtk.Action (adjustment.GetType ().Name, adjustment.Name + (adjustment.IsConfigurable ? Catalog.GetString ("...") : ""), string.Empty, adjustment.Icon); act.Activated += delegate (object sender, EventArgs e) { PintaCore.LivePreview.Start (adjustment); }; PintaCore.Actions.Adjustments.Actions.Add (act); // Create a menu item for each adjustment MenuItem menu_item; // If no key is specified, don't use an accelerated menu item if (adjustment.AdjustmentMenuKey == (Gdk.Key)0) menu_item = (MenuItem)act.CreateMenuItem (); else menu_item = act.CreateAcceleratedMenuItem (adjustment.AdjustmentMenuKey, adjustment.AdjustmentMenuKeyModifiers); ((Menu)((ImageMenuItem)PintaCore.Chrome.MainMenu.Children[5]).Submenu).AppendMenuItemSorted (menu_item); adjustments.Add (adjustment, act); adjustment_menuitems.Add (adjustment, menu_item); return act; } /// /// Register a new effect with Pinta, causing it to be added to the Effects menu. /// /// The effect to register /// The action created for this effect public Gtk.Action RegisterEffect (BaseEffect effect) { // Add icon to IconFactory Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add (effect.Icon, new Gtk.IconSet (PintaCore.Resources.GetIcon (effect.Icon))); fact.AddDefault (); // Create a gtk action and menu item for each effect Gtk.Action act = new Gtk.Action (effect.GetType ().Name, effect.Name + (effect.IsConfigurable ? Catalog.GetString ("...") : ""), string.Empty, effect.Icon); act.Activated += delegate (object sender, EventArgs e) { PintaCore.LivePreview.Start (effect); }; PintaCore.Actions.Effects.AddEffect (effect.EffectMenuCategory, act); effects.Add (effect, act); return act; } /// /// Unregister an effect with Pinta, causing it to be removed from the Effects menu. /// /// The effect to unregister public void UnregisterEffect (BaseEffect effect) { if (!effects.ContainsKey (effect)) return; var action = effects[effect]; effects.Remove (effect); PintaCore.Actions.Effects.RemoveEffect (effect.EffectMenuCategory, action); } /// /// Unregister an effect with Pinta, causing it to be removed from the Adjustments menu. /// /// The adjustment to unregister public void UnregisterAdjustment (BaseEffect adjustment) { if (!adjustments.ContainsKey (adjustment)) return; var action = adjustments[adjustment]; var menu_item = adjustment_menuitems[adjustment]; adjustments.Remove (adjustment); PintaCore.Actions.Adjustments.Actions.Remove (action); ((Menu)((ImageMenuItem)PintaCore.Chrome.MainMenu.Children[5]).Submenu).Remove (menu_item); } } } pinta-1.3/Pinta.Core/Managers/FontManager.cs0000664000175000017500000000463211747026475022075 0ustar00cameroncameron00000000000000// // FontManager.cs // // Authors: // Olivier Dufour // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using Gdk; using Pango; namespace Pinta.Core { public class FontManager { private List families; private List default_font_sizes = new List (new int[] { 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32, 36, 40, 44, 48, 54, 60, 66, 72, 80, 88, 96 }); public FontManager () { families = new List (); using (Pango.Context c = PangoHelper.ContextGet ()) families.AddRange (c.Families); } public List GetInstalledFonts () { return families.Select (f => f.Name).ToList (); } public FontFamily GetFamily (string fontname) { return families.Find (f => f.Name == fontname); } public List GetSizes (FontFamily family) { return GetSizes (family.Faces[0]); } unsafe public List GetSizes (FontFace fontFace) { int sizes; int nsizes; // Query for supported sizes for this font fontFace.ListSizes (out sizes, out nsizes); if (nsizes == 0) return default_font_sizes; List result = new List (); for (int i = 0; i < nsizes; i++) result.Add (*(&sizes + 4 * i)); return result; } } } pinta-1.3/Pinta.Core/Managers/HistoryManager.cs0000664000175000017500000000576411747026475022637 0ustar00cameroncameron00000000000000// // HistoryManager.cs // // Authors: // Jonathan Pobst // Joe Hillenbrand // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Gtk; namespace Pinta.Core { public class HistoryManager { public Gtk.ListStore ListStore { get { return PintaCore.Workspace.ActiveWorkspace.History.ListStore; } } public int Pointer { get { return PintaCore.Workspace.ActiveWorkspace.History.Pointer; } } public BaseHistoryItem Current { get { return PintaCore.Workspace.ActiveWorkspace.History.Current; } } public void PushNewItem (BaseHistoryItem newItem) { PintaCore.Workspace.ActiveWorkspace.History.PushNewItem (newItem); } public void Undo () { PintaCore.Workspace.ActiveWorkspace.History.Undo (); } public void Redo () { PintaCore.Workspace.ActiveWorkspace.History.Redo (); } public void Clear () { PintaCore.Workspace.ActiveWorkspace.History.Clear (); } #region Protected Methods protected internal void OnHistoryItemAdded (BaseHistoryItem item) { if (HistoryItemAdded != null) HistoryItemAdded (this, new HistoryItemAddedEventArgs (item)); } protected internal void OnHistoryItemRemoved (BaseHistoryItem item) { if (HistoryItemRemoved != null) HistoryItemRemoved (this, new HistoryItemRemovedEventArgs (item)); } protected internal void OnActionUndone () { if (ActionUndone != null) ActionUndone (this, EventArgs.Empty); } protected internal void OnActionRedone () { if (ActionRedone != null) ActionRedone (this, EventArgs.Empty); } #endregion #region Events public event EventHandler HistoryItemAdded; public event EventHandler HistoryItemRemoved; public event EventHandler ActionUndone; public event EventHandler ActionRedone; #endregion } } pinta-1.3/Pinta.Core/Managers/ImageConverterManager.cs0000664000175000017500000001133211747026475024074 0ustar00cameroncameron00000000000000// // ImageConverterManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using Gdk; using System.IO; namespace Pinta.Core { public class ImageConverterManager { public ImageConverterManager () { Formats = new List (); // Create all the formats supported by Gdk foreach (var format in Pixbuf.Formats) { string formatName = format.Name.ToLowerInvariant (); string formatNameUpperCase = formatName.ToUpperInvariant (); string[] extensions; switch (formatName) { case "jpeg": extensions = new string[] { "jpg", "jpeg", "JPG", "JPEG" }; break; case "tiff": extensions = new string[] { "tif", "tiff", "TIF", "TIFF" }; break; default: extensions = new string[] { formatName, formatNameUpperCase }; break; } GdkPixbufFormat importer = new GdkPixbufFormat (format.Name.ToLowerInvariant ()); IImageExporter exporter; if (formatName == "jpeg") exporter = importer = new JpegFormat (); else if (formatName == "tga") exporter = new TgaExporter (); else if (format.IsWritable) exporter = importer; else exporter = null; Formats.Add (new FormatDescriptor (formatName, formatNameUpperCase, extensions, importer, exporter)); } // Create all the formats we have our own importers/exporters for OraFormat oraHandler = new OraFormat (); Formats.Add (new FormatDescriptor ("ora", "OpenRaster", new string[] { "ora" }, oraHandler, oraHandler)); } public IList Formats { get; private set; } public FormatDescriptor GetDefaultSaveFormat () { string extension = PintaCore.Settings.GetSetting ("default-image-type", "jpeg"); var fd = GetFormatByExtension (extension); // We found the last one we used if (fd != null) return fd; // Return any format we have foreach (var f in Formats) if (!f.IsReadOnly ()) return f; // We don't have any formats throw new InvalidOperationException ("There are no image formats supported."); } public IImageExporter GetExporterByExtension (string extension) { FormatDescriptor format = GetFormatByExtension (extension); if (format == null) return null; return format.Exporter; } public IImageExporter GetExporterByFile (string file) { string extension = Path.GetExtension (file); return GetExporterByExtension (extension); } public FormatDescriptor GetFormatByExtension (string extension) { // Normalize the extension extension = extension.ToLowerInvariant ().TrimStart ('.').Trim (); return Formats.Where (p => p.Extensions.Contains (extension)).FirstOrDefault (); } public FormatDescriptor GetFormatByFile (string file) { string extension = Path.GetExtension (file); // Normalize the extension extension = extension.ToLowerInvariant ().TrimStart ('.').Trim (); return Formats.Where (p => p.Extensions.Contains (extension)).FirstOrDefault (); } public IImageImporter GetImporterByExtension (string extension) { FormatDescriptor format = GetFormatByExtension (extension); if (format == null) return null; return format.Importer; } public IImageImporter GetImporterByFile (string file) { string extension = Path.GetExtension (file); return GetImporterByExtension (extension); } public void SetDefaultFormat (string extension) { // Normalize the extension extension = extension.ToLowerInvariant ().TrimStart ('.').Trim (); PintaCore.Settings.PutSetting ("default-image-type", extension); PintaCore.Settings.SaveSettings (); } } } pinta-1.3/Pinta.Core/Managers/LayerManager.cs0000664000175000017500000001555311747026475022247 0ustar00cameroncameron00000000000000// // LayerManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.ComponentModel; using System.Collections.Specialized; using System.Linq; using Cairo; using Mono.Unix; namespace Pinta.Core { public class LayerManager { #region Public Properties public Layer this[int index] { get { return PintaCore.Workspace.ActiveDocument.Layers[index]; } } public Layer CurrentLayer { get { return PintaCore.Workspace.ActiveDocument.CurrentLayer; } } public int Count { get { return PintaCore.Workspace.ActiveDocument.Layers.Count; } } public Layer ToolLayer { get { return PintaCore.Workspace.ActiveDocument.ToolLayer; } } public Layer SelectionLayer { get { return PintaCore.Workspace.ActiveDocument.SelectionLayer; } } public int CurrentLayerIndex { get { return PintaCore.Workspace.ActiveDocument.CurrentLayerIndex; } } public Path SelectionPath { get { return PintaCore.Workspace.ActiveDocument.SelectionPath; } set { PintaCore.Workspace.ActiveDocument.SelectionPath = value; } } public bool ShowSelection { get { return PintaCore.Workspace.ActiveDocument.ShowSelection; } set { PintaCore.Workspace.ActiveDocument.ShowSelection = value; } } public bool ShowSelectionLayer { get { return PintaCore.Workspace.ActiveDocument.ShowSelectionLayer; } set { PintaCore.Workspace.ActiveDocument.ShowSelectionLayer = value; } } #endregion #region Public Methods public void Clear () { PintaCore.Workspace.ActiveDocument.Clear (); } public List GetLayersToPaint () { return PintaCore.Workspace.ActiveDocument.GetLayersToPaint (); } public void SetCurrentLayer (int i) { PintaCore.Workspace.ActiveDocument.SetCurrentLayer (i); } public void SetCurrentLayer (Layer layer) { PintaCore.Workspace.ActiveDocument.SetCurrentLayer (layer); } public void FinishSelection () { PintaCore.Workspace.ActiveDocument.FinishSelection (); } // Adds a new layer above the current one public Layer AddNewLayer (string name) { return PintaCore.Workspace.ActiveDocument.AddNewLayer (name); } // Adds a new layer above the current one public void Insert (Layer layer, int index) { PintaCore.Workspace.ActiveDocument.Insert (layer, index); } public int IndexOf (Layer layer) { return PintaCore.Workspace.ActiveDocument.IndexOf (layer); } // Delete the current layer public void DeleteCurrentLayer () { PintaCore.Workspace.ActiveDocument.DeleteCurrentLayer (); } // Delete the layer public void DeleteLayer (int index, bool dispose) { PintaCore.Workspace.ActiveDocument.DeleteLayer (index, dispose); } // Duplicate current layer public Layer DuplicateCurrentLayer () { return PintaCore.Workspace.ActiveDocument.DuplicateCurrentLayer (); } // Flatten current layer public void MergeCurrentLayerDown () { PintaCore.Workspace.ActiveDocument.MergeCurrentLayerDown (); } // Move current layer up public void MoveCurrentLayerUp () { PintaCore.Workspace.ActiveDocument.MoveCurrentLayerUp (); } // Move current layer down public void MoveCurrentLayerDown () { PintaCore.Workspace.ActiveDocument.MoveCurrentLayerDown (); } // Flip image horizontally public void FlipImageHorizontal () { PintaCore.Workspace.ActiveDocument.FlipImageHorizontal (); } // Flip image vertically public void FlipImageVertical () { PintaCore.Workspace.ActiveDocument.FlipImageVertical (); } // Rotate image 180 degrees (flip H+V) public void RotateImage180 () { PintaCore.Workspace.ActiveDocument.RotateImage180 (); } public void RotateImageCW () { PintaCore.Workspace.ActiveDocument.RotateImageCW (); } public void RotateImageCCW () { PintaCore.Workspace.ActiveDocument.RotateImageCCW (); } // Flatten image public void FlattenImage () { PintaCore.Workspace.ActiveDocument.FlattenImage (); } public void CreateSelectionLayer () { PintaCore.Workspace.ActiveDocument.CreateSelectionLayer (); } public void DestroySelectionLayer () { PintaCore.Workspace.ActiveDocument.DestroySelectionLayer (); } public void ResetSelectionPath () { PintaCore.Workspace.ActiveDocument.ResetSelectionPath (); } public ImageSurface GetFlattenedImage () { return PintaCore.Workspace.ActiveDocument.GetFlattenedImage (); } public ImageSurface GetClippedLayer (int index) { return PintaCore.Workspace.ActiveDocument.GetClippedLayer (index); } #endregion #region Protected Methods protected internal void OnLayerAdded () { if (LayerAdded != null) LayerAdded.Invoke (this, EventArgs.Empty); } protected internal void OnLayerRemoved () { if (LayerRemoved != null) LayerRemoved.Invoke (this, EventArgs.Empty); } protected internal void OnSelectedLayerChanged () { if (SelectedLayerChanged != null) SelectedLayerChanged.Invoke (this, EventArgs.Empty); } #endregion #region Private Methods public Layer CreateLayer () { return PintaCore.Workspace.ActiveDocument.CreateLayer (); } public Layer CreateLayer (string name, int width, int height) { return PintaCore.Workspace.ActiveDocument.CreateLayer (name, width, height); } internal void RaiseLayerPropertyChangedEvent (object sender, PropertyChangedEventArgs e) { if (LayerPropertyChanged != null) LayerPropertyChanged (sender, e); //TODO Get the workspace to subscribe to this event, and invalidate itself. PintaCore.Workspace.Invalidate (); } #endregion #region Events public event EventHandler LayerAdded; public event EventHandler LayerRemoved; public event EventHandler SelectedLayerChanged; public event PropertyChangedEventHandler LayerPropertyChanged; #endregion } } pinta-1.3/Pinta.Core/Managers/LivePreviewManager.cs0000664000175000017500000002726311747026475023435 0ustar00cameroncameron00000000000000// // LivePreviewManager.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. #if (!LIVE_PREVIEW_DEBUG && DEBUG) #undef DEBUG #endif using System; using System.Collections.Generic; using System.Threading; using System.ComponentModel; using Debug = System.Diagnostics.Debug; using Mono.Unix; namespace Pinta.Core { public class LivePreviewManager { bool live_preview_enabled; Layer layer; BaseEffect effect; Cairo.Path selection_path; bool apply_live_preview_flag; bool cancel_live_preview_flag; Cairo.ImageSurface live_preview_surface; Gdk.Rectangle render_bounds; AsyncEffectRenderer renderer; internal LivePreviewManager () { live_preview_enabled = false; RenderUpdated += LivePreview_RenderUpdated; } public bool IsEnabled { get { return live_preview_enabled; } } public Cairo.ImageSurface LivePreviewSurface { get { return live_preview_surface; } } public event EventHandler Started; public event EventHandler RenderUpdated; public event EventHandler Ended; public void Start (BaseEffect effect) { if (live_preview_enabled) throw new InvalidOperationException ("LivePreviewManager.Start() called while live preview is already enabled."); // Create live preview surface. // Start rendering. // Listen for changes to effectConfiguration object, and restart render if needed. live_preview_enabled = true; apply_live_preview_flag = false; cancel_live_preview_flag = false; layer = PintaCore.Layers.CurrentLayer; this.effect = effect; // Handle selection path. PintaCore.Tools.Commit (); selection_path = (PintaCore.Layers.ShowSelection) ? PintaCore.Layers.SelectionPath : null; render_bounds = selection_path.GetBounds (); render_bounds = PintaCore.Workspace.ClampToImageSize (render_bounds); //TODO Use the current tool layer instead. live_preview_surface = new Cairo.ImageSurface (Cairo.Format.Argb32, PintaCore.Workspace.ImageSize.Width, PintaCore.Workspace.ImageSize.Height); // Paint the pre-effect layer surface into into the working surface. using (var ctx = new Cairo.Context (live_preview_surface)) { ctx.SetSourceSurface (layer.Surface, (int) layer.Offset.X, (int) layer.Offset.Y); ctx.Paint (); } if (effect.EffectData != null) effect.EffectData.PropertyChanged += EffectData_PropertyChanged; if (Started != null) { Started (this, new LivePreviewStartedEventArgs()); } var settings = new AsyncEffectRenderer.Settings () { ThreadCount = PintaCore.System.RenderThreads, TileWidth = render_bounds.Width, TileHeight = 1, ThreadPriority = ThreadPriority.BelowNormal }; Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + "Start Live preview."); renderer = new Renderer (this, settings); renderer.Start (effect, layer.Surface, live_preview_surface, render_bounds); if (effect.IsConfigurable) { if (!effect.LaunchConfiguration ()) { PintaCore.Chrome.MainWindowBusy = true; Cancel (); } else { PintaCore.Chrome.MainWindowBusy = true; Apply (); } } else { PintaCore.Chrome.MainWindowBusy = true; Apply (); } } // Used by the workspace drawing area expose render loop. // Takes care of the clipping. public void RenderLivePreviewLayer (Cairo.Context ctx, double opacity) { if (!IsEnabled) throw new InvalidOperationException ("Tried to render a live preview after live preview has ended."); // TODO remove seam around selection during live preview. ctx.Save (); if (selection_path != null) { // Paint area outsize of the selection path, with the pre-effect image. var imageSize = PintaCore.Workspace.ImageSize; ctx.Rectangle (0, 0, imageSize.Width, imageSize.Height); ctx.AppendPath (selection_path); ctx.Clip (); ctx.SetSourceSurface (layer.Surface, (int)layer.Offset.X, (int)layer.Offset.Y); ctx.PaintWithAlpha (opacity); ctx.ResetClip (); // Paint area inside the selection path, with the post-effect image. ctx.AppendPath (selection_path); ctx.Clip (); ctx.SetSourceSurface (live_preview_surface, (int)layer.Offset.X, (int)layer.Offset.Y); ctx.PaintWithAlpha (opacity); ctx.AppendPath (selection_path); ctx.FillRule = Cairo.FillRule.EvenOdd; ctx.Clip (); } else { ctx.SetSourceSurface (live_preview_surface, (int)layer.Offset.X, (int)layer.Offset.Y); ctx.PaintWithAlpha (opacity); } ctx.Restore (); } // Method asks render task to complete, and then returns immediately. The cancel // is not actually complete until the LivePreviewRenderCompleted event is fired. void Cancel () { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + " LivePreviewManager.Cancel()"); cancel_live_preview_flag = true; if (renderer != null) renderer.Cancel (); // Show a busy cursor, and make the main window insensitive, // until the cancel has completed. PintaCore.Chrome.MainWindowBusy = true; if (renderer == null || !renderer.IsRendering) HandleCancel (); } // Called from asynchronously from Renderer.OnCompletion () void HandleCancel () { Debug.WriteLine ("LivePreviewManager.HandleCancel()"); FireLivePreviewEndedEvent(RenderStatus.Canceled, null); live_preview_enabled = false; if (live_preview_surface != null) { var disposable = live_preview_surface as IDisposable; disposable.Dispose (); } PintaCore.Workspace.Invalidate (); CleanUp (); } void Apply () { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + "LivePreviewManager.Apply()"); apply_live_preview_flag = true; if (!renderer.IsRendering) { HandleApply (); } else { var dialog = PintaCore.Chrome.ProgressDialog; dialog.Title = Catalog.GetString ("Rendering Effect"); dialog.Text = effect.Name; dialog.Progress = renderer.Progress; dialog.Canceled += HandleProgressDialogCancel; dialog.Show (); } } void HandleProgressDialogCancel (object o, EventArgs e) { Cancel(); } // Called from asynchronously from Renderer.OnCompletion () void HandleApply () { Debug.WriteLine ("LivePreviewManager.HandleApply()"); var item = new SimpleHistoryItem (effect.Icon, effect.Name); item.TakeSnapshotOfLayer (PintaCore.Layers.CurrentLayerIndex); using (var ctx = new Cairo.Context (layer.Surface)) { ctx.Save (); ctx.AppendPath (PintaCore.Layers.SelectionPath); ctx.FillRule = Cairo.FillRule.EvenOdd; ctx.Clip (); ctx.Operator = Cairo.Operator.Source; ctx.SetSourceSurface (live_preview_surface, (int)layer.Offset.X, (int)layer.Offset.Y); ctx.Paint (); ctx.Restore (); } PintaCore.History.PushNewItem (item); FireLivePreviewEndedEvent(RenderStatus.Completed, null); live_preview_enabled = false; PintaCore.Workspace.Invalidate (); //TODO keep track of dirty bounds. CleanUp (); } // Clean up resources when live preview is disabled. void CleanUp () { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + " LivePreviewManager.CleanUp()"); live_preview_enabled = false; if (effect != null) { if (effect.EffectData != null) effect.EffectData.PropertyChanged -= EffectData_PropertyChanged; effect = null; } live_preview_surface = null; if (renderer != null) { renderer.Dispose (); renderer = null; } // Hide progress dialog and clean up events. var dialog = PintaCore.Chrome.ProgressDialog; dialog.Hide (); dialog.Canceled -= HandleProgressDialogCancel; PintaCore.Chrome.MainWindowBusy = false; } void EffectData_PropertyChanged (object sender, PropertyChangedEventArgs e) { //TODO calculate bounds. renderer.Start (effect, layer.Surface, live_preview_surface, render_bounds); } class Renderer : AsyncEffectRenderer { LivePreviewManager manager; internal Renderer (LivePreviewManager manager, AsyncEffectRenderer.Settings settings) : base (settings) { this.manager = manager; } protected override void OnUpdate (double progress, Gdk.Rectangle updatedBounds) { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + " LivePreviewManager.OnUpdate() progress: " + progress); PintaCore.Chrome.ProgressDialog.Progress = progress; manager.FireLivePreviewRenderUpdatedEvent (progress, updatedBounds); } protected override void OnCompletion (bool cancelled, Exception[] exceptions) { Debug.WriteLine (DateTime.Now.ToString("HH:mm:ss:ffff") + " LivePreviewManager.OnCompletion() cancelled: " + cancelled); if (!manager.live_preview_enabled) return; if (manager.cancel_live_preview_flag) manager.HandleCancel (); else if (manager.apply_live_preview_flag) manager.HandleApply (); } } void FireLivePreviewEndedEvent (RenderStatus status, Exception ex) { if (Ended != null) { var args = new LivePreviewEndedEventArgs (status, ex); Ended (this, args); } } void FireLivePreviewRenderUpdatedEvent (double progress, Gdk.Rectangle bounds) { if (RenderUpdated != null) { RenderUpdated (this, new LivePreviewRenderUpdatedEventArgs(progress, bounds)); } } private void LivePreview_RenderUpdated (object o, LivePreviewRenderUpdatedEventArgs args) { double scale = PintaCore.Workspace.Scale; var offset = PintaCore.Workspace.Offset; var bounds = args.Bounds; // Transform bounds (Image -> Canvas -> Window) // Calculate canvas bounds. double x1 = bounds.Left * scale; double y1 = bounds.Top * scale; double x2 = bounds.Right * scale; double y2 = bounds.Bottom * scale; // TODO Figure out why when scale > 1 that I need add on an // extra pixel of padding. // I must being doing something wrong here. if (scale > 1.0) { //x1 = (bounds.Left-1) * scale; y1 = (bounds.Top - 1) * scale; //x2 = (bounds.Right+1) * scale; //y2 = (bounds.Bottom+1) * scale; } // Calculate window bounds. x1 += offset.X; y1 += offset.Y; x2 += offset.X; y2 += offset.Y; // Convert to integer, carefull not to miss paritally covered // pixels by rounding incorrectly. int x = (int)Math.Floor (x1); int y = (int)Math.Floor (y1); int width = (int)Math.Ceiling (x2) - x; int height = (int)Math.Ceiling (y2) - y; // Tell GTK to expose the drawing area. PintaCore.Chrome.Canvas.QueueDrawArea (x, y, width, height); } } } pinta-1.3/Pinta.Core/Managers/PaintBrushManager.cs0000664000175000017500000000427011747026475023244 0ustar00cameroncameron00000000000000// // PaintBrushManager.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; namespace Pinta.Core { public class PaintBrushManager : IEnumerable { private List paint_brushes = new List (); public void AddPaintBrush (BasePaintBrush paintBrush) { paint_brushes.Add (paintBrush); paint_brushes.Sort (new BrushSorter ()); } #region IEnumerable implementation public IEnumerator GetEnumerator () { return paint_brushes.GetEnumerator (); } #endregion #region IEnumerable implementation System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator () { return paint_brushes.GetEnumerator (); } #endregion class BrushSorter : Comparer { public override int Compare (BasePaintBrush x, BasePaintBrush y) { var xstr = x.Priority == 0 ? x.Name : x.Priority.ToString (); var ystr = y.Priority == 0 ? y.Name : y.Priority.ToString (); return string.Compare (xstr, ystr); } } } } pinta-1.3/Pinta.Core/Managers/PaletteManager.cs0000664000175000017500000000463111747026475022564 0ustar00cameroncameron00000000000000// // PaletteManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; namespace Pinta.Core { public class PaletteManager { private Color primary; private Color secondary; private Palette palette; public Color PrimaryColor { get { return primary; } set { if (!primary.Equals (value)) { primary = value; OnPrimaryColorChanged (); } } } public Color SecondaryColor { get { return secondary; } set { if (!secondary.Equals (value)) { secondary = value; OnSecondaryColorChanged (); } } } public Palette CurrentPalette { get { if (palette == null) { palette = Palette.GetDefault (); } return palette; } } public PaletteManager () { PrimaryColor = new Color (0, 0, 0); SecondaryColor = new Color (1, 1, 1); } #region Protected Methods protected void OnPrimaryColorChanged () { if (PrimaryColorChanged != null) PrimaryColorChanged.Invoke (this, EventArgs.Empty); } protected void OnSecondaryColorChanged () { if (SecondaryColorChanged != null) SecondaryColorChanged.Invoke (this, EventArgs.Empty); } #endregion #region Events public event EventHandler PrimaryColorChanged; public event EventHandler SecondaryColorChanged; #endregion } } pinta-1.3/Pinta.Core/Managers/ResourceManager.cs0000664000175000017500000000272011747026475022752 0ustar00cameroncameron00000000000000// // ResourceManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Resources; namespace Pinta { public class ResourceManager { public Gdk.Pixbuf GetIcon (string name) { return GetIcon (name, 16); } public Gdk.Pixbuf GetIcon (string name, int size) { return ResourceLoader.GetIcon (name, size); } } } pinta-1.3/Pinta.Core/Managers/SettingsManager.cs0000664000175000017500000001102611747026475022762 0ustar00cameroncameron00000000000000// // SettingsManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml.Serialization; using System.Xml; namespace Pinta.Core { public class SettingsManager { private Dictionary settings; public SettingsManager () { LoadSettings (); } public string GetUserSettingsDirectory () { var settings_dir = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "Pinta"); // If someone is getting this, they probably are going to need // the directory created, so just handle that here. if (!Directory.Exists (settings_dir)) Directory.CreateDirectory (settings_dir); return settings_dir; } public T GetSetting (string key, T defaultValue) { if (!settings.ContainsKey (key)) return defaultValue; return (T)settings[key]; } public void PutSetting (string key, object value) { settings[key] = value; } private static Dictionary Deserialize (string filename) { Dictionary properties = new Dictionary (); if (!File.Exists (filename)) return properties; XmlDocument doc = new XmlDocument (); doc.Load (filename); // Kinda cheating for now because I know there is only a few things stored in here foreach (XmlElement setting in doc.DocumentElement.ChildNodes) { switch (setting.GetAttribute ("type")) { case "System.Int32": properties[setting.GetAttribute ("name")] = int.Parse (setting.InnerText); break; case "System.Boolean": properties[setting.GetAttribute ("name")] = bool.Parse (setting.InnerText); break; case "System.String": properties[setting.GetAttribute ("name")] = setting.InnerText; break; } } return properties; } private static void Serialize (string filename, Dictionary settings) { string path = Path.GetDirectoryName (filename); if (!Directory.Exists (path)) Directory.CreateDirectory (path); using (XmlTextWriter xw = new XmlTextWriter (filename, System.Text.Encoding.UTF8)) { xw.Formatting = Formatting.Indented; xw.WriteStartElement ("settings"); foreach (var item in settings) { xw.WriteStartElement ("setting"); xw.WriteAttributeString ("name", item.Key); xw.WriteAttributeString ("type", item.Value.GetType ().ToString ()); xw.WriteValue (item.Value.ToString ()); xw.WriteEndElement (); } xw.WriteEndElement (); } } private void LoadSettings () { string settings_file = Path.Combine (GetUserSettingsDirectory (), "settings.xml"); try { settings = Deserialize (settings_file); } catch (Exception) { // Will load with default settings settings = new Dictionary (); } string palette_file = Path.Combine (GetUserSettingsDirectory (), "palette.txt"); try { PintaCore.Palette.CurrentPalette.Load (palette_file); } catch (Exception) { // Retain the default palette } } public void SaveSettings () { string settings_file = Path.Combine (GetUserSettingsDirectory (), "settings.xml"); Serialize (settings_file, settings); string palette_file = Path.Combine (GetUserSettingsDirectory (), "palette.txt"); PintaCore.Palette.CurrentPalette.Save (palette_file, Palette.FileFormat.PDN); } } } pinta-1.3/Pinta.Core/Managers/SystemManager.cs0000664000175000017500000001012211747026475022442 0ustar00cameroncameron00000000000000// // SystemManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.InteropServices; using Mono.Addins; using Gtk; namespace Pinta.Core { public class SystemManager { private static OS operating_system; private string last_dialog_directory; private RecentData recent_data; public ImageConverterManager ImageFormats { get; private set; } public FontManager Fonts { get; private set; } public int RenderThreads { get; set; } public OS OperatingSystem { get { return operating_system; } } public SystemManager () { ImageFormats = new ImageConverterManager (); RenderThreads = Environment.ProcessorCount; Fonts = new FontManager (); last_dialog_directory = DefaultDialogDirectory; recent_data = new RecentData (); recent_data.AppName = "Pinta"; recent_data.AppExec = GetExecutablePathName (); recent_data.MimeType = "image/*"; } static SystemManager () { if (Path.DirectorySeparatorChar == '\\') operating_system = OS.Windows; else if (IsRunningOnMac ()) operating_system = OS.Mac; else if (Environment.OSVersion.Platform == PlatformID.Unix) operating_system = OS.X11; else operating_system = OS.Other; } #region Public Properties public string LastDialogDirectory { get { return last_dialog_directory; } set { last_dialog_directory = value; } } public string DefaultDialogDirectory { get { return System.Environment.GetFolderPath (Environment.SpecialFolder.MyPictures); } } public RecentData RecentData { get { return recent_data; } } #endregion /// /// Returns a directory for use in a dialog. The last dialog directory is /// returned if it exists, otherwise the default directory is used. /// public string GetDialogDirectory () { return Directory.Exists (LastDialogDirectory) ? LastDialogDirectory : DefaultDialogDirectory; } public string GetExecutablePathName () { string executablePathName = System.Environment.GetCommandLineArgs ()[0]; executablePathName = System.IO.Path.GetFullPath (executablePathName); return executablePathName; } public static OS GetOperatingSystem () { return operating_system; } public T[] GetExtensions () { return AddinManager.GetExtensionObjects (); } //From Managed.Windows.Forms/XplatUI [DllImport ("libc")] static extern int uname (IntPtr buf); static bool IsRunningOnMac () { IntPtr buf = IntPtr.Zero; try { buf = Marshal.AllocHGlobal (8192); // This is a hacktastic way of getting sysname from uname () if (uname (buf) == 0) { string os = Marshal.PtrToStringAnsi (buf); if (os == "Darwin") return true; } } catch { } finally { if (buf != IntPtr.Zero) Marshal.FreeHGlobal (buf); } return false; } } public enum OS { Windows, Mac, X11, Other } } pinta-1.3/Pinta.Core/Managers/ToolManager.cs0000664000175000017500000001132711747026475022103 0ustar00cameroncameron00000000000000// // ToolManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using Gtk; namespace Pinta.Core { public class ToolManager : IEnumerable { int index = -1; int prev_index = -1; private List Tools; public event EventHandler ToolAdded; public ToolManager () { Tools = new List (); } public void AddTool (BaseTool tool) { tool.ToolItem.Clicked += HandlePbToolItemClicked; tool.ToolItem.Sensitive = tool.Enabled; Tools.Add (tool); Tools.Sort (new ToolSorter ()); OnToolAdded (tool); if (CurrentTool == null) SetCurrentTool (tool); } void HandlePbToolItemClicked (object sender, EventArgs e) { ToggleToolButton tb = (ToggleToolButton)sender; BaseTool t = FindTool (tb.Label); // Don't let the user unselect the current tool if (CurrentTool != null && t.Name == CurrentTool.Name) { if (prev_index != index) tb.Active = true; return; } SetCurrentTool (t); } private BaseTool FindTool (string name) { name = name.ToLowerInvariant (); foreach (BaseTool tool in Tools) { if (tool.Name.ToLowerInvariant () == name) { return tool; } } return null; } public BaseTool CurrentTool { get { if (index >= 0) return Tools[index]; return null; } } public BaseTool PreviousTool { get { return Tools[prev_index]; } } public void Commit () { if (CurrentTool != null) CurrentTool.DoCommit (); } public void SetCurrentTool (BaseTool tool) { int i = Tools.IndexOf (tool); if (index == i) return; // Unload previous tool if needed if (index >= 0) { prev_index = index; Tools[index].DoClearToolBar (PintaCore.Chrome.ToolToolBar); Tools[index].DoDeactivated (); Tools[index].ToolItem.Active = false; } // Load new tool index = i; tool.ToolItem.Active = true; tool.DoActivated (); tool.DoBuildToolBar (PintaCore.Chrome.ToolToolBar); PintaCore.Workspace.Invalidate (); PintaCore.Chrome.SetStatusBarText (string.Format (" {0}: {1}", tool.Name, tool.StatusBarText)); } public bool SetCurrentTool (string tool) { BaseTool t = FindTool (tool); if (t != null) { SetCurrentTool (t); return true; } return false; } public void SetCurrentTool (Gdk.Key shortcut) { BaseTool tool = FindNextTool (shortcut); if (tool != null) SetCurrentTool (tool); } private BaseTool FindNextTool (Gdk.Key shortcut) { string key = shortcut.ToString ().ToUpperInvariant (); // Begin looking at the tool after the current one for (int i = index + 1; i < Tools.Count; i++) { if (Tools[i].ShortcutKey.ToString ().ToUpperInvariant () == key) return Tools[i]; } // Begin at the beginning and look up to the current tool for (int i = 0; i < index; i++) { if (Tools[i].ShortcutKey.ToString ().ToUpperInvariant () == key) return Tools[i]; } return null; } private void OnToolAdded (BaseTool tool) { if (ToolAdded != null) ToolAdded (this, new ToolEventArgs (tool)); } #region IEnumerable implementation public IEnumerator GetEnumerator () { return Tools.GetEnumerator (); } #endregion #region IEnumerable implementation System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator () { return Tools.GetEnumerator (); } #endregion class ToolSorter : Comparer { public override int Compare (BaseTool x, BaseTool y) { return x.Priority - y.Priority; } } } } pinta-1.3/Pinta.Core/Managers/WorkspaceManager.cs0000664000175000017500000002175411747026475023131 0ustar00cameroncameron00000000000000// // WorkspaceManager.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Linq; using Cairo; using Mono.Unix; using System.Collections.Generic; using Gtk; namespace Pinta.Core { public class WorkspaceManager { private int active_document_index = -1; private int new_file_name = 1; public WorkspaceManager () { OpenDocuments = new List (); } public int ActiveDocumentIndex { get { return active_document_index; } } public Document ActiveDocument { get { if (HasOpenDocuments) return OpenDocuments[active_document_index]; throw new InvalidOperationException ("Tried to get WorkspaceManager.ActiveDocument when there are no open Documents. Check HasOpenDocuments first."); } } public DocumentWorkspace ActiveWorkspace { get { if (HasOpenDocuments) return OpenDocuments[active_document_index].Workspace; throw new InvalidOperationException ("Tried to get WorkspaceManager.ActiveWorkspace when there are no open Documents. Check HasOpenDocuments first."); } } public Gdk.Size ImageSize { get { return ActiveDocument.ImageSize; } set { ActiveDocument.ImageSize = value; } } public Gdk.Size CanvasSize { get { return ActiveWorkspace.CanvasSize; } set { ActiveWorkspace.CanvasSize = value; } } public PointD Offset { get { return ActiveWorkspace.Offset; } } public double Scale { get { return ActiveWorkspace.Scale; } set { ActiveWorkspace.Scale = value; } } public List OpenDocuments { get; private set; } public bool HasOpenDocuments { get { return OpenDocuments.Count > 0; } } public Document CreateAndActivateDocument (string filename, Gdk.Size size) { Document doc = new Document (size); if (string.IsNullOrEmpty (filename)) doc.Filename = string.Format (Catalog.GetString ("Unsaved Image {0}"), new_file_name++); else doc.PathAndFileName = filename; OpenDocuments.Add (doc); OnDocumentCreated (new DocumentEventArgs (doc)); SetActiveDocument (doc); return doc; } public void CloseActiveDocument () { CloseDocument (ActiveDocument); } public void CloseDocument (Document document) { int index = OpenDocuments.IndexOf (document); OpenDocuments.Remove (document); if (index == active_document_index) { // If there's other documents open, switch to one of them if (HasOpenDocuments) { if (index > 0) SetActiveDocument (index - 1); else SetActiveDocument (index); } else { active_document_index = -1; OnActiveDocumentChanged (EventArgs.Empty); } } document.Close (); OnDocumentClosed (new DocumentEventArgs (document)); } public void Invalidate () { if (PintaCore.Workspace.HasOpenDocuments) ActiveWorkspace.Invalidate (); else OnCanvasInvalidated (new CanvasInvalidatedEventArgs ()); } public void Invalidate (Gdk.Rectangle rect) { ActiveWorkspace.Invalidate (rect); } public Document NewDocument (Gdk.Size imageSize, bool transparent) { Document doc = CreateAndActivateDocument (null, imageSize); doc.Workspace.CanvasSize = imageSize; // Start with an empty white layer Layer background = doc.AddNewLayer (Catalog.GetString ("Background")); if (!transparent) { using (Cairo.Context g = new Cairo.Context (background.Surface)) { g.SetSourceRGB (1, 1, 1); g.Paint (); } } doc.Workspace.History.PushNewItem (new BaseHistoryItem (Stock.New, Catalog.GetString ("New Image"))); doc.IsDirty = false; PintaCore.Actions.View.ZoomToWindow.Activate (); return doc; } // TODO: Standardize add to recent files public bool OpenFile (string file) { bool fileOpened = false; try { // Open the image and add it to the layers IImageImporter importer = PintaCore.System.ImageFormats.GetImporterByFile (file); importer.Import (file); PintaCore.Workspace.ActiveDocument.PathAndFileName = file; PintaCore.Workspace.ActiveWorkspace.History.PushNewItem (new BaseHistoryItem (Stock.Open, Catalog.GetString ("Open Image"))); PintaCore.Workspace.ActiveDocument.IsDirty = false; PintaCore.Workspace.ActiveDocument.HasFile = true; PintaCore.Actions.View.ZoomToWindow.Activate (); PintaCore.Workspace.Invalidate (); fileOpened = true; } catch { MessageDialog md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Catalog.GetString ("Could not open file: {0}"), file); md.Title = Catalog.GetString ("Error"); md.Run (); md.Destroy (); } return fileOpened; } public void ResizeImage (int width, int height) { ActiveDocument.ResizeImage (width, height); } public void ResizeCanvas (int width, int height, Anchor anchor) { ActiveDocument.ResizeCanvas (width, height, anchor); } public Cairo.PointD WindowPointToCanvas (double x, double y) { return ActiveWorkspace.WindowPointToCanvas (x, y); } public Gdk.Rectangle ClampToImageSize (Gdk.Rectangle r) { return ActiveDocument.ClampToImageSize (r); } public bool ImageFitsInWindow { get { return ActiveWorkspace.ImageFitsInWindow; } } internal void ResetTitle () { if (HasOpenDocuments) PintaCore.Chrome.MainWindow.Title = string.Format ("{0}{1} - Pinta", ActiveDocument.Filename, ActiveDocument.IsDirty ? "*" : ""); else PintaCore.Chrome.MainWindow.Title = "Pinta"; } public void SetActiveDocument (int index) { if (index >= OpenDocuments.Count) throw new ArgumentOutOfRangeException ("Tried to WorkspaceManager.SetActiveDocument greater than OpenDocuments."); if (index < 0) throw new ArgumentOutOfRangeException ("Tried to WorkspaceManager.SetActiveDocument less that zero."); SetActiveDocument (OpenDocuments[index]); } public void SetActiveDocument (Document document) { RadioAction action = PintaCore.Actions.Window.OpenWindows.Where (p => p.Name == document.Guid.ToString ()).FirstOrDefault (); if (action == null) throw new ArgumentOutOfRangeException ("Tried to WorkspaceManager.SetActiveDocument. Could not find document."); action.Activate (); } internal void SetActiveDocumentInternal (Document document) { // Work around a case where we closed a document but haven't updated // the active_document_index yet and it points to the closed document if (HasOpenDocuments && active_document_index != -1 && OpenDocuments.Count > active_document_index) PintaCore.Tools.Commit (); int index = OpenDocuments.IndexOf (document); active_document_index = index; OnActiveDocumentChanged (EventArgs.Empty); } #region Protected Methods protected void OnActiveDocumentChanged (EventArgs e) { if (ActiveDocumentChanged != null) ActiveDocumentChanged (this, EventArgs.Empty); ResetTitle (); } protected internal void OnCanvasInvalidated (CanvasInvalidatedEventArgs e) { if (CanvasInvalidated != null) CanvasInvalidated (this, e); } public void OnCanvasSizeChanged () { if (CanvasSizeChanged != null) CanvasSizeChanged (this, EventArgs.Empty); } protected internal void OnDocumentCreated (DocumentEventArgs e) { if (DocumentCreated != null) DocumentCreated (this, e); } protected internal void OnDocumentOpened (DocumentEventArgs e) { if (DocumentOpened != null) DocumentOpened (this, e); } protected internal void OnDocumentClosed (DocumentEventArgs e) { if (DocumentClosed != null) DocumentClosed (this, e); } #endregion #region Public Events public event EventHandler ActiveDocumentChanged; public event EventHandler CanvasInvalidated; public event EventHandler CanvasSizeChanged; public event EventHandler DocumentCreated; public event EventHandler DocumentOpened; public event EventHandler DocumentClosed; #endregion } } pinta-1.3/Pinta.Core/Pinta.Core.csproj0000664000175000017500000002557511747026475021005 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Library Pinta.Core Pinta.Core v4.0 65001 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin DEBUG prompt 4 false true AllRules.ruleset none false ..\bin prompt 4 false true AllRules.ruleset False ..\lib\ICSharpCode.SharpZipLib.dll ..\lib\Mono.Addins.dll Code Code {50AFF341-655E-45EF-83CA-58F8254E4C8B} Pinta.Resources False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true pinta-1.3/Pinta.Core/PintaCore.cs0000664000175000017500000000522111747026475020016 0ustar00cameroncameron00000000000000// // PintaCore.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Pinta.Resources; namespace Pinta.Core { public static class PintaCore { public static LayerManager Layers { get; private set; } public static PaintBrushManager PaintBrushes { get; private set; } public static ToolManager Tools { get; private set; } public static ChromeManager Chrome { get; private set; } public static PaletteManager Palette { get; private set; } public static ResourceManager Resources { get; private set; } public static ActionManager Actions { get; private set; } public static WorkspaceManager Workspace { get; private set; } public static HistoryManager History { get; private set; } public static SystemManager System { get; private set; } public static LivePreviewManager LivePreview { get; private set; } public static SettingsManager Settings { get; private set; } public static EffectsManager Effects { get; private set; } static PintaCore () { Resources = new ResourceManager (); Actions = new ActionManager (); Workspace = new WorkspaceManager (); Layers = new LayerManager (); PaintBrushes = new PaintBrushManager (); Tools = new ToolManager (); History = new HistoryManager (); System = new SystemManager (); LivePreview = new LivePreviewManager (); Palette = new PaletteManager (); Settings = new SettingsManager (); Chrome = new ChromeManager (); Effects = new EffectsManager (); } public static void Initialize () { Actions.RegisterHandlers (); } } } pinta-1.3/Pinta.Core/Properties/0000775000175000017500000000000011747026475017737 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Properties/AssemblyInfo.cs0000664000175000017500000000172111747026475022662 0ustar00cameroncameron00000000000000using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("Pinta.Core")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.3.0.0")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] pinta-1.3/Pinta.Core/Widgets/0000775000175000017500000000000011747026475017211 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Core/Widgets/MenuButton.cs0000664000175000017500000001143711747026475021646 0ustar00cameroncameron00000000000000// // MenuButton.cs // // Author: // Scott Peterson // // Copyright (c) 2008 Scott Peterson // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // using System; using Gtk; using Gdk; namespace Hyena.Widgets { public class MenuButton : ToolItem { private ToggleButton toggle_button = new ToggleButton (); private HBox box = new HBox (); private Alignment alignment; private Arrow arrow; private Widget button_widget; private Menu menu; private Widget size_widget; protected MenuButton (IntPtr ptr) : base (ptr) { } public MenuButton () { } public MenuButton (Widget buttonWidget, Menu menu, bool showArrow) { Construct (buttonWidget, menu, showArrow); } protected void Construct (Widget buttonWidget, Menu menu, bool showArrow) { WidgetFlags |= WidgetFlags.NoWindow; button_widget = buttonWidget; Menu = menu; toggle_button.Parent = this; toggle_button.FocusOnClick = false; toggle_button.Relief = ReliefStyle.None; toggle_button.Pressed += delegate { ShowMenu (); toggle_button.Active = true; }; toggle_button.Activated += delegate { ShowMenu (); }; box.Parent = this; if (showArrow) { box.PackStart (button_widget, true, true, 5); alignment = new Alignment (0f, 0.5f, 0f, 0f); arrow = new Arrow (ArrowType.Down, ShadowType.None); alignment.Add (arrow); box.PackStart (alignment, false, false, 0); size_widget = box; FocusChain = new Widget[] { toggle_button, box }; alignment.ShowAll (); alignment.NoShowAll = true; } else { toggle_button.Add (button_widget); size_widget = toggle_button; } ShowAll (); } public Widget ButtonWidget { get { return button_widget; } } public Menu Menu { get { return menu; } set { if (menu == value) return; if (menu != null) menu.Deactivated -= OnMenuDeactivated; menu = value; menu.Deactivated += OnMenuDeactivated; } } private void OnMenuDeactivated (object o, EventArgs args) { toggle_button.Active = false; } public ToggleButton ToggleButton { get { return toggle_button; } } public Arrow Arrow { get { return arrow; } } public bool ArrowVisible { get { return alignment.Visible; } set { alignment.Visible = value; } } protected override void OnSizeRequested (ref Requisition requisition) { requisition = size_widget.SizeRequest (); } protected override void OnSizeAllocated (Rectangle allocation) { box.SizeAllocate (allocation); toggle_button.SizeAllocate (allocation); base.OnSizeAllocated (allocation); } protected override void ForAll (bool include_internals, Callback callback) { callback (toggle_button); callback (box); } protected override void OnAdded (Widget widget) { } protected override void OnRemoved (Widget widget) { } protected void ShowMenu () { menu.Popup (null, null, PositionMenu, 1, Gtk.Global.CurrentEventTime); } private void PositionMenu (Menu menu, out int x, out int y, out bool push_in) { Gtk.Requisition menu_req = menu.SizeRequest (); int monitor_num = Screen.GetMonitorAtWindow (GdkWindow); Gdk.Rectangle monitor = Screen.GetMonitorGeometry (monitor_num < 0 ? 0 : monitor_num); GdkWindow.GetOrigin (out x, out y); y += Allocation.Y; x += Allocation.X + (Direction == TextDirection.Ltr ? Math.Max (Allocation.Width - menu_req.Width, 0) : -(menu_req.Width - Allocation.Width)); if (y + Allocation.Height + menu_req.Height <= monitor.Y + monitor.Height) { y += Allocation.Height; } else if (y - menu_req.Height >= monitor.Y) { y -= menu_req.Height; } else if (monitor.Y + monitor.Height - (y + Allocation.Height) > y) { y += Allocation.Height; } else { y -= menu_req.Height; } push_in = false; } } } pinta-1.3/Pinta.Core/Widgets/ToolBarDropDownButton.cs0000664000175000017500000000377511747026475023767 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; using Hyena.Widgets; using Gtk; namespace Pinta.Core { public class ToolBarDropDownButton : MenuButton { private Menu dropdown; private Image image; private ToolBarItem selected_item; public List Items { get; private set; } public ToolBarDropDownButton () { Items = new List (); dropdown = new Menu (); image = new Image (); Construct (image, dropdown, true); } public ToolBarItem AddItem (string text, string imageId) { return AddItem (text, imageId, null); } public ToolBarItem AddItem (string text, string imageId, object tag) { ToolBarItem item = new ToolBarItem (text, imageId, tag); dropdown.Add (item.Action.CreateMenuItem ()); Items.Add (item); item.Action.Activated += delegate { SetSelectedItem (item); }; if (selected_item == null) SetSelectedItem (item); return item; } public ToolBarItem SelectedItem { get { return selected_item; } set { if (selected_item != value) SetSelectedItem (value); } } protected void SetSelectedItem (ToolBarItem item) { Gdk.Pixbuf pb = PintaCore.Resources.GetIcon (item.Action.StockId); image.Pixbuf = pb; selected_item = item; TooltipText = item.Text; OnSelectedItemChanged (); } protected void OnSelectedItemChanged () { if (SelectedItemChanged != null) SelectedItemChanged (this, EventArgs.Empty); } public event EventHandler SelectedItemChanged; } public class ToolBarItem { public ToolBarItem () { } public ToolBarItem (string text, string imageId) { Text = text; ImageId = imageId; Action = new Gtk.Action (Text, Text, string.Empty, imageId); } public ToolBarItem (string text, string imageId, object tag) : this (text, imageId) { Tag = tag; } public string ImageId { get; set; } public object Tag { get; set; } public string Text { get; set; } public Gtk.Action Action { get; private set; } } } pinta-1.3/Pinta.Effects/0000775000175000017500000000000011747026475016272 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/.gitignore0000664000175000017500000000003311747026475020256 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.3/Pinta.Effects/Adjustments/0000775000175000017500000000000011747026475020573 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/Adjustments/AutoLevelEffect.cs0000664000175000017500000000263411747026475024144 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class AutoLevelEffect : BaseEffect { UnaryPixelOps.Level op; public override string Icon { get { return "Menu.Adjustments.AutoLevel.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Auto Level"); } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.L; } } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (op == null) { HistogramRgb histogram = new HistogramRgb (); histogram.UpdateHistogram (src, new Gdk.Rectangle (0, 0, src.Width, src.Height)); op = histogram.MakeLevelsAuto (); } if (op.isValid) op.Apply (dest, src, rois); } } } pinta-1.3/Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs0000664000175000017500000000234111747026475024677 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class BlackAndWhiteEffect : BaseEffect { UnaryPixelOp op = new UnaryPixelOps.Desaturate (); public override string Icon { get { return "Menu.Adjustments.BlackAndWhite.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Black and White"); } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.L; } } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op.Apply (dest, src, rois); } } } pinta-1.3/Pinta.Effects/Adjustments/BrightnessContrastEffect.cs0000664000175000017500000001141411747026475026066 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; namespace Pinta.Effects { public class BrightnessContrastEffect : BaseEffect { private int multiply; private int divide; private byte[] rgbTable; private bool table_calculated; public override string Icon { get { return "Menu.Adjustments.BrightnessAndContrast.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Brightness / Contrast"); } } public override bool IsConfigurable { get { return true; } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.C; } } public BrightnessContrastData Data { get { return EffectData as BrightnessContrastData; } } public BrightnessContrastEffect () { EffectData = new BrightnessContrastData (); EffectData.PropertyChanged += HandleEffectDataPropertyChanged; } /// /// If any of the effect data was changed, we need to recalculate the rgb table before rendering /// void HandleEffectDataPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e) { table_calculated = false; } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (!table_calculated) Calculate (); foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* srcRowPtr = src.GetPointAddressUnchecked (rect.Left, y); ColorBgra* dstRowPtr = dest.GetPointAddressUnchecked (rect.Left, y); ColorBgra* dstRowEndPtr = dstRowPtr + rect.Width; if (divide == 0) { while (dstRowPtr < dstRowEndPtr) { ColorBgra col = *srcRowPtr; int i = col.GetIntensityByte (); uint c = rgbTable[i]; dstRowPtr->Bgra = (col.Bgra & 0xff000000) | c | (c << 8) | (c << 16); ++dstRowPtr; ++srcRowPtr; } } else { while (dstRowPtr < dstRowEndPtr) { ColorBgra col = *srcRowPtr; int i = col.GetIntensityByte (); int shiftIndex = i * 256; col.R = rgbTable[shiftIndex + col.R]; col.G = rgbTable[shiftIndex + col.G]; col.B = rgbTable[shiftIndex + col.B]; *dstRowPtr = col; ++dstRowPtr; ++srcRowPtr; } } } } } private void Calculate () { if (Data.Contrast < 0) { multiply = Data.Contrast + 100; divide = 100; } else if (Data.Contrast > 0) { multiply = 100; divide = 100 - Data.Contrast; } else { multiply = 1; divide = 1; } if (rgbTable == null) rgbTable = new byte[65536]; if (divide == 0) { for (int intensity = 0; intensity < 256; intensity++) { if (intensity + Data.Brightness < 128) rgbTable[intensity] = 0; else rgbTable[intensity] = 255; } } else if (divide == 100) { for (int intensity = 0; intensity < 256; intensity++) { int shift = (intensity - 127) * multiply / divide + 127 - intensity + Data.Brightness; for (int col = 0; col < 256; ++col) { int index = (intensity * 256) + col; rgbTable[index] = Utility.ClampToByte (col + shift); } } } else { for (int intensity = 0; intensity < 256; ++intensity) { int shift = (intensity - 127 + Data.Brightness) * multiply / divide + 127 - intensity; for (int col = 0; col < 256; ++col) { int index = (intensity * 256) + col; rgbTable[index] = Utility.ClampToByte (col + shift); } } } table_calculated = true; } public class BrightnessContrastData : EffectData { private int brightness = 0; private int contrast = 0; public int Brightness { get { return brightness; } set { if (value != brightness) { brightness = value; FirePropertyChanged ("Brightness"); } } } public int Contrast { get { return contrast; } set { if (value != contrast) { contrast = value; FirePropertyChanged ("Contrast"); } } } [Skip] public override bool IsDefault { get { return Brightness == 0 && Contrast == 0; } } } } } pinta-1.3/Pinta.Effects/Adjustments/CurvesEffect.cs0000664000175000017500000001001211747026475023500 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.ComponentModel; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class CurvesEffect : BaseEffect { UnaryPixelOp op = null; public override string Icon { get { return "Menu.Adjustments.Curves.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Curves"); } } public override bool IsConfigurable { get { return true; } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.M; } } public CurvesData Data { get { return EffectData as CurvesData; } } public CurvesEffect () { EffectData = new CurvesData (); } public override bool LaunchConfiguration () { var dialog = new CurvesDialog (Data); dialog.Title = Name; dialog.Icon = PintaCore.Resources.GetIcon (Icon); int response = dialog.Run (); dialog.Destroy (); return (response == (int)Gtk.ResponseType.Ok); } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (Data.ControlPoints == null) return; if (op == null) op = MakeUop (); op.Apply (dest, src, rois); } private UnaryPixelOp MakeUop() { UnaryPixelOp op; byte[][] transferCurves; int entries; switch (Data.Mode) { case ColorTransferMode.Rgb: UnaryPixelOps.ChannelCurve cc = new UnaryPixelOps.ChannelCurve(); transferCurves = new byte[][] { cc.CurveR, cc.CurveG, cc.CurveB }; entries = 256; op = cc; break; case ColorTransferMode.Luminosity: UnaryPixelOps.LuminosityCurve lc = new UnaryPixelOps.LuminosityCurve(); transferCurves = new byte[][] { lc.Curve }; entries = 256; op = lc; break; default: throw new InvalidEnumArgumentException(); } int channels = transferCurves.Length; for (int channel = 0; channel < channels; channel++) { SortedList channelControlPoints = Data.ControlPoints[channel]; IList xa = channelControlPoints.Keys; IList ya = channelControlPoints.Values; SplineInterpolator interpolator = new SplineInterpolator(); int length = channelControlPoints.Count; for (int i = 0; i < length; i++) { interpolator.Add(xa[i], ya[i]); } for (int i = 0; i < entries; i++) { transferCurves[channel][i] = Utility.ClampToByte(interpolator.Interpolate(i)); } } return op; } } public class CurvesData : EffectData { public SortedList[] ControlPoints { get; set; } public ColorTransferMode Mode { get; set; } public override EffectData Clone () { // Not sure if we have to copy contents of ControlPoints // var controlPoints = new SortedList [ControlPoints.Length]; // // for (int i = 0; i < ControlPoints.Length; i++) // controlPoints[i] = new SortedList (ControlPoints[i]); return new CurvesData () { Mode = Mode, ControlPoints = ControlPoints }; } } } pinta-1.3/Pinta.Effects/Adjustments/HueSaturationEffect.cs0000664000175000017500000000435411747026475025040 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; namespace Pinta.Effects { public class HueSaturationEffect : BaseEffect { UnaryPixelOp op; public override string Icon { get { return "Menu.Adjustments.HueAndSaturation.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Hue / Saturation"); } } public override bool IsConfigurable { get { return true; } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.U; } } public HueSaturationEffect () { EffectData = new HueSaturationData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { int hue_delta = Data.Hue; int sat_delta = Data.Saturation; int lightness = Data.Lightness; if (op == null) { if (hue_delta == 0 && sat_delta == 100 && lightness == 0) op = new UnaryPixelOps.Identity (); else op = new UnaryPixelOps.HueSaturationLightness (hue_delta, sat_delta, lightness); } op.Apply (dest, src, rois); } private HueSaturationData Data { get { return EffectData as HueSaturationData; } } private class HueSaturationData : EffectData { [MinimumValue (-180), MaximumValue (180)] public int Hue = 0; [MinimumValue (0), MaximumValue (200)] public int Saturation = 100; public int Lightness = 0; [Skip] public override bool IsDefault { get { return Hue == 0 && Saturation == 100 && Lightness == 0; } } } } } pinta-1.3/Pinta.Effects/Adjustments/InvertColorsEffect.cs0000664000175000017500000000233311747026475024671 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class InvertColorsEffect : BaseEffect { UnaryPixelOp op = new UnaryPixelOps.Invert (); public override string Icon { get { return "Menu.Adjustments.InvertColors.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Invert Colors"); } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.I; } } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op.Apply (dest, src, rois); } } } pinta-1.3/Pinta.Effects/Adjustments/LevelsEffect.cs0000664000175000017500000000406511747026475023476 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class LevelsEffect : BaseEffect { public override string Icon { get { return "Menu.Adjustments.Levels.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Levels"); } } public override bool IsConfigurable { get { return true; } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.L; } } public override Gdk.ModifierType AdjustmentMenuKeyModifiers { get { return Gdk.ModifierType.ControlMask; } } public LevelsData Data { get { return EffectData as LevelsData; } } public LevelsEffect () { EffectData = new LevelsData (); } public override bool LaunchConfiguration () { var dialog = new LevelsDialog (Data); dialog.Title = Name; dialog.Icon = PintaCore.Resources.GetIcon (Icon); int response = dialog.Run (); dialog.Destroy (); return (response == (int)Gtk.ResponseType.Ok); } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { Data.Levels.Apply (dest, src, rois); } } public class LevelsData : EffectData { public UnaryPixelOps.Level Levels { get; set; } public LevelsData () { Levels = new UnaryPixelOps.Level (); } public override EffectData Clone () { return new LevelsData () { Levels = (UnaryPixelOps.Level) Levels.Clone () }; } } } pinta-1.3/Pinta.Effects/Adjustments/PosterizeEffect.cs0000664000175000017500000000367711747026475024240 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class PosterizeEffect : BaseEffect { UnaryPixelOps.PosterizePixel op = null; public override string Icon { get { return "Menu.Adjustments.Posterize.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Posterize"); } } public override bool IsConfigurable { get { return true; } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.P; } } public PosterizeData Data { get { return EffectData as PosterizeData; } } public PosterizeEffect () { EffectData = new PosterizeData (); } public override bool LaunchConfiguration () { var dialog = new PosterizeDialog (); dialog.Title = Name; dialog.Icon = PintaCore.Resources.GetIcon (Icon); dialog.EffectData = Data; int response = dialog.Run (); dialog.Destroy (); return (response == (int)Gtk.ResponseType.Ok); } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (op == null) op = new UnaryPixelOps.PosterizePixel (Data.Red, Data.Green, Data.Blue); op.Apply (dest, src, rois); } } public class PosterizeData : EffectData { public int Red = 16; public int Green = 16; public int Blue = 16; } } pinta-1.3/Pinta.Effects/Adjustments/SepiaEffect.cs0000664000175000017500000000302311747026475023276 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public class SepiaEffect : BaseEffect { UnaryPixelOp desat = new UnaryPixelOps.Desaturate (); UnaryPixelOp level = new UnaryPixelOps.Desaturate (); public override string Icon { get { return "Menu.Adjustments.Sepia.png"; } } public override string Name { get { return Mono.Unix.Catalog.GetString ("Sepia"); } } public override Gdk.Key AdjustmentMenuKey { get { return Gdk.Key.E; } } public SepiaEffect () { desat = new UnaryPixelOps.Desaturate (); level = new UnaryPixelOps.Level ( ColorBgra.Black, ColorBgra.White, new float[] { 1.2f, 1.0f, 0.8f }, ColorBgra.Black, ColorBgra.White); } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { desat.Apply (dest, src, rois); level.Apply (dest, dest, rois); } } } pinta-1.3/Pinta.Effects/CoreEffectsExtension.cs0000664000175000017500000000522511747026475022712 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; using Pinta.Core; namespace Pinta.Effects { [Mono.Addins.Extension] class CoreEffectsExtension : IExtension { #region IExtension Members public void Initialize () { // Add the adjustments PintaCore.Effects.RegisterAdjustment (new AutoLevelEffect ()); PintaCore.Effects.RegisterAdjustment (new BlackAndWhiteEffect ()); PintaCore.Effects.RegisterAdjustment (new BrightnessContrastEffect ()); PintaCore.Effects.RegisterAdjustment (new CurvesEffect ()); PintaCore.Effects.RegisterAdjustment (new HueSaturationEffect ()); PintaCore.Effects.RegisterAdjustment (new InvertColorsEffect ()); PintaCore.Effects.RegisterAdjustment (new LevelsEffect ()); PintaCore.Effects.RegisterAdjustment (new PosterizeEffect ()); PintaCore.Effects.RegisterAdjustment (new SepiaEffect ()); // Add the effects PintaCore.Effects.RegisterEffect (new AddNoiseEffect ()); PintaCore.Effects.RegisterEffect (new BulgeEffect ()); PintaCore.Effects.RegisterEffect (new CloudsEffect ()); PintaCore.Effects.RegisterEffect (new EdgeDetectEffect ()); PintaCore.Effects.RegisterEffect (new EmbossEffect ()); PintaCore.Effects.RegisterEffect (new FragmentEffect ()); PintaCore.Effects.RegisterEffect (new FrostedGlassEffect ()); PintaCore.Effects.RegisterEffect (new GaussianBlurEffect ()); PintaCore.Effects.RegisterEffect (new GlowEffect ()); PintaCore.Effects.RegisterEffect (new InkSketchEffect ()); PintaCore.Effects.RegisterEffect (new JuliaFractalEffect ()); PintaCore.Effects.RegisterEffect (new MandelbrotFractalEffect ()); PintaCore.Effects.RegisterEffect (new MedianEffect ()); PintaCore.Effects.RegisterEffect (new MotionBlurEffect ()); PintaCore.Effects.RegisterEffect (new OilPaintingEffect ()); PintaCore.Effects.RegisterEffect (new OutlineEffect ()); PintaCore.Effects.RegisterEffect (new PencilSketchEffect ()); PintaCore.Effects.RegisterEffect (new PixelateEffect ()); PintaCore.Effects.RegisterEffect (new PolarInversionEffect ()); PintaCore.Effects.RegisterEffect (new RadialBlurEffect ()); PintaCore.Effects.RegisterEffect (new RedEyeRemoveEffect ()); PintaCore.Effects.RegisterEffect (new ReduceNoiseEffect ()); PintaCore.Effects.RegisterEffect (new ReliefEffect ()); PintaCore.Effects.RegisterEffect (new SharpenEffect ()); PintaCore.Effects.RegisterEffect (new TileEffect ()); PintaCore.Effects.RegisterEffect (new TwistEffect ()); PintaCore.Effects.RegisterEffect (new UnfocusEffect ()); PintaCore.Effects.RegisterEffect (new ZoomBlurEffect ()); } public void Uninitialize () { } #endregion } } pinta-1.3/Pinta.Effects/Dialogs/0000775000175000017500000000000011747026475017654 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/Dialogs/Effects.CurvesDialog.cs0000664000175000017500000002546011747026475024157 0ustar00cameroncameron00000000000000// // CurvesDialog.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using Cairo; using Pinta.Core; namespace Pinta.Effects { public partial class CurvesDialog : Gtk.Dialog { private class ControlPointDrawingInfo { public Color Color { get; set; } public bool IsActive { get; set; } } //drawing area width and height private const int size = 256; //control point radius private const int radius = 6; private int channels; //last added control point x; private int last_cpx; //control points for luminosity transfer mode private SortedList[] luminosity_cps; //control points for rg transfer mode private SortedList[] rgb_cps; public SortedList[] ControlPoints { get { return (Mode == ColorTransferMode.Luminosity) ? luminosity_cps : rgb_cps; } set { if (Mode == ColorTransferMode.Luminosity) luminosity_cps = value; else rgb_cps = value; } } public ColorTransferMode Mode { get { return (comboMap.Active == 0) ? ColorTransferMode.Rgb : ColorTransferMode.Luminosity; } } public CurvesData EffectData { get; private set; } public CurvesDialog (CurvesData effectData) { this.Build (); EffectData = effectData; drawing.DoubleBuffered = true; comboMap.Changed += HandleComboMapChanged; buttonReset.Clicked += HandleButtonResetClicked; checkRed.Toggled += HandleCheckToggled; checkGreen.Toggled += HandleCheckToggled; checkBlue.Toggled += HandleCheckToggled; drawing.ExposeEvent += HandleDrawingExposeEvent; drawing.MotionNotifyEvent += HandleDrawingMotionNotifyEvent; drawing.LeaveNotifyEvent += HandleDrawingLeaveNotifyEvent; drawing.ButtonPressEvent += HandleDrawingButtonPressEvent; ResetControlPoints (); AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; } private void UpdateLivePreview (string propertyName) { if (EffectData != null) { EffectData.ControlPoints = ControlPoints; EffectData.Mode = Mode; EffectData.FirePropertyChanged (propertyName); } } private void HandleCheckToggled (object o, EventArgs args) { InvalidateDrawing (); } void HandleButtonResetClicked (object sender, EventArgs e) { ResetControlPoints (); InvalidateDrawing (); } private void ResetControlPoints() { channels = (Mode == ColorTransferMode.Luminosity) ? 1 : 3; ControlPoints = new SortedList[channels]; for (int i = 0; i < channels; i++) { SortedList list = new SortedList (); list.Add (0, 0); list.Add (size - 1, size - 1); ControlPoints [i] = list; } UpdateLivePreview ("ControlPoints"); } private void HandleComboMapChanged (object sender, EventArgs e) { if (ControlPoints == null) ResetControlPoints (); else UpdateLivePreview ("Mode"); bool visible = (Mode == ColorTransferMode.Rgb); checkRed.Visible = checkGreen.Visible = checkBlue.Visible = visible; InvalidateDrawing (); } private void InvalidateDrawing () { //to invalidate whole drawing area drawing.GdkWindow.Invalidate(); } private void HandleDrawingLeaveNotifyEvent (object o, Gtk.LeaveNotifyEventArgs args) { InvalidateDrawing (); } private IEnumerable> GetActiveControlPoints () { if (Mode == ColorTransferMode.Luminosity) yield return ControlPoints [0]; else { if (checkRed.Active) yield return ControlPoints [0]; if (checkGreen.Active) yield return ControlPoints [1]; if (checkBlue.Active) yield return ControlPoints [2]; } } private void AddControlPoint (int x, int y) { foreach (var controlPoints in GetActiveControlPoints ()) { controlPoints [x] = size - 1 - y; } last_cpx = x; UpdateLivePreview ("ControlPoints"); } private void HandleDrawingMotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) { int x, y; Gdk.ModifierType mask; drawing.GdkWindow.GetPointer (out x, out y, out mask); if (x < 0 || x >= size || y < 0 || y >=size) return; if (args.Event.State == Gdk.ModifierType.Button1Mask) { // first and last control point cannot be removed if (last_cpx != 0 && last_cpx != size - 1) { foreach (var controlPoints in GetActiveControlPoints ()) { if (controlPoints.ContainsKey (last_cpx)) controlPoints.Remove (last_cpx); } } AddControlPoint (x, y); } InvalidateDrawing (); } private void HandleDrawingButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { int x, y; Gdk.ModifierType mask; drawing.GdkWindow.GetPointer (out x, out y, out mask); if (args.Event.Button == 1) { AddControlPoint (x, y); } // user pressed right button if (args.Event.Button == 3) { foreach (var controlPoints in GetActiveControlPoints ()) { for (int i = 0; i < controlPoints.Count; i++) { int cpx = controlPoints.Keys [i]; int cpy = size - 1 - (int)controlPoints.Values [i]; //we cannot allow user to remove first or last control point if (cpx == 0 && cpy == size - 1) continue; if (cpx == size -1 && cpy == 0) continue; if (CheckControlPointProximity (cpx, cpy, x, y)) { controlPoints.RemoveAt (i); break; } } } } InvalidateDrawing(); } private void DrawBorder (Context g) { g.Rectangle (0, 0, size - 1, size - 1); g.LineWidth = 1; g.Stroke (); } private void DrawPointerCross (Context g) { int x, y; Gdk.ModifierType mask; drawing.GdkWindow.GetPointer (out x, out y, out mask); if (x >= 0 && x < size && y >= 0 && y < size) { g.LineWidth = 0.5; g.MoveTo (x, 0); g.LineTo (x, size); g.MoveTo (0, y); g.LineTo (size , y); g.Stroke (); this.labelPoint.Text = string.Format ("({0}, {1})", x, y); } else this.labelPoint.Text = string.Empty; } private void DrawGrid (Context g) { g.Color = new Color (0.05, 0.05, 0.05); g.SetDash (new double[] {4, 4}, 2); g.LineWidth = 1; for (int i = 1; i < 4; i++) { g.MoveTo (i * size / 4, 0); g.LineTo (i * size / 4, size); g.MoveTo (0, i * size / 4); g.LineTo (size, i * size / 4); } g.MoveTo (0, size - 1); g.LineTo (size - 1, 0); g.Stroke (); g.SetDash (new double[] {}, 0); } //cpx, cpyx - control point's x and y coordinates private bool CheckControlPointProximity (int cpx, int cpy, int x, int y) { return (Math.Sqrt (Math.Pow (cpx - x, 2) + Math.Pow (cpy - y, 2)) < radius); } private IEnumerator GetDrawingInfos () { if (Mode == ColorTransferMode.Luminosity) yield return new ControlPointDrawingInfo () { Color = new Color (0.4, 0.4, 0.4), IsActive = true }; else { yield return new ControlPointDrawingInfo () { Color = new Color (0.9, 0, 0), IsActive = checkRed.Active }; yield return new ControlPointDrawingInfo () { Color = new Color (0, 0.9, 0), IsActive = checkGreen.Active }; yield return new ControlPointDrawingInfo () { Color = new Color(0, 0, 0.9), IsActive = checkBlue.Active }; } } private void DrawControlPoints (Context g) { int x, y; Gdk.ModifierType mask; drawing.GdkWindow.GetPointer (out x, out y, out mask); var infos = GetDrawingInfos (); foreach (var controlPoints in ControlPoints) { infos.MoveNext (); var info = infos.Current; for (int i = 0; i < controlPoints.Count; i++) { int cpx = controlPoints.Keys [i]; int cpy = size - 1 - (int)controlPoints.Values [i]; Rectangle rect; if (info.IsActive) { if (CheckControlPointProximity (cpx, cpy, x, y)) { rect = new Rectangle (cpx - (radius + 2) / 2, cpy - (radius + 2) / 2, radius + 2, radius + 2); g.DrawEllipse (rect, new Color (0.2, 0.2, 0.2), 2); rect = new Rectangle (cpx - radius / 2, cpy - radius / 2, radius, radius); g.FillEllipse (rect, new Color (0.9, 0.9, 0.9)); } else { rect = new Rectangle (cpx - radius / 2, cpy - radius / 2, radius, radius); g.DrawEllipse (rect, info.Color, 2); } } rect = new Rectangle (cpx - (radius - 2) / 2, cpy - (radius - 2) / 2, radius - 2, radius -2); g.FillEllipse (rect, info.Color); } } g.Stroke (); } private void DrawSpline (Context g) { var infos = GetDrawingInfos (); foreach (var controlPoints in ControlPoints) { int points = controlPoints.Count; SplineInterpolator interpolator = new SplineInterpolator (); IList xa = controlPoints.Keys; IList ya = controlPoints.Values; PointD[] line = new PointD [size]; for (int i = 0; i < points; i++) { interpolator.Add (xa [i], ya [i]); } for (int i = 0; i < line.Length; i++) { line[i].X = (float)i; line[i].Y = (float)(Utility.Clamp(size - 1 - interpolator.Interpolate (i), 0, size - 1)); } g.LineWidth = 2; g.LineJoin = LineJoin.Round; g.MoveTo (line [0]); for (int i = 1; i < line.Length; i++) g.LineTo (line [i]); infos.MoveNext (); var info = infos.Current; g.Color = info.Color; g.LineWidth = info.IsActive ? 2 : 1; g.Stroke (); } } private void HandleDrawingExposeEvent (object o, Gtk.ExposeEventArgs args) { using (Context g = Gdk.CairoHelper.Create (drawing.GdkWindow)) { DrawBorder (g); DrawPointerCross (g); DrawSpline (g); DrawGrid (g); DrawControlPoints (g); } } } } pinta-1.3/Pinta.Effects/Dialogs/Effects.LevelsDialog.cs0000664000175000017500000003707011747026475024142 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// // Additional code: // // LevelsDialog.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Cairo; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta.Effects { public partial class LevelsDialog : Gtk.Dialog { private bool[] mask; public LevelsData EffectData { get; private set; } public LevelsDialog (LevelsData effectData) { this.Build (); EffectData = effectData; mask = new bool[] {true, true, true}; this.HasSeparator = false; //hack allowing adding hbox with rgb checkboxes into dialog action area VBox.Remove (hboxBottom); foreach (Widget widget in hboxBottom) { hboxBottom.Remove (widget); if (widget == buttonOk) { AddActionWidget (widget, ResponseType.Ok); } else { AddActionWidget (widget, ResponseType.None); } } UpdateInputHistogram (); Reset (); UpdateLevels (); checkRed.Toggled += HandleCheckRedToggled; checkGreen.Toggled += HandleCheckGreenToggled; checkBlue.Toggled += HandleCheckBlueToggled; buttonReset.Clicked += HandleButtonResetClicked; buttonAuto.Clicked += HandleButtonAutoClicked; buttonCancel.Clicked += HandleButtonCancelClicked; buttonOk.Clicked += HandleButtonOkClicked; spinInLow.ValueChanged += HandleSpinInLowValueChanged; spinInHigh.ValueChanged += HandleSpinInHighValueChanged; spinOutLow.ValueChanged += HandleSpinOutLowValueChanged; spinOutGamma.ValueChanged += HandleSpinOutGammaValueChanged; spinOutHigh.ValueChanged += HandleSpinOutHighValueChanged; gradientInput.ValueChanged += HandleGradientInputValueChanged; gradientOutput.ValueChanged += HandleGradientOutputValueChanged; gradientInput.ButtonReleaseEvent += HandleGradientButtonReleaseEvent; gradientOutput.ButtonReleaseEvent += HandleGradientButtonReleaseEvent; gradientInput.ButtonPressEvent += HandleGradientButtonPressEvent; gradientOutput.ButtonPressEvent += HandleGradientButtonPressEvent; colorpanelInLow.ButtonPressEvent += HandleColorPanelButtonPressEvent; colorpanelInHigh.ButtonPressEvent += HandleColorPanelButtonPressEvent; colorpanelOutLow.ButtonPressEvent += HandleColorPanelButtonPressEvent; colorpanelOutHigh.ButtonPressEvent += HandleColorPanelButtonPressEvent; if (Gtk.Global.AlternativeDialogButtonOrder (this.Screen)) { hboxBottom.ReorderChild (buttonCancel, 0); } buttonOk.CanDefault = true; DefaultResponse = ResponseType.Ok; spinInLow.ActivatesDefault = true; spinInHigh.ActivatesDefault = true; spinOutGamma.ActivatesDefault = true; spinOutLow.ActivatesDefault = true; spinOutHigh.ActivatesDefault = true; } private UnaryPixelOps.Level Levels { get { if (EffectData == null) throw new InvalidOperationException ("Effect data not set on levels dialog."); return EffectData.Levels; } set { if (value == null) throw new ArgumentNullException (); EffectData.Levels = value; } } private void UpdateLivePreview () { if (EffectData != null) EffectData.FirePropertyChanged ("Levels"); } private void UpdateInputHistogram () { ImageSurface surface = PintaCore.Layers.CurrentLayer.Surface; Gdk.Rectangle rect = PintaCore.Layers.SelectionPath.GetBounds (); histogramInput.Histogram.UpdateHistogram (surface, rect); UpdateOutputHistogram (); } private void UpdateOutputHistogram () { histogramOutput.Histogram.SetFromLeveledHistogram(histogramInput.Histogram, Levels); } private void Reset () { histogramOutput.ResetHistogram (); spinInLow.Value = 0; spinInHigh.Value = 255; spinOutLow.Value = 0; spinOutGamma.Value = 1.0; spinOutHigh.Value = 255; } private void HandleButtonResetClicked (object sender, EventArgs e) { Reset (); } private void UpdateFromLevelsOp () { disable_updating = true; spinInHigh.Value = MaskAvg (Levels.ColorInHigh); spinInLow.Value = MaskAvg (Levels.ColorInLow); float gamma = MaskGamma (); int lo = MaskAvg (Levels.ColorOutLow); int hi = MaskAvg (Levels.ColorOutHigh); spinOutHigh.Value = hi; spinOutGamma.Value = gamma; spinOutLow.Value = lo; disable_updating = false; } private void HandleButtonAutoClicked (object sender, EventArgs e) { Levels = histogramInput.Histogram.MakeLevelsAuto (); UpdateFromLevelsOp (); UpdateLevels (); } private void HandleSpinInLowValueChanged (object sender, EventArgs e) { gradientInput.SetValue (0, spinInLow.ValueAsInt); } private void HandleSpinInHighValueChanged (object sender, EventArgs e) { gradientInput.SetValue (1, spinInHigh.ValueAsInt); } private void HandleSpinOutLowValueChanged (object sender, EventArgs e) { gradientOutput.SetValue (0, spinOutLow.ValueAsInt); } private int FromGammaValue () { int lo = gradientOutput.GetValue (0); int hi = gradientOutput.GetValue (2); int med = (int)(lo + (hi - lo) * Math.Pow (0.5, spinOutGamma.Value)); return med; } private void HandleSpinOutGammaValueChanged (object sender, EventArgs e) { gradientOutput.SetValue (1, FromGammaValue ()); } private void HandleSpinOutHighValueChanged (object sender, EventArgs e) { gradientOutput.SetValue (2, spinOutHigh.ValueAsInt); } private int MaskAvg(ColorBgra before) { int count = 0, total = 0; for (int c = 0; c < 3; c++) { if (mask [c]) { total += before [c]; count++; } } if (count > 0) { return total / count; } else { return 0; } } private ColorBgra UpdateByMask (ColorBgra before, byte val) { ColorBgra after = before; int average = -1, oldaverage = -1; if (!(mask [0] || mask [1] || mask [2])) { return before; } do { float factor; oldaverage = average; average = MaskAvg (after); if (average == 0) { break; } factor = (float)val / average; for (int c = 0; c < 3; c++) { if (mask [c]) { after [c] = (byte)Utility.ClampToByte (after [c] * factor); } } } while (average != val && oldaverage != average); while (average != val) { average = MaskAvg (after); int diff = val - average; for (int c = 0; c < 3; c++) { if (mask [c]) { after [c] = (byte)Utility.ClampToByte(after [c] + diff); } } } after.A = 255; return after; } private float MaskGamma () { int count = 0; float total = 0; for (int c = 0; c < 3; c++) { if (mask [c]) { total += Levels.GetGamma (c); count++; } } if (count > 0) { return total / count; } else { return 1; } } private void UpdateGammaByMask (float val) { float average = -1; if (!(mask [0] || mask [1] || mask [2])) return; do { average = MaskGamma (); float factor = val / average; for (int c = 0; c < 3; c++) { if (mask [c]) { Levels.SetGamma (c, factor * Levels.GetGamma (c)); } } } while (Math.Abs (val - average) > 0.001); } private Color GetOutMidColor () { return Levels.Apply (histogramInput.Histogram.GetMeanColor ()).ToCairoColor (); } //hack to avoid reccurent invocation of UpdateLevels private bool disable_updating; //when user moves triangles inside gradient widget, //we don't want to redraw histogram each time Levels values change. //maximum number of skipped updates private const int max_skip = 5; //skipped updates counter private int skip_counter = max_skip; private bool button_down = false; private void UpdateLevels () { if(disable_updating) return; disable_updating = true; if(skip_counter == max_skip || !button_down) { Levels.ColorOutHigh = UpdateByMask (Levels.ColorOutHigh, (byte)spinOutHigh.Value); Levels.ColorOutLow = UpdateByMask (Levels.ColorOutLow, (byte)spinOutLow.Value); UpdateGammaByMask ((float) spinOutGamma.Value); Levels.ColorInHigh = UpdateByMask (Levels.ColorInHigh, (byte)spinInHigh.Value); Levels.ColorInLow = UpdateByMask (Levels.ColorInLow, (byte)spinInLow.Value); colorpanelInLow.SetCairoColor (Levels.ColorInLow.ToCairoColor ()); colorpanelInHigh.SetCairoColor (Levels.ColorInHigh.ToCairoColor ()); colorpanelOutLow.SetCairoColor (Levels.ColorOutLow.ToCairoColor ()); colorpanelOutMid.SetCairoColor (GetOutMidColor ()); colorpanelOutHigh.SetCairoColor (Levels.ColorOutHigh.ToCairoColor ()); UpdateOutputHistogram (); skip_counter = 0; } else skip_counter++; GdkWindow.Invalidate (); disable_updating = false; UpdateLivePreview (); } private void HandleGradientButtonPressEvent (object o, ButtonPressEventArgs args) { button_down = true; } private void HandleGradientButtonReleaseEvent (object o, ButtonReleaseEventArgs args) { button_down = false; if (skip_counter != 0) UpdateLevels (); } private void HandleGradientInputValueChanged (object sender, IndexEventArgs e) { int val = gradientInput.GetValue (e.Index); if (e.Index == 0) spinInLow.Value = val; else spinInHigh.Value = val; UpdateLevels (); } private void HandleGradientOutputValueChanged (object sender, IndexEventArgs e) { if (gradientOutput.ValueIndex != -1 && gradientOutput.ValueIndex != e.Index) return; int val = gradientOutput.GetValue (e.Index); int hi = gradientOutput.GetValue (2); int lo = gradientOutput.GetValue (0); int med = FromGammaValue (); switch (e.Index) { case 0 : spinOutLow.Value = val; gradientOutput.SetValue (1, med); break; case 1 : med = gradientOutput.GetValue (1); spinOutGamma.Value = Utility.Clamp(1 / Math.Log (0.5, (float)(med - lo) / (float)(hi - lo)), 0.1, 10.0); break; case 2 : spinOutHigh.Value = val; gradientOutput.SetValue (1, med); break; } UpdateLevels (); } private void MaskChanged () { ColorBgra max = ColorBgra.Black; max.Bgra |= mask[0] ? (uint)0xFF0000 : 0; max.Bgra |= mask[1] ? (uint)0xFF00 : 0; max.Bgra |= mask[2] ? (uint)0xFF : 0; Color maxcolor = max.ToCairoColor (); gradientInput.MaxColor = maxcolor; gradientOutput.MaxColor = maxcolor; for (int i = 0; i < 3; i++) { histogramInput.SetSelected (i, mask[i]); histogramOutput.SetSelected (i, mask[i]); } GdkWindow.Invalidate (); } private void HandleCheckRedToggled (object sender, EventArgs e) { mask [0] = checkRed.Active; MaskChanged(); } private void HandleCheckGreenToggled (object sender, EventArgs e) { mask [1] = checkGreen.Active; MaskChanged (); } private void HandleCheckBlueToggled (object sender, EventArgs e) { mask [2] = checkBlue.Active; MaskChanged (); } private void HandleButtonOkClicked (object sender, EventArgs e) { Respond (ResponseType.Ok); } private void HandleButtonCancelClicked (object sender, EventArgs e) { Respond (ResponseType.Cancel); } private void HandleColorPanelButtonPressEvent (object sender, ButtonPressEventArgs args) { if (args.Event.Type != Gdk.EventType.TwoButtonPress) return; Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog ("Choose Color"); ColorPanelWidget panel = (ColorPanelWidget)sender; csd.ColorSelection.PreviousColor = panel.CairoColor.ToGdkColor (); csd.ColorSelection.CurrentColor = panel.CairoColor.ToGdkColor (); csd.ColorSelection.CurrentAlpha = panel.CairoColor.GdkColorAlpha (); int response = csd.Run (); if (response == (int)Gtk.ResponseType.Ok) { ColorBgra col = csd.ColorSelection.CurrentColor.ToBgraColor (); if (panel == colorpanelInLow) { Levels.ColorInLow = col; } else if (panel == colorpanelInHigh) { Levels.ColorInHigh = col; } else if (panel == colorpanelOutLow) { Levels.ColorOutLow = col; // } else if (panel == colorpanelOutMid) { // ColorBgra lo = Levels.ColorInLow; // ColorBgra md = histogramInput.Histogram.GetMeanColor(); // ColorBgra hi = Levels.ColorInHigh; // ColorBgra out_lo = Levels.ColorOutLow; // ColorBgra out_hi = Levels.ColorOutHigh; // // for (int i = 0; i < 3; i++) { // double logA = (col[i] - out_lo[i]) / (out_hi[i] - out_lo[i]); // double logBase = (md[i] - lo[i]) / (hi[i] - lo[i]); // double logVal = (logBase == 1.0) ? 0.0 : Math.Log (logA, logBase); // // Levels.SetGamma(i, (float)Utility.Clamp (logVal, 0.1, 10.0)); // } } else if (panel == colorpanelOutHigh) { Levels.ColorOutHigh = col; } } csd.Destroy (); UpdateFromLevelsOp (); UpdateLevels (); } } } pinta-1.3/Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs0000664000175000017500000000505011747026475024665 0ustar00cameroncameron00000000000000// // PosterizeDialog.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta.Effects { public partial class PosterizeDialog : Gtk.Dialog { public int Red { get { return hscalespinRed.ValueAsInt; } } public int Green { get { return hscalespinGreen.ValueAsInt; } } public int Blue { get { return hscalespinBlue.ValueAsInt; } } public PosterizeDialog () { Build (); hscalespinRed.ValueChanged += HandleValueChanged; hscalespinGreen.ValueChanged += HandleValueChanged; hscalespinBlue.ValueChanged += HandleValueChanged; AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; DefaultResponse = Gtk.ResponseType.Ok; } public PosterizeData EffectData { get; set; } void HandleValueChanged (object sender, EventArgs e) { var widget = sender as HScaleSpinButtonWidget; if (checkLinked.Active) hscalespinGreen.Value = hscalespinBlue.Value = hscalespinRed.Value = widget.Value; UpdateEffectData (); } void UpdateEffectData () { if (EffectData == null) return; EffectData.Red = hscalespinRed.ValueAsInt; EffectData.Green = hscalespinGreen.ValueAsInt; EffectData.Blue = hscalespinBlue.ValueAsInt; // Only fire event once, even if all properties have changed. EffectData.FirePropertyChanged ("_all_"); } } } pinta-1.3/Pinta.Effects/Effects/0000775000175000017500000000000011747026475017651 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/Effects/AddNoiseEffect.cs0000664000175000017500000001126011747026475023003 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class AddNoiseEffect : BaseEffect { private int intensity; private int colorSaturation; private double coverage; public override string Icon { get { return "Menu.Effects.Noise.AddNoise.png"; } } public override string Name { get { return Catalog.GetString ("Add Noise"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Noise"); } } public NoiseData Data { get { return EffectData as NoiseData; } } static AddNoiseEffect () { InitLookup (); } public AddNoiseEffect () { EffectData = new NoiseData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN [ThreadStatic] private static Random threadRand = new Random (); private const int tableSize = 16384; private static int[] lookup; private static double NormalCurve (double x, double scale) { return scale * Math.Exp (-x * x / 2); } private static void InitLookup () { int[] curve = new int[tableSize]; int[] integral = new int[tableSize]; double l = 5; double r = 10; double scale = 50; double sum = 0; while (r - l > 0.0000001) { sum = 0; scale = (l + r) * 0.5; for (int i = 0; i < tableSize; ++i) { sum += NormalCurve (16.0 * ((double)i - tableSize / 2) / tableSize, scale); if (sum > 1000000) { break; } } if (sum > tableSize) { r = scale; } else if (sum < tableSize) { l = scale; } else { break; } } lookup = new int[tableSize]; sum = 0; int roundedSum = 0, lastRoundedSum; for (int i = 0; i < tableSize; ++i) { sum += NormalCurve (16.0 * ((double)i - tableSize / 2) / tableSize, scale); lastRoundedSum = roundedSum; roundedSum = (int)sum; for (int j = lastRoundedSum; j < roundedSum; ++j) { lookup[j] = (i - tableSize / 2) * 65536 / tableSize; } } } public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { this.intensity = Data.Intensity; this.colorSaturation = Data.ColorSaturation; this.coverage = 0.01 * Data.Coverage; int dev = this.intensity * this.intensity / 4; int sat = this.colorSaturation * 4096 / 100; if (threadRand == null) { threadRand = new Random (unchecked (System.Threading.Thread.CurrentThread.GetHashCode () ^ unchecked ((int)DateTime.Now.Ticks))); } Random localRand = threadRand; int[] localLookup = lookup; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* srcPtr = src.GetPointAddressUnchecked (rect.Left, y); ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = 0; x < rect.Width; ++x) { if (localRand.NextDouble () > this.coverage) { *dstPtr = *srcPtr; } else { int r; int g; int b; int i; r = localLookup[localRand.Next (tableSize)]; g = localLookup[localRand.Next (tableSize)]; b = localLookup[localRand.Next (tableSize)]; i = (4899 * r + 9618 * g + 1867 * b) >> 14; r = i + (((r - i) * sat) >> 12); g = i + (((g - i) * sat) >> 12); b = i + (((b - i) * sat) >> 12); dstPtr->R = Utility.ClampToByte (srcPtr->R + ((r * dev + 32768) >> 16)); dstPtr->G = Utility.ClampToByte (srcPtr->G + ((g * dev + 32768) >> 16)); dstPtr->B = Utility.ClampToByte (srcPtr->B + ((b * dev + 32768) >> 16)); dstPtr->A = srcPtr->A; } ++srcPtr; ++dstPtr; } } } } #endregion public class NoiseData : EffectData { [MinimumValue (0), MaximumValue (100)] public int Intensity = 64; [MinimumValue (0), MaximumValue (400)] public int ColorSaturation = 100; [MinimumValue (0), DigitsValue (2), MaximumValue (100)] public double Coverage = 100.0; } } } pinta-1.3/Pinta.Effects/Effects/BulgeEffect.cs0000664000175000017500000000601611747026475022356 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class BulgeEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Distort.Bulge.png"; } } public override string Name { get { return Catalog.GetString ("Bulge"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public BulgeData Data { get { return EffectData as BulgeData; } } public BulgeEffect () { EffectData = new BulgeData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { float bulge = (float)Data.Amount; float hw = dst.Width / 2f; float hh = dst.Height / 2f; float maxrad = Math.Min (hw, hh); float maxrad2 = maxrad * maxrad; float amt = Data.Amount / 100f; hh = hh + (float)Data.Offset.Y * hh; hw = hw + (float)Data.Offset.X * hw; int src_width = src.Width; int src_height = src.Height; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, rect.Left, y); float v = y - hh; for (int x = rect.Left; x < rect.Right; x++) { float u = x - hw; float r = (float)Math.Sqrt (u * u + v * v); float rscale1 = (1f - (r / maxrad)); if (rscale1 > 0) { float rscale2 = 1 - amt * rscale1 * rscale1; float xp = u * rscale2; float yp = v * rscale2; *dstPtr = src.GetBilinearSampleClamped (src_data_ptr, src_width, src_height, xp + hw, yp + hh); } else { *dstPtr = *srcPtr; } ++dstPtr; ++srcPtr; } } } } #endregion public class BulgeData : EffectData { [MinimumValue(-200), MaximumValue(100)] public int Amount = 45; public Cairo.PointD Offset = new Cairo.PointD (0.0, 0.0); [Skip] public override bool IsDefault { get { return Amount == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/CloudsEffect.cs0000664000175000017500000001746011747026475022556 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class CloudsEffect : BaseEffect { // This is so that repetition of the effect with CTRL+F actually shows up differently. private byte instanceSeed = unchecked((byte)DateTime.Now.Ticks); public override string Icon { get { return "Menu.Effects.Render.Clouds.png"; } } public override string Name { get { return Catalog.GetString ("Clouds"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Render"); } } public CloudsData Data { get { return EffectData as CloudsData; } } public CloudsEffect () { EffectData = new CloudsData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN static CloudsEffect() { for (int i = 0; i < 256; i++) { permuteLookup[256 + i] = permutationTable[i]; permuteLookup[i] = permutationTable[i]; } } // Adapted to 2-D version in C# from 3-D version in Java from http://mrl.nyu.edu/~perlin/noise/ static private int[] permuteLookup = new int[512]; static private int[] permutationTable = new int[] { 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 }; private static double Fade(double t) { return t * t * t * (t * (t * 6 - 15) + 10); } private static double Grad(int hash, double x, double y) { int h = hash & 15; double u = h < 8 ? x : y; double v = h < 4 ? y : h == 12 || h == 14 ? x : 0; return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v); } private static double Noise(byte ix, byte iy, double x, double y, byte seed) { double u = Fade(x); double v = Fade(y); int a = permuteLookup[ix + seed] + iy; int aa = permuteLookup[a]; int ab = permuteLookup[a + 1]; int b = permuteLookup[ix + 1 + seed] + iy; int ba = permuteLookup[b]; int bb = permuteLookup[b + 1]; double gradAA = Grad(permuteLookup[aa], x, y); double gradBA = Grad(permuteLookup[ba], x - 1, y); double edge1 = Utility.Lerp(gradAA, gradBA, u); double gradAB = Grad(permuteLookup[ab], x, y - 1); double gradBB = Grad(permuteLookup[bb], x - 1, y - 1); double edge2 = Utility.Lerp(gradAB, gradBB, u); return Utility.Lerp(edge1, edge2, v); } private unsafe static void RenderClouds(ImageSurface surface, Gdk.Rectangle rect, int scale, byte seed, double power, ColorBgra colorFrom, ColorBgra colorTo) { int w = surface.Width; int h = surface.Height; for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* ptr = surface.GetPointAddressUnchecked(rect.Left, y); int dy = 2 * y - h; for (int x = rect.Left; x < rect.Right; ++x) { int dx = 2 * x - w; double val = 0; double mult = 1; int div = scale; for (int i = 0; i < 12 && mult > 0.03 && div > 0; ++i) { double dxr = 65536 + (double)dx / (double)div; double dyr = 65536 + (double)dy / (double)div; int dxd = (int)dxr; int dyd = (int)dyr; dxr -= dxd; dyr -= dyd; double noise = Noise( unchecked((byte)dxd), unchecked((byte)dyd), dxr, //(double)dxr / div, dyr, //(double)dyr / div, (byte)(seed ^ i)); val += noise * mult; div /= 2; mult *= power; } *ptr = ColorBgra.Lerp(colorFrom, colorTo, (val + 1) / 2); ++ptr; } } } protected override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle roi) { RenderClouds(dst, roi, Data.Scale, (byte)(Data.Seed ^ instanceSeed), Data.Power/100.0, PintaCore.Palette.PrimaryColor.ToColorBgra (), PintaCore.Palette.SecondaryColor.ToColorBgra ()); Type blendOpType = (Type)CloudsData.BlendOps[Data.BlendMode]; var blendOp = UserBlendOps.CreateBlendOp(blendOpType); if (blendOp != null) { blendOp.Apply (dst, roi.Location, src, roi.Location, dst, roi.Location, roi.Size); } } #endregion public class CloudsData : EffectData { [Skip] public override bool IsDefault { get { return Power == 0; } } [MinimumValue (2), MaximumValue (1000)] public int Scale = 250; [MinimumValue (0), MaximumValue (100)] public int Power = 50; [Skip] public static Dictionary BlendOps; [Skip] private static string defaultBlendOp; static CloudsData () { Type[] blendOpTypes = UserBlendOps.GetBlendOps (); BlendOps = new Dictionary (); foreach (Type myType in blendOpTypes) { string blendOpDisplayName = UserBlendOps.GetBlendOpFriendlyName (myType); BlendOps.Add (blendOpDisplayName, myType); } defaultBlendOp = UserBlendOps.GetBlendOpFriendlyName (UserBlendOps.GetDefaultBlendOp ()); } [StaticList ("BlendOps")] public string BlendMode = defaultBlendOp; [MinimumValue (0), MaximumValue (255)] public int Seed = 0; } } } pinta-1.3/Pinta.Effects/Effects/EdgeDetectEffect.cs0000664000175000017500000000522511747026475023316 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class EdgeDetectEffect : ColorDifferenceEffect { private double[][] weights; public override string Icon { get { return "Menu.Effects.Stylize.EdgeDetect.png"; } } public override string Name { get { return Catalog.GetString ("Edge Detect"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Stylize"); } } public EdgeDetectData Data { get { return EffectData as EdgeDetectData; } } public EdgeDetectEffect () { EffectData = new EdgeDetectData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { SetWeights (); base.RenderColorDifferenceEffect (weights, src, dest, rois); } private void SetWeights () { weights = new double[3][]; for (int i = 0; i < this.weights.Length; ++i) { this.weights[i] = new double[3]; } // adjust and convert angle to radians double r = (double)Data.Angle * 2.0 * Math.PI / 360.0; // angle delta for each weight double dr = Math.PI / 4.0; // for r = 0 this builds an edge detect filter pointing straight left this.weights[0][0] = Math.Cos(r + dr); this.weights[0][1] = Math.Cos(r + 2.0 * dr); this.weights[0][2] = Math.Cos(r + 3.0 * dr); this.weights[1][0] = Math.Cos(r); this.weights[1][1] = 0; this.weights[1][2] = Math.Cos(r + 4.0 * dr); this.weights[2][0] = Math.Cos(r - dr); this.weights[2][1] = Math.Cos(r - 2.0 * dr); this.weights[2][2] = Math.Cos(r - 3.0 * dr); } } public class EdgeDetectData : EffectData { public double Angle = 45; } } pinta-1.3/Pinta.Effects/Effects/EmbossEffect.cs0000664000175000017500000000720211747026475022546 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class EmbossEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Stylize.Emboss.png"; } } public override string Name { get { return Catalog.GetString ("Emboss"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Stylize"); } } public EmbossData Data { get { return EffectData as EmbossData; } } public EmbossEffect () { EffectData = new EmbossData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { double[,] weights = Weights; var srcWidth = src.Width; var srcHeight = src.Height; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (var rect in rois) { // loop through each line of target rectangle for (int y = rect.Top; y < rect.Bottom; ++y) { int fyStart = 0; int fyEnd = 3; if (y == 0) fyStart = 1; if (y == srcHeight - 1) fyEnd = 2; // loop through each point in the line ColorBgra* dstPtr = dst.GetPointAddress (rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { int fxStart = 0; int fxEnd = 3; if (x == 0) fxStart = 1; if (x == srcWidth - 1) fxEnd = 2; // loop through each weight double sum = 0.0; for (int fy = fyStart; fy < fyEnd; ++fy) { for (int fx = fxStart; fx < fxEnd; ++fx) { double weight = weights[fy, fx]; ColorBgra c = src.GetPointUnchecked (src_data_ptr, srcWidth, x - 1 + fx, y - 1 + fy); double intensity = (double)c.GetIntensityByte (); sum += weight * intensity; } } int iSum = (int)sum; iSum += 128; if (iSum > 255) iSum = 255; if (iSum < 0) iSum = 0; *dstPtr = ColorBgra.FromBgra ((byte)iSum, (byte)iSum, (byte)iSum, 255); ++dstPtr; } } } } public double[,] Weights { get { // adjust and convert angle to radians double r = (double)Data.Angle * 2.0 * Math.PI / 360.0; // angle delta for each weight double dr = Math.PI / 4.0; // for r = 0 this builds an emboss filter pointing straight left double[,] weights = new double[3, 3]; weights[0, 0] = Math.Cos (r + dr); weights[0, 1] = Math.Cos (r + 2.0 * dr); weights[0, 2] = Math.Cos (r + 3.0 * dr); weights[1, 0] = Math.Cos (r); weights[1, 1] = 0; weights[1, 2] = Math.Cos (r + 4.0 * dr); weights[2, 0] = Math.Cos (r - dr); weights[2, 1] = Math.Cos (r - 2.0 * dr); weights[2, 2] = Math.Cos (r - 3.0 * dr); return weights; } } #endregion public class EmbossData : EffectData { public double Angle = 0; } } } pinta-1.3/Pinta.Effects/Effects/FragmentEffect.cs0000664000175000017500000000711311747026475023062 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class FragmentEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Blurs.Fragment.png"; } } public override string Name { get { return Catalog.GetString ("Fragment"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public FragmentData Data { get { return EffectData as FragmentData; } } public FragmentEffect () { EffectData = new FragmentData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN private Gdk.Point[] RecalcPointOffsets (int fragments, double rotationAngle, int distance) { double pointStep = 2 * Math.PI / (double)fragments; double rotationRadians = ((rotationAngle - 90.0) * Math.PI) / 180.0; double offsetAngle = pointStep; Gdk.Point[] pointOffsets = new Gdk.Point[fragments]; for (int i = 0; i < fragments; i++) { double currentRadians = rotationRadians + (pointStep * i); pointOffsets[i] = new Gdk.Point ( (int)Math.Round (distance * -Math.Sin (currentRadians), MidpointRounding.AwayFromZero), (int)Math.Round (distance * -Math.Cos (currentRadians), MidpointRounding.AwayFromZero)); } return pointOffsets; } public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { Gdk.Point[] pointOffsets = RecalcPointOffsets (Data.Fragments, Data.Rotation, Data.Distance); int poLength = pointOffsets.Length; Gdk.Point* pointOffsetsPtr = stackalloc Gdk.Point[poLength]; for (int i = 0; i < poLength; ++i) pointOffsetsPtr[i] = pointOffsets[i]; ColorBgra* samples = stackalloc ColorBgra[poLength]; // Cache these for a massive performance boost int src_width = src.Width; int src_height = src.Height; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { int sampleCount = 0; for (int i = 0; i < poLength; ++i) { int u = x - pointOffsetsPtr[i].X; int v = y - pointOffsetsPtr[i].Y; if (u >= 0 && u < src_width && v >= 0 && v < src_height) { samples[sampleCount] = src.GetPointUnchecked (src_data_ptr, src_width, u, v); ++sampleCount; } } *dstPtr = ColorBgra.Blend (samples, sampleCount); ++dstPtr; } } } } #endregion public class FragmentData : EffectData { [MinimumValue (2), MaximumValue (50)] public int Fragments = 4; [MinimumValue (0), MaximumValue (100)] public int Distance = 8; public double Rotation = 0; } } } pinta-1.3/Pinta.Effects/Effects/FrostedGlassEffect.cs0000664000175000017500000001100411747026475023711 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class FrostedGlassEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Distort.FrostedGlass.png"; } } public override string Name { get { return Catalog.GetString ("Frosted Glass"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public FrostedGlassData Data { get { return EffectData as FrostedGlassData; } } private Random random = new Random (); public FrostedGlassEffect () { EffectData = new FrostedGlassData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { int width = src.Width; int height = src.Height; int r = Data.Amount; Random localRandom = this.random; int* intensityCount = stackalloc int[256]; uint* avgRed = stackalloc uint[256]; uint* avgGreen = stackalloc uint[256]; uint* avgBlue = stackalloc uint[256]; uint* avgAlpha = stackalloc uint[256]; byte* intensityChoices = stackalloc byte[(1 + (r * 2)) * (1 + (r * 2))]; int src_width = src.Width; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (var rect in rois) { int rectTop = rect.Top; int rectBottom = rect.Bottom; int rectLeft = rect.Left; int rectRight = rect.Right; for (int y = rectTop; y < rectBottom; ++y) { ColorBgra* dstPtr = dst.GetPointAddress (rect.Left, y); int top = y - r; int bottom = y + r + 1; if (top < 0) { top = 0; } if (bottom > height) { bottom = height; } for (int x = rectLeft; x < rectRight; ++x) { int intensityChoicesIndex = 0; for (int i = 0; i < 256; ++i) { intensityCount[i] = 0; avgRed[i] = 0; avgGreen[i] = 0; avgBlue[i] = 0; avgAlpha[i] = 0; } int left = x - r; int right = x + r + 1; if (left < 0) { left = 0; } if (right > width) { right = width; } for (int j = top; j < bottom; ++j) { if (j < 0 || j >= height) { continue; } ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, left, j); for (int i = left; i < right; ++i) { byte intensity = srcPtr->GetIntensityByte (); intensityChoices[intensityChoicesIndex] = intensity; ++intensityChoicesIndex; ++intensityCount[intensity]; avgRed[intensity] += srcPtr->R; avgGreen[intensity] += srcPtr->G; avgBlue[intensity] += srcPtr->B; avgAlpha[intensity] += srcPtr->A; ++srcPtr; } } int randNum; lock (localRandom) { randNum = localRandom.Next (intensityChoicesIndex); } byte chosenIntensity = intensityChoices[randNum]; byte R = (byte)(avgRed[chosenIntensity] / intensityCount[chosenIntensity]); byte G = (byte)(avgGreen[chosenIntensity] / intensityCount[chosenIntensity]); byte B = (byte)(avgBlue[chosenIntensity] / intensityCount[chosenIntensity]); byte A = (byte)(avgAlpha[chosenIntensity] / intensityCount[chosenIntensity]); *dstPtr = ColorBgra.FromBgra (B, G, R, A); ++dstPtr; // prepare the array for the next loop iteration for (int i = 0; i < intensityChoicesIndex; ++i) { intensityChoices[i] = 0; } } } } } #endregion public class FrostedGlassData : EffectData { [MinimumValue(1), MaximumValue(10)] public int Amount = 1; } } } pinta-1.3/Pinta.Effects/Effects/GaussianBlurEffect.cs0000664000175000017500000001535411747026475023724 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class GaussianBlurEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Blurs.GaussianBlur.png"; } } public override string Name { get { return Catalog.GetString ("Gaussian Blur"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public GaussianBlurData Data { get { return EffectData as GaussianBlurData; } } public GaussianBlurEffect () { EffectData = new GaussianBlurData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public static int[] CreateGaussianBlurRow (int amount) { int size = 1 + (amount * 2); int[] weights = new int[size]; for (int i = 0; i <= amount; ++i) { // 1 + aa - aa + 2ai - ii weights[i] = 16 * (i + 1); weights[weights.Length - i - 1] = weights[i]; } return weights; } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (Data.Radius == 0) { // Copy src to dest return; } int r = Data.Radius; int[] w = CreateGaussianBlurRow (r); int wlen = w.Length; int localStoreSize = wlen * 6 * sizeof (long); byte* localStore = stackalloc byte[localStoreSize]; byte* p = localStore; long* waSums = (long*)p; p += wlen * sizeof (long); long* wcSums = (long*)p; p += wlen * sizeof (long); long* aSums = (long*)p; p += wlen * sizeof (long); long* bSums = (long*)p; p += wlen * sizeof (long); long* gSums = (long*)p; p += wlen * sizeof (long); long* rSums = (long*)p; p += wlen * sizeof (long); ulong arraysLength = (ulong)(sizeof (long) * wlen); // Cache these for a massive performance boost int src_width = src.Width; int src_height = src.Height; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (Gdk.Rectangle rect in rois) { if (rect.Height >= 1 && rect.Width >= 1) { for (int y = rect.Top; y < rect.Bottom; ++y) { //Memory.SetToZero (localStore, (ulong)localStoreSize); long waSum = 0; long wcSum = 0; long aSum = 0; long bSum = 0; long gSum = 0; long rSum = 0; ColorBgra* dstPtr = dest.GetPointAddressUnchecked (rect.Left, y); for (int wx = 0; wx < wlen; ++wx) { int srcX = rect.Left + wx - r; waSums[wx] = 0; wcSums[wx] = 0; aSums[wx] = 0; bSums[wx] = 0; gSums[wx] = 0; rSums[wx] = 0; if (srcX >= 0 && srcX < src_width) { for (int wy = 0; wy < wlen; ++wy) { int srcY = y + wy - r; if (srcY >= 0 && srcY < src_height) { ColorBgra c = src.GetPointUnchecked (src_data_ptr, src_width, srcX, srcY); int wp = w[wy]; waSums[wx] += wp; wp *= c.A + (c.A >> 7); wcSums[wx] += wp; wp >>= 8; aSums[wx] += wp * c.A; bSums[wx] += wp * c.B; gSums[wx] += wp * c.G; rSums[wx] += wp * c.R; } } int wwx = w[wx]; waSum += wwx * waSums[wx]; wcSum += wwx * wcSums[wx]; aSum += wwx * aSums[wx]; bSum += wwx * bSums[wx]; gSum += wwx * gSums[wx]; rSum += wwx * rSums[wx]; } } wcSum >>= 8; if (waSum == 0 || wcSum == 0) { dstPtr->Bgra = 0; } else { int alpha = (int)(aSum / waSum); int blue = (int)(bSum / wcSum); int green = (int)(gSum / wcSum); int red = (int)(rSum / wcSum); dstPtr->Bgra = ColorBgra.BgraToUInt32 (blue, green, red, alpha); } ++dstPtr; for (int x = rect.Left + 1; x < rect.Right; ++x) { for (int i = 0; i < wlen - 1; ++i) { waSums[i] = waSums[i + 1]; wcSums[i] = wcSums[i + 1]; aSums[i] = aSums[i + 1]; bSums[i] = bSums[i + 1]; gSums[i] = gSums[i + 1]; rSums[i] = rSums[i + 1]; } waSum = 0; wcSum = 0; aSum = 0; bSum = 0; gSum = 0; rSum = 0; int wx; for (wx = 0; wx < wlen - 1; ++wx) { long wwx = (long)w[wx]; waSum += wwx * waSums[wx]; wcSum += wwx * wcSums[wx]; aSum += wwx * aSums[wx]; bSum += wwx * bSums[wx]; gSum += wwx * gSums[wx]; rSum += wwx * rSums[wx]; } wx = wlen - 1; waSums[wx] = 0; wcSums[wx] = 0; aSums[wx] = 0; bSums[wx] = 0; gSums[wx] = 0; rSums[wx] = 0; int srcX = x + wx - r; if (srcX >= 0 && srcX < src_width) { for (int wy = 0; wy < wlen; ++wy) { int srcY = y + wy - r; if (srcY >= 0 && srcY < src_height) { ColorBgra c = src.GetPointUnchecked (src_data_ptr, src_width, srcX, srcY); int wp = w[wy]; waSums[wx] += wp; wp *= c.A + (c.A >> 7); wcSums[wx] += wp; wp >>= 8; aSums[wx] += wp * (long)c.A; bSums[wx] += wp * (long)c.B; gSums[wx] += wp * (long)c.G; rSums[wx] += wp * (long)c.R; } } int wr = w[wx]; waSum += (long)wr * waSums[wx]; wcSum += (long)wr * wcSums[wx]; aSum += (long)wr * aSums[wx]; bSum += (long)wr * bSums[wx]; gSum += (long)wr * gSums[wx]; rSum += (long)wr * rSums[wx]; } wcSum >>= 8; if (waSum == 0 || wcSum == 0) { dstPtr->Bgra = 0; } else { int alpha = (int)(aSum / waSum); int blue = (int)(bSum / wcSum); int green = (int)(gSum / wcSum); int red = (int)(rSum / wcSum); dstPtr->Bgra = ColorBgra.BgraToUInt32 (blue, green, red, alpha); } ++dstPtr; } } } } } #endregion public class GaussianBlurData : EffectData { [MinimumValue (0), MaximumValue (200)] public int Radius = 2; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/GlowEffect.cs0000664000175000017500000000516511747026475022234 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Effects; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class GlowEffect : BaseEffect { private GaussianBlurEffect blurEffect; private BrightnessContrastEffect contrastEffect; private UserBlendOps.ScreenBlendOp screenBlendOp; public override string Icon { get { return "Menu.Effects.Photo.Glow.png"; } } public override string Name { get { return Catalog.GetString ("Glow"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Photo"); } } public GlowData Data { get { return EffectData as GlowData; } } public GlowEffect () { EffectData = new GlowData (); blurEffect = new GaussianBlurEffect (); contrastEffect = new BrightnessContrastEffect (); screenBlendOp = new UserBlendOps.ScreenBlendOp (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { blurEffect.Data.Radius = Data.Radius; blurEffect.Render (src, dest, rois); contrastEffect.Data.Brightness = Data.Brightness; contrastEffect.Data.Contrast = Data.Contrast; contrastEffect.Render (dest, dest, rois); foreach (Gdk.Rectangle roi in rois) { for (int y = roi.Top; y < roi.Bottom; ++y) { ColorBgra* dstPtr = dest.GetPointAddressUnchecked (roi.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (roi.Left, y); screenBlendOp.Apply (dstPtr, srcPtr, dstPtr, roi.Width); } } } #endregion public class GlowData : EffectData { [MinimumValue (1), MaximumValue (20)] public int Radius = 6; [MinimumValue (-100), MaximumValue (100)] public int Brightness = 10; [MinimumValue (-100), MaximumValue (100)] public int Contrast = 10; } } } pinta-1.3/Pinta.Effects/Effects/InkSketchEffect.cs0000664000175000017500000001106611747026475023204 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class InkSketchEffect : BaseEffect { private static readonly int[][] conv; private const int size = 5; private const int radius = (size - 1) / 2; private GlowEffect glowEffect; private UnaryPixelOps.Desaturate desaturateOp; private UserBlendOps.DarkenBlendOp darkenOp; public override string Icon { get { return "Menu.Effects.Artistic.InkSketch.png"; } } public override string Name { get { return Catalog.GetString ("Ink Sketch"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Artistic"); } } public InkSketchData Data { get { return EffectData as InkSketchData; } } public InkSketchEffect () { EffectData = new InkSketchData (); glowEffect = new GlowEffect (); desaturateOp = new UnaryPixelOps.Desaturate (); darkenOp = new UserBlendOps.DarkenBlendOp (); } static InkSketchEffect () { conv = new int[5][]; for (int i = 0; i < conv.Length; ++i) conv[i] = new int[5]; conv[0] = new int[] { -1, -1, -1, -1, -1 }; conv[1] = new int[] { -1, -1, -1, -1, -1 }; conv[2] = new int[] { -1, -1, 30, -1, -1 }; conv[3] = new int[] { -1, -1, -1, -1, -1 }; conv[4] = new int[] { -1, -1, -5, -1, -1 }; } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { // Glow backgound glowEffect.Data.Radius = 6; glowEffect.Data.Brightness = -(Data.Coloring - 50) * 2; glowEffect.Data.Contrast = -(Data.Coloring - 50) * 2; this.glowEffect.Render (src, dest, rois); // Create black outlines by finding the edges of objects foreach (Gdk.Rectangle roi in rois) { for (int y = roi.Top; y < roi.Bottom; ++y) { int top = y - radius; int bottom = y + radius + 1; if (top < 0) { top = 0; } if (bottom > dest.Height) { bottom = dest.Height; } ColorBgra* srcPtr = src.GetPointAddress (roi.X, y); ColorBgra* dstPtr = dest.GetPointAddress (roi.X, y); for (int x = roi.Left; x < roi.Right; ++x) { int left = x - radius; int right = x + radius + 1; if (left < 0) { left = 0; } if (right > dest.Width) { right = dest.Width; } int r = 0; int g = 0; int b = 0; int src_width = src.Width; ColorBgra* src_dataptr = (ColorBgra*)src.DataPtr; for (int v = top; v < bottom; v++) { ColorBgra* pRow = src.GetRowAddressUnchecked (src_dataptr, src_width, v); int j = v - y + radius; for (int u = left; u < right; u++) { int i1 = u - x + radius; int w = conv[j][i1]; ColorBgra* pRef = pRow + u; r += pRef->R * w; g += pRef->G * w; b += pRef->B * w; } } ColorBgra topLayer = ColorBgra.FromBgr ( Utility.ClampToByte (b), Utility.ClampToByte (g), Utility.ClampToByte (r)); // Desaturate topLayer = this.desaturateOp.Apply (topLayer); // Adjust Brightness and Contrast if (topLayer.R > (Data.InkOutline * 255 / 100)) { topLayer = ColorBgra.FromBgra (255, 255, 255, topLayer.A); } else { topLayer = ColorBgra.FromBgra (0, 0, 0, topLayer.A); } // Change Blend Mode to Darken ColorBgra myPixel = this.darkenOp.Apply (topLayer, *dstPtr); *dstPtr = myPixel; ++srcPtr; ++dstPtr; } } } } #endregion public class InkSketchData : EffectData { [Caption ("Ink Outline"), MinimumValue (0), MaximumValue (99)] public int InkOutline = 50; [MinimumValue (0), MaximumValue (100)] public int Coloring = 50; } } } pinta-1.3/Pinta.Effects/Effects/JuliaFractalEffect.cs0000664000175000017500000001003311747026475023653 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class JuliaFractalEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Render.JuliaFractal.png"; } } public override string Name { get { return Catalog.GetString ("Julia Fractal"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Render"); } } public JuliaFractalData Data { get { return EffectData as JuliaFractalData; } } public JuliaFractalEffect () { EffectData = new JuliaFractalData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN private static readonly double log2_10000 = Math.Log (10000); private static double Julia (double x, double y, double r, double i) { double c = 0; while (c < 256 && x * x + y * y < 10000) { double t = x; x = x * x - y * y + r; y = 2 * t * y + i; ++c; } c -= 2 - 2 * log2_10000 / Math.Log (x * x + y * y); return c; } unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { const double jr = 0.3125; const double ji = 0.03; int w = dst.Width; int h = dst.Height; double invH = 1.0 / h; double invZoom = 1.0 / Data.Zoom; double invQuality = 1.0 / Data.Quality; double aspect = (double)h / (double)w; int count = Data.Quality * Data.Quality + 1; double invCount = 1.0 / (double)count; double angleTheta = (Data.Angle * Math.PI * 2) / 360.0; ColorBgra* dst_dataptr = (ColorBgra*)dst.DataPtr; int dst_width = dst.Width; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { int r = 0; int g = 0; int b = 0; int a = 0; for (double i = 0; i < count; i++) { double u = (2.0 * x - w + (i * invCount)) * invH; double v = (2.0 * y - h + ((i * invQuality) % 1)) * invH; double radius = Math.Sqrt ((u * u) + (v * v)); double radiusP = radius; double theta = Math.Atan2 (v, u); double thetaP = theta + angleTheta; double uP = radiusP * Math.Cos (thetaP); double vP = radiusP * Math.Sin (thetaP); double jX = (uP - vP * aspect) * invZoom; double jY = (vP + uP * aspect) * invZoom; double j = Julia (jX, jY, jr, ji); double c = Data.Factor * j; b += Utility.ClampToByte (c - 768); g += Utility.ClampToByte (c - 512); r += Utility.ClampToByte (c - 256); a += Utility.ClampToByte (c - 0); } *dstPtr = ColorBgra.FromBgra (Utility.ClampToByte (b / count), Utility.ClampToByte (g / count), Utility.ClampToByte (r / count), Utility.ClampToByte (a / count)); ++dstPtr; } } } } #endregion public class JuliaFractalData : EffectData { [MinimumValue(1), MaximumValue(10)] public int Factor = 4; [MinimumValue(1), MaximumValue(5)] public int Quality = 2; [MinimumValue(0), MaximumValue(50)] public int Zoom = 1; public double Angle = 0; } } } pinta-1.3/Pinta.Effects/Effects/LocalHistogramEffect.cs0000664000175000017500000003711411747026475024233 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Core; namespace Pinta.Effects { public abstract class LocalHistogramEffect : BaseEffect { /*internal LocalHistogramEffect(string name, Image image, string subMenuName, EffectFlags flags) : base(name, image, subMenuName, flags) { }*/ protected static int GetMaxAreaForRadius(int radius) { int area = 0; int cutoff = ((radius * 2 + 1) * (radius * 2 + 1) + 2) / 4; for (int v = -radius; v <= radius; ++v) { for (int u = -radius; u <= radius; ++u) { if (u * u + v * v <= cutoff) { ++area; } } } return area; } private unsafe void SetToZero(int* pointer, uint size) { for (int i = 0; i < (size / sizeof(int)); i++) { *pointer = 0; pointer++; } } public virtual unsafe ColorBgra Apply(ColorBgra src, int area, int* hb, int* hg, int* hr, int* ha) { return src; } //same as Aply, except the histogram is alpha-weighted instead of keeping a separate alpha channel histogram. public virtual unsafe ColorBgra ApplyWithAlpha(ColorBgra src, int area, int sum, int* hb, int* hg, int* hr) { return src; } public static unsafe ColorBgra GetPercentile(int percentile, int area, int* hb, int* hg, int* hr, int* ha) { int minCount = area * percentile / 100; int b = 0; int bCount = 0; while (b < 255 && hb[b] == 0) { ++b; } while (b < 255 && bCount < minCount) { bCount += hb[b]; ++b; } int g = 0; int gCount = 0; while (g < 255 && hg[g] == 0) { ++g; } while (g < 255 && gCount < minCount) { gCount += hg[g]; ++g; } int r = 0; int rCount = 0; while (r < 255 && hr[r] == 0) { ++r; } while (r < 255 && rCount < minCount) { rCount += hr[r]; ++r; } int a = 0; int aCount = 0; while (a < 255 && ha[a] == 0) { ++a; } while (a < 255 && aCount < minCount) { aCount += ha[a]; ++a; } return ColorBgra.FromBgra((byte)b, (byte)g, (byte)r, (byte)a); } public unsafe void RenderRect( int rad, ImageSurface src, ImageSurface dst, Gdk.Rectangle rect) { int width = src.Width; int height = src.Height; int* leadingEdgeX = stackalloc int[rad + 1]; int stride = src.Stride / sizeof(ColorBgra); // approximately (rad + 0.5)^2 int cutoff = ((rad * 2 + 1) * (rad * 2 + 1) + 2) / 4; for (int v = 0; v <= rad; ++v) { for (int u = 0; u <= rad; ++u) { if (u * u + v * v <= cutoff) { leadingEdgeX[v] = u; } } } const int hLength = 256; int* hb = stackalloc int[hLength]; int* hg = stackalloc int[hLength]; int* hr = stackalloc int[hLength]; int* ha = stackalloc int[hLength]; uint hSize = (uint)(sizeof(int) * hLength); for (int y = rect.Top; y < rect.Bottom; y++) { SetToZero(hb, hSize); SetToZero(hg, hSize); SetToZero(hr, hSize); SetToZero(ha, hSize); int area = 0; ColorBgra* ps = src.GetPointAddressUnchecked(rect.Left, y); ColorBgra* pd = dst.GetPointAddressUnchecked(rect.Left, y); // assert: v + y >= 0 int top = -Math.Min(rad, y); // assert: v + y <= height - 1 int bottom = Math.Min(rad, height - 1 - y); // assert: u + x >= 0 int left = -Math.Min(rad, rect.Left); // assert: u + x <= width - 1 int right = Math.Min(rad, width - 1 - rect.Left); for (int v = top; v <= bottom; ++v) { ColorBgra* psamp = src.GetPointAddressUnchecked(rect.Left + left, y + v); for (int u = left; u <= right; ++u) { if ((u * u + v * v) <= cutoff) { ++area; ++hb[psamp->B]; ++hg[psamp->G]; ++hr[psamp->R]; ++ha[psamp->A]; } ++psamp; } } for (int x = rect.Left; x < rect.Right; x++) { *pd = Apply(*ps, area, hb, hg, hr, ha); // assert: u + x >= 0 left = -Math.Min(rad, x); // assert: u + x <= width - 1 right = Math.Min(rad + 1, width - 1 - x); // Subtract trailing edge top half int v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (-u >= left) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) - u; --hb[p->B]; --hg[p->G]; --hr[p->R]; --ha[p->A]; --area; --v; } // add leading edge top half v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (u + 1 <= right) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) + u + 1; ++hb[p->B]; ++hg[p->G]; ++hr[p->R]; ++ha[p->A]; ++area; --v; } // Subtract trailing edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (-u >= left) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride - u; --hb[p->B]; --hg[p->G]; --hr[p->R]; --ha[p->A]; --area; ++v; } // add leading edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (u + 1 <= right) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride + u + 1; ++hb[p->B]; ++hg[p->G]; ++hr[p->R]; ++ha[p->A]; ++area; ++v; } ++ps; ++pd; } } } //same as RenderRect, except the histogram is alpha-weighted instead of keeping a separate alpha channel histogram. public unsafe void RenderRectWithAlpha( int rad, ImageSurface src, ImageSurface dst, Gdk.Rectangle rect) { int width = src.Width; int height = src.Height; int* leadingEdgeX = stackalloc int[rad + 1]; int stride = src.Stride / sizeof(ColorBgra); // approximately (rad + 0.5)^2 int cutoff = ((rad * 2 + 1) * (rad * 2 + 1) + 2) / 4; for (int v = 0; v <= rad; ++v) { for (int u = 0; u <= rad; ++u) { if (u * u + v * v <= cutoff) { leadingEdgeX[v] = u; } } } const int hLength = 256; int* hb = stackalloc int[hLength]; int* hg = stackalloc int[hLength]; int* hr = stackalloc int[hLength]; uint hSize = (uint)(sizeof(int) * hLength); for (int y = rect.Top; y < rect.Bottom; y++) { SetToZero(hb, hSize); SetToZero(hg, hSize); SetToZero(hr, hSize); int area = 0; int sum = 0; ColorBgra* ps = src.GetPointAddressUnchecked(rect.Left, y); ColorBgra* pd = dst.GetPointAddressUnchecked(rect.Left, y); // assert: v + y >= 0 int top = -Math.Min(rad, y); // assert: v + y <= height - 1 int bottom = Math.Min(rad, height - 1 - y); // assert: u + x >= 0 int left = -Math.Min(rad, rect.Left); // assert: u + x <= width - 1 int right = Math.Min(rad, width - 1 - rect.Left); for (int v = top; v <= bottom; ++v) { ColorBgra* psamp = src.GetPointAddressUnchecked(rect.Left + left, y + v); for (int u = left; u <= right; ++u) { byte w = psamp->A; if ((u * u + v * v) <= cutoff) { ++area; sum += w; hb[psamp->B] += w; hg[psamp->G] += w; hr[psamp->R] += w; } ++psamp; } } for (int x = rect.Left; x < rect.Right; x++) { *pd = ApplyWithAlpha(*ps, area, sum, hb, hg, hr); // assert: u + x >= 0 left = -Math.Min(rad, x); // assert: u + x <= width - 1 right = Math.Min(rad + 1, width - 1 - x); // Subtract trailing edge top half int v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (-u >= left) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) - u; byte w = p->A; hb[p->B] -= w; hg[p->G] -= w; hr[p->R] -= w; sum -= w; --area; --v; } // add leading edge top half v = -1; while (v >= top) { int u = leadingEdgeX[-v]; if (u + 1 <= right) { break; } --v; } while (v >= top) { int u = leadingEdgeX[-v]; ColorBgra* p = unchecked(ps + (v * stride)) + u + 1; byte w = p->A; hb[p->B] += w; hg[p->G] += w; hr[p->R] += w; sum += w; ++area; --v; } // Subtract trailing edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (-u >= left) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride - u; byte w = p->A; hb[p->B] -= w; hg[p->G] -= w; hr[p->R] -= w; sum -= w; --area; ++v; } // add leading edge bottom half v = 0; while (v <= bottom) { int u = leadingEdgeX[v]; if (u + 1 <= right) { break; } ++v; } while (v <= bottom) { int u = leadingEdgeX[v]; ColorBgra* p = ps + v * stride + u + 1; byte w = p->A; hb[p->B] += w; hg[p->G] += w; hr[p->R] += w; sum += w; ++area; ++v; } ++ps; ++pd; } } } } } pinta-1.3/Pinta.Effects/Effects/MandelbrotFractalEffect.cs0000664000175000017500000001151711747026475024706 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class MandelbrotFractalEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Render.MandelbrotFractal.png"; } } public override string Name { get { return Catalog.GetString ("Mandelbrot Fractal"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Render"); } } public MandelbrotFractalData Data { get { return EffectData as MandelbrotFractalData; } } public MandelbrotFractalEffect () { EffectData = new MandelbrotFractalData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN private const double max = 100000; private static readonly double invLogMax = 1.0 / Math.Log (max); private static double zoomFactor = 20.0; private const double xOffsetBasis = -0.7; private double xOffset = xOffsetBasis; private const double yOffsetBasis = -0.29; private double yOffset = yOffsetBasis; private static double Mandelbrot (double r, double i, int factor) { int c = 0; double x = 0; double y = 0; while ((c * factor) < 1024 && ((x * x) + (y * y)) < max) { double t = x; x = x * x - y * y + r; y = 2 * t * y + i; ++c; } return c - Math.Log (y * y + x * x) * invLogMax; } unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { int w = dst.Width; int h = dst.Height; double wDiv2 = (double)w / 2; double hDiv2 = (double)h / 2; double invH = 1.0 / h; double zoom = 1 + zoomFactor * Data.Zoom; double invZoom = 1.0 / zoom; double invQuality = 1.0 / (double)Data.Quality; int count = Data.Quality * Data.Quality + 1; double invCount = 1.0 / (double)count; double angleTheta = (Data.Angle * 2 * Math.PI) / 360; ColorBgra* dst_dataptr = (ColorBgra*)dst.DataPtr; int dst_width = dst.Width; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { int r = 0; int g = 0; int b = 0; int a = 0; for (double i = 0; i < count; i++) { double u = (2.0 * x - w + (i * invCount)) * invH; double v = (2.0 * y - h + ((i * invQuality) % 1)) * invH; double radius = Math.Sqrt ((u * u) + (v * v)); double radiusP = radius; double theta = Math.Atan2 (v, u); double thetaP = theta + angleTheta; double uP = radiusP * Math.Cos (thetaP); double vP = radiusP * Math.Sin (thetaP); double m = Mandelbrot ((uP * invZoom) + this.xOffset, (vP * invZoom) + this.yOffset, Data.Factor); double c = 64 + Data.Factor * m; r += Utility.ClampToByte (c - 768); g += Utility.ClampToByte (c - 512); b += Utility.ClampToByte (c - 256); a += Utility.ClampToByte (c - 0); } *dstPtr = ColorBgra.FromBgra (Utility.ClampToByte (b / count), Utility.ClampToByte (g / count), Utility.ClampToByte (r / count), Utility.ClampToByte (a / count)); ++dstPtr; } } if (Data.InvertColors) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { ColorBgra c = *dstPtr; c.B = (byte)(255 - c.B); c.G = (byte)(255 - c.G); c.R = (byte)(255 - c.R); *dstPtr = c; ++dstPtr; } } } } } #endregion public class MandelbrotFractalData : EffectData { [MinimumValue(1), MaximumValue(10)] public int Factor = 1; [MinimumValue(1), MaximumValue(5)] public int Quality = 2; //TODO double [MinimumValue(0), MaximumValue(100)] public int Zoom = 10; public double Angle = 0; public bool InvertColors = false; } } } pinta-1.3/Pinta.Effects/Effects/MedianEffect.cs0000664000175000017500000000431111747026475022511 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class MedianEffect : LocalHistogramEffect { private int radius; private int percentile; public override string Icon { get { return "Menu.Effects.Noise.Median.png"; } } public override string Name { get { return Catalog.GetString ("Median"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Noise"); } } public MedianData Data { get { return EffectData as MedianData; } } public MedianEffect () { EffectData = new MedianData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { this.radius = Data.Radius; this.percentile = Data.Percentile; foreach (Gdk.Rectangle rect in rois) RenderRect (this.radius, src, dest, rect); } public unsafe override ColorBgra Apply (ColorBgra src, int area, int* hb, int* hg, int* hr, int* ha) { ColorBgra c = GetPercentile (this.percentile, area, hb, hg, hr, ha); return c; } #endregion public class MedianData : EffectData { [MinimumValue (1), MaximumValue (200)] public int Radius = 10; [MinimumValue (0), MaximumValue (100)] public int Percentile = 50; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/MotionBlurEffect.cs0000664000175000017500000000704711747026475023417 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class MotionBlurEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Blurs.MotionBlur.png"; } } public override string Name { get { return Catalog.GetString ("Motion Blur"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public MotionBlurData Data { get { return EffectData as MotionBlurData; } } public MotionBlurEffect () { EffectData = new MotionBlurData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { PointD start = new PointD (0, 0); double theta = ((double)(Data.Angle + 180) * 2 * Math.PI) / 360.0; double alpha = (double)Data.Distance; PointD end = new PointD ((float)alpha * Math.Cos (theta), (float)(-alpha * Math.Sin (theta))); if (Data.Centered) { start.X = -end.X / 2.0f; start.Y = -end.Y / 2.0f; end.X /= 2.0f; end.Y /= 2.0f; } PointD[] points = new PointD[((1 + Data.Distance) * 3) / 2]; if (points.Length == 1) { points[0] = new PointD (0, 0); } else { for (int i = 0; i < points.Length; ++i) { float frac = (float)i / (float)(points.Length - 1); points[i] = Utility.Lerp (start, end, frac); } } ColorBgra* samples = stackalloc ColorBgra[points.Length]; ColorBgra* src_dataptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; int src_height = src.Height; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { int sampleCount = 0; PointD a = new PointD ((float)x + points[0].X, (float)y + points[0].Y); PointD b = new PointD ((float)x + points[points.Length - 1].X, (float)y + points[points.Length - 1].Y); for (int j = 0; j < points.Length; ++j) { PointD pt = new PointD (points[j].X + (float)x, points[j].Y + (float)y); if (pt.X >= 0 && pt.Y >= 0 && pt.X <= (src_width - 1) && pt.Y <= (src_height - 1)) { samples[sampleCount] = src.GetBilinearSample (src_dataptr, src_width, src_height, (float)pt.X, (float)pt.Y); ++sampleCount; } } *dstPtr = ColorBgra.Blend (samples, sampleCount); ++dstPtr; } } } } #endregion public class MotionBlurData : EffectData { [Skip] public override bool IsDefault { get { return Distance == 0; } } public double Angle = 25; [MinimumValue (1), MaximumValue (200)] public int Distance = 10; public bool Centered = true; } } } pinta-1.3/Pinta.Effects/Effects/OilPaintingEffect.cs0000664000175000017500000001131611747026475023534 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class OilPaintingEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Artistic.OilPainting.png"; } } public override string Name { get { return Catalog.GetString ("Oil Painting"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Artistic"); } } public OilPaintingData Data { get { return EffectData as OilPaintingData; } } public OilPaintingEffect () { EffectData = new OilPaintingData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { int width = src.Width; int height = src.Height; int arrayLens = 1 + Data.Coarseness; int localStoreSize = arrayLens * 5 * sizeof (int); byte* localStore = stackalloc byte[localStoreSize]; byte* p = localStore; int* intensityCount = (int*)p; p += arrayLens * sizeof (int); uint* avgRed = (uint*)p; p += arrayLens * sizeof (uint); uint* avgGreen = (uint*)p; p += arrayLens * sizeof (uint); uint* avgBlue = (uint*)p; p += arrayLens * sizeof (uint); uint* avgAlpha = (uint*)p; p += arrayLens * sizeof (uint); byte maxIntensity = (byte)Data.Coarseness; foreach (Gdk.Rectangle rect in rois) { int rectTop = rect.Top; int rectBottom = rect.Bottom; int rectLeft = rect.Left; int rectRight = rect.Right; ColorBgra* dst_dataptr = (ColorBgra*)dest.DataPtr; int dst_width = dest.Width; ColorBgra* src_dataptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; for (int y = rectTop; y < rectBottom; ++y) { ColorBgra* dstPtr = dest.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); int top = y - Data.BrushSize; int bottom = y + Data.BrushSize + 1; if (top < 0) { top = 0; } if (bottom > height) { bottom = height; } for (int x = rectLeft; x < rectRight; ++x) { SetToZero (localStore, (ulong)localStoreSize); int left = x - Data.BrushSize; int right = x + Data.BrushSize + 1; if (left < 0) { left = 0; } if (right > width) { right = width; } int numInt = 0; for (int j = top; j < bottom; ++j) { ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_dataptr, src_width, left, j); for (int i = left; i < right; ++i) { byte intensity = Utility.FastScaleByteByByte (srcPtr->GetIntensityByte (), maxIntensity); ++intensityCount[intensity]; ++numInt; avgRed[intensity] += srcPtr->R; avgGreen[intensity] += srcPtr->G; avgBlue[intensity] += srcPtr->B; avgAlpha[intensity] += srcPtr->A; ++srcPtr; } } byte chosenIntensity = 0; int maxInstance = 0; for (int i = 0; i <= maxIntensity; ++i) { if (intensityCount[i] > maxInstance) { chosenIntensity = (byte)i; maxInstance = intensityCount[i]; } } // TODO: correct handling of alpha values? byte R = (byte)(avgRed[chosenIntensity] / maxInstance); byte G = (byte)(avgGreen[chosenIntensity] / maxInstance); byte B = (byte)(avgBlue[chosenIntensity] / maxInstance); byte A = (byte)(avgAlpha[chosenIntensity] / maxInstance); *dstPtr = ColorBgra.FromBgra (B, G, R, A); ++dstPtr; } } } } // This is slow, and gets called a lot private unsafe static void SetToZero (byte* dst, ulong length) { int* ptr = (int*)dst; for (ulong i = 0; i < length / 4; i++) { *ptr = 0; ptr++; } } #endregion public class OilPaintingData : EffectData { [Caption ("Brush Size"), MinimumValue (1), MaximumValue (8)] public int BrushSize = 3; [MinimumValue (3), MaximumValue (255)] public int Coarseness = 50; } } } pinta-1.3/Pinta.Effects/Effects/OutlineEffect.cs0000664000175000017500000000664611747026475022750 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class OutlineEffect : LocalHistogramEffect { private int thickness; private int intensity; public override string Icon { get { return "Menu.Effects.Stylize.Outline.png"; } } public override string Name { get { return Catalog.GetString ("Outline"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Stylize"); } } public OutlineData Data { get { return EffectData as OutlineData; } } public OutlineEffect () { EffectData = new OutlineData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override ColorBgra Apply (ColorBgra src, int area, int* hb, int* hg, int* hr, int* ha) { int minCount1 = area * (100 - this.intensity) / 200; int minCount2 = area * (100 + this.intensity) / 200; int bCount = 0; int b1 = 0; while (b1 < 255 && hb[b1] == 0) ++b1; while (b1 < 255 && bCount < minCount1) { bCount += hb[b1]; ++b1; } int b2 = b1; while (b2 < 255 && bCount < minCount2) { bCount += hb[b2]; ++b2; } int gCount = 0; int g1 = 0; while (g1 < 255 && hg[g1] == 0) ++g1; while (g1 < 255 && gCount < minCount1) { gCount += hg[g1]; ++g1; } int g2 = g1; while (g2 < 255 && gCount < minCount2) { gCount += hg[g2]; ++g2; } int rCount = 0; int r1 = 0; while (r1 < 255 && hr[r1] == 0) ++r1; while (r1 < 255 && rCount < minCount1) { rCount += hr[r1]; ++r1; } int r2 = r1; while (r2 < 255 && rCount < minCount2) { rCount += hr[r2]; ++r2; } int aCount = 0; int a1 = 0; while (a1 < 255 && hb[a1] == 0) ++a1; while (a1 < 255 && aCount < minCount1) { aCount += ha[a1]; ++a1; } int a2 = a1; while (a2 < 255 && aCount < minCount2) { aCount += ha[a2]; ++a2; } return ColorBgra.FromBgra ( (byte)(255 - (b2 - b1)), (byte)(255 - (g2 - g1)), (byte)(255 - (r2 - r1)), (byte)(a2)); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { this.thickness = Data.Thickness; this.intensity = Data.Intensity; foreach (Gdk.Rectangle rect in rois) RenderRect (this.thickness, src, dest, rect); } #endregion public class OutlineData : EffectData { [MinimumValue (1), MaximumValue (200)] public int Thickness = 3; [MinimumValue (0), MaximumValue (100)] public int Intensity = 50; [Skip] public override bool IsDefault { get { return Thickness == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/PencilSketchEffect.cs0000664000175000017500000000646411747026475023703 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Effects; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class PencilSketchEffect : BaseEffect { private GaussianBlurEffect blurEffect; private UnaryPixelOps.Desaturate desaturateOp; private InvertColorsEffect invertEffect; private BrightnessContrastEffect bacAdjustment; private UserBlendOps.ColorDodgeBlendOp colorDodgeOp; public override string Icon { get { return "Menu.Effects.Artistic.PencilSketch.png"; } } public override string Name { get { return Catalog.GetString ("Pencil Sketch"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Artistic"); } } public PencilSketchData Data { get { return EffectData as PencilSketchData; } } public PencilSketchEffect () { EffectData = new PencilSketchData (); blurEffect = new GaussianBlurEffect (); desaturateOp = new UnaryPixelOps.Desaturate (); invertEffect = new InvertColorsEffect (); bacAdjustment = new BrightnessContrastEffect (); colorDodgeOp = new UserBlendOps.ColorDodgeBlendOp (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { bacAdjustment.Data.Brightness = -Data.ColorRange; bacAdjustment.Data.Contrast = -Data.ColorRange; bacAdjustment.Render (src, dest, rois); blurEffect.Data.Radius = Data.PencilTipSize; blurEffect.Render (src, dest, rois); invertEffect.Render (dest, dest, rois); desaturateOp.Apply (dest, dest, rois); ColorBgra* dst_dataptr = (ColorBgra*)dest.DataPtr; int dst_width = dest.Width; ColorBgra* src_dataptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; foreach (Gdk.Rectangle roi in rois) { for (int y = roi.Top; y < roi.Bottom; ++y) { ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_dataptr, src_width, roi.X, y); ColorBgra* dstPtr = dest.GetPointAddressUnchecked (dst_dataptr, dst_width, roi.X, y); for (int x = roi.Left; x < roi.Right; ++x) { ColorBgra srcGrey = desaturateOp.Apply (*srcPtr); ColorBgra sketched = colorDodgeOp.Apply (srcGrey, *dstPtr); *dstPtr = sketched; ++srcPtr; ++dstPtr; } } } } #endregion public class PencilSketchData : EffectData { [Caption ("Pencil Tip Size"), MinimumValue (1), MaximumValue (20)] public int PencilTipSize = 2; [MinimumValue (-20), MaximumValue (20)] public int ColorRange = 0; } } } pinta-1.3/Pinta.Effects/Effects/PixelateEffect.cs0000664000175000017500000000705611747026475023100 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class PixelateEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Distort.Pixelate.png"; } } public override string Name { get { return Catalog.GetString ("Pixelate"); } } public override bool IsConfigurable { get { return true; } } public PixelateData Data { get { return EffectData as PixelateData; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public PixelateEffect () { EffectData = new PixelateData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN private ColorBgra ComputeCellColor (int x, int y, ImageSurface src, int cellSize, Gdk.Rectangle srcBounds) { Gdk.Rectangle cell = GetCellBox (x, y, cellSize); cell.Intersect (srcBounds); int left = cell.Left; int right = cell.Right - 1; int bottom = cell.Bottom - 1; int top = cell.Top; ColorBgra colorTopLeft = src.GetColorBgra (left, top); ColorBgra colorTopRight = src.GetColorBgra (right, top); ColorBgra colorBottomLeft = src.GetColorBgra (left, bottom); ColorBgra colorBottomRight = src.GetColorBgra (right, bottom); ColorBgra c = ColorBgra.BlendColors4W16IP (colorTopLeft, 16384, colorTopRight, 16384, colorBottomLeft, 16384, colorBottomRight, 16384); return c; } private Gdk.Rectangle GetCellBox (int x, int y, int cellSize) { int widthBoxNum = x % cellSize; int heightBoxNum = y % cellSize; var leftUpper = new Gdk.Point (x - widthBoxNum, y - heightBoxNum); var returnMe = new Gdk.Rectangle (leftUpper, new Gdk.Size (cellSize, cellSize)); return returnMe; } unsafe public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { var cellSize = Data.CellSize; Gdk.Rectangle src_bounds = src.GetBounds (); Gdk.Rectangle dest_bounds = dest.GetBounds (); foreach (var rect in rois) { for (int y = rect.Top; y < rect.Bottom; ++y) { int yEnd = y + 1; for (int x = rect.Left; x < rect.Right; ++x) { var cellRect = GetCellBox (x, y, cellSize); cellRect.Intersect (dest_bounds); var color = ComputeCellColor (x, y, src, cellSize, src_bounds); int xEnd = Math.Min (rect.Right, cellRect.Right); yEnd = Math.Min (rect.Bottom, cellRect.Bottom); for (int y2 = y; y2 < yEnd; ++y2) { ColorBgra* ptr = dest.GetPointAddressUnchecked (x, y2); for (int x2 = x; x2 < xEnd; ++x2) { ptr->Bgra = color.Bgra; ++ptr; } } x = xEnd - 1; } y = yEnd - 1; } } } #endregion } public class PixelateData : EffectData { [MinimumValue(1), MaximumValue(100)] public int CellSize = 2; } } pinta-1.3/Pinta.Effects/Effects/PolarInversionEffect.cs0000664000175000017500000000377511747026475024303 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class PolarInversionEffect : WarpEffect { public override string Icon { get { return "Menu.Effects.Distort.PolarInversion.png"; } } public override string Name { get { return Catalog.GetString ("Polar Inversion"); } } public override bool IsConfigurable { get { return true; } } public PolarInversionData Data { get { return EffectData as PolarInversionData; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public PolarInversionEffect () { EffectData = new PolarInversionData (); } #region Algorithm Code Ported From PDN protected override void InverseTransform (ref TransformData transData) { double x = transData.X; double y = transData.Y; // NOTE: when x and y are zero, this will divide by zero and return NaN double invertDistance = Utility.Lerp (1.0, DefaultRadius2 / ((x * x) + (y * y)), Data.Amount); transData.X = x * invertDistance; transData.Y = y * invertDistance; } #endregion public class PolarInversionData : WarpEffect.WarpData { [MinimumValue(-4), MaximumValue(4)] public double Amount = 0; public PolarInversionData () : base() { EdgeBehavior = WarpEdgeBehavior.Reflect; } } } } pinta-1.3/Pinta.Effects/Effects/RadialBlurEffect.cs0000664000175000017500000001111411747026475023334 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class RadialBlurEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Blurs.RadialBlur.png"; } } public override string Name { get { return Catalog.GetString ("Radial Blur"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public RadialBlurData Data { get { return EffectData as RadialBlurData; } } public RadialBlurEffect () { EffectData = new RadialBlurData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN private static void Rotate (ref int fx, ref int fy, int fr) { int cx = fx; int cy = fy; //sin(x) ~~ x //cos(x)~~ 1 - x^2/2 fx = cx - ((cy >> 8) * fr >> 8) - ((cx >> 14) * (fr * fr >> 11) >> 8); fy = cy + ((cx >> 8) * fr >> 8) - ((cy >> 14) * (fr * fr >> 11) >> 8); } public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { if (Data.Angle == 0) { // Copy src to dest return; } int w = dst.Width; int h = dst.Height; int fcx = (w << 15) + (int)(Data.Offset.X * (w << 15)); int fcy = (h << 15) + (int)(Data.Offset.Y * (h << 15)); int n = (Data.Quality * Data.Quality) * (30 + Data.Quality * Data.Quality); int fr = (int)(Data.Angle * Math.PI * 65536.0 / 181.0); foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { int fx = (x << 16) - fcx; int fy = (y << 16) - fcy; int fsr = fr / n; int sr = 0; int sg = 0; int sb = 0; int sa = 0; int sc = 0; sr += srcPtr->R * srcPtr->A; sg += srcPtr->G * srcPtr->A; sb += srcPtr->B * srcPtr->A; sa += srcPtr->A; ++sc; int ox1 = fx; int ox2 = fx; int oy1 = fy; int oy2 = fy; ColorBgra* src_dataptr = (ColorBgra*)src.DataPtr; int src_width = src.Width; for (int i = 0; i < n; ++i) { Rotate (ref ox1, ref oy1, fsr); Rotate (ref ox2, ref oy2, -fsr); int u1 = ox1 + fcx + 32768 >> 16; int v1 = oy1 + fcy + 32768 >> 16; if (u1 > 0 && v1 > 0 && u1 < w && v1 < h) { ColorBgra* sample = src.GetPointAddressUnchecked (src_dataptr, src_width, u1, v1); sr += sample->R * sample->A; sg += sample->G * sample->A; sb += sample->B * sample->A; sa += sample->A; ++sc; } int u2 = ox2 + fcx + 32768 >> 16; int v2 = oy2 + fcy + 32768 >> 16; if (u2 > 0 && v2 > 0 && u2 < w && v2 < h) { ColorBgra* sample = src.GetPointAddressUnchecked (src_dataptr, src_width, u2, v2); sr += sample->R * sample->A; sg += sample->G * sample->A; sb += sample->B * sample->A; sa += sample->A; ++sc; } } if (sa > 0) { *dstPtr = ColorBgra.FromBgra ( Utility.ClampToByte (sb / sa), Utility.ClampToByte (sg / sa), Utility.ClampToByte (sr / sa), Utility.ClampToByte (sa / sc)); } else { dstPtr->Bgra = 0; } ++dstPtr; ++srcPtr; } } } } #endregion public class RadialBlurData : EffectData { public Double Angle = 2; public PointD Offset = new PointD (0, 0); [MinimumValue (1), MaximumValue (5)] [Hint ("Use low quality for previews, small images, and small angles. Use high quality for final quality, large images, and large angles.")] public int Quality = 2; [Skip] public override bool IsDefault { get { return Angle == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/RedEyeRemoveEffect.cs0000664000175000017500000000452411747026475023655 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class RedEyeRemoveEffect : BaseEffect { private UnaryPixelOp op; public override string Icon { get { return "Menu.Effects.Photo.RedEyeRemove.png"; } } public override string Name { get { return Catalog.GetString ("Red Eye Removal"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Photo"); } } public RedEyeRemoveData Data { get { return EffectData as RedEyeRemoveData; } } public RedEyeRemoveEffect () { EffectData = new RedEyeRemoveData (); } public override bool LaunchConfiguration () { SimpleEffectDialog dialog = new SimpleEffectDialog (Name, PintaCore.Resources.GetIcon (Icon), Data); // Hookup event handling for live preview. dialog.EffectDataChanged += (o, e) => { if (EffectData != null) { op = new UnaryPixelOps.RedEyeRemove (Data.Tolerance, Data.Saturation); EffectData.FirePropertyChanged (e.PropertyName); } }; int response = dialog.Run (); bool ret = (response == (int)Gtk.ResponseType.Ok); dialog.Destroy (); return ret; } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op.Apply (dest, src, rois); } } public class RedEyeRemoveData : EffectData { [MinimumValue (0), MaximumValue (100)] public int Tolerance = 70; [MinimumValue (0), MaximumValue (100)] [Caption ("Saturation percentage")] [Hint ("Hint: For best results, first use selection tools to select each eye.")] public int Saturation = 90; } } pinta-1.3/Pinta.Effects/Effects/ReduceNoiseEffect.cs0000664000175000017500000000544111747026475023526 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class ReduceNoiseEffect : LocalHistogramEffect { private int radius; private double strength; public override string Icon { get { return "Menu.Effects.Noise.ReduceNoise.png"; } } public override string Name { get { return Catalog.GetString ("Reduce Noise"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Noise"); } } public ReduceNoiseData Data { get { return EffectData as ReduceNoiseData; } } public ReduceNoiseEffect () { EffectData = new ReduceNoiseData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public override unsafe ColorBgra Apply (ColorBgra color, int area, int* hb, int* hg, int* hr, int* ha) { ColorBgra normalized = GetPercentileOfColor (color, area, hb, hg, hr, ha); double lerp = strength * (1 - 0.75 * color.GetIntensity ()); return ColorBgra.Lerp (color, normalized, lerp); } private static unsafe ColorBgra GetPercentileOfColor (ColorBgra color, int area, int* hb, int* hg, int* hr, int* ha) { int rc = 0; int gc = 0; int bc = 0; for (int i = 0; i < color.R; ++i) rc += hr[i]; for (int i = 0; i < color.G; ++i) gc += hg[i]; for (int i = 0; i < color.B; ++i) bc += hb[i]; rc = (rc * 255) / area; gc = (gc * 255) / area; bc = (bc * 255) / area; return ColorBgra.FromBgr ((byte)bc, (byte)gc, (byte)rc); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { this.radius = Data.Radius; this.strength = -0.2 * Data.Strength; foreach (Gdk.Rectangle rect in rois) RenderRect (this.radius, src, dest, rect); } #endregion public class ReduceNoiseData : EffectData { [MinimumValue (1), MaximumValue (200)] public int Radius = 6; [MinimumValue (0), IncrementValue (0.01), DigitsValue (2), MaximumValue (1)] public double Strength = 0.4; } } } pinta-1.3/Pinta.Effects/Effects/ReliefEffect.cs0000664000175000017500000000475111747026475022532 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class ReliefEffect : ColorDifferenceEffect { public ReliefEffect () { EffectData = new ReliefData (); } public ReliefData Data { get { return EffectData as ReliefData; } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Stylize"); } } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public override string Icon { get { return "Menu.Effects.Stylize.Relief.png"; } } public override string Name { get { return Catalog.GetString ("Relief"); } } #region Algorithm Code Ported From PDN public override void Render (Cairo.ImageSurface src, Cairo.ImageSurface dst, Gdk.Rectangle[] rois) { base.RenderColorDifferenceEffect (Weights, src, dst, rois); } private double[][] Weights { get { // adjust and convert angle to radians double r = (double)Data.Angle * 2.0 * Math.PI / 360.0; // angle delta for each weight double dr = Math.PI / 4.0; // for r = 0 this builds an Relief filter pointing straight left double[][] weights = new double[3][]; for (uint idx = 0; idx < 3; ++idx) { weights[idx] = new double[3]; } weights[0][0] = Math.Cos (r + dr); weights[0][1] = Math.Cos (r + 2.0 * dr); weights[0][2] = Math.Cos (r + 3.0 * dr); weights[1][0] = Math.Cos (r); weights[1][1] = 1; weights[1][2] = Math.Cos (r + 4.0 * dr); weights[2][0] = Math.Cos (r - dr); weights[2][1] = Math.Cos (r - 2.0 * dr); weights[2][2] = Math.Cos (r - 3.0 * dr); return weights; } } #endregion } public class ReliefData : EffectData { public double Angle = 45; } } pinta-1.3/Pinta.Effects/Effects/SharpenEffect.cs0000664000175000017500000000365111747026475022722 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class SharpenEffect : LocalHistogramEffect { public override string Icon { get { return "Menu.Effects.Photo.Sharpen.png"; } } public override string Name { get { return Catalog.GetString ("Sharpen"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Photo"); } } public SharpenData Data { get { return EffectData as SharpenData; } } public SharpenEffect () { EffectData = new SharpenData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { foreach (Gdk.Rectangle rect in rois) RenderRect (Data.Amount, src, dest, rect); } public unsafe override ColorBgra Apply (ColorBgra src, int area, int* hb, int* hg, int* hr, int* ha) { ColorBgra median = GetPercentile(50, area, hb, hg, hr, ha); return ColorBgra.Lerp(src, median, -0.5f); } } public class SharpenData : EffectData { [MinimumValue (1), MaximumValue (20)] public int Amount = 2; } } pinta-1.3/Pinta.Effects/Effects/SoftenPortraitEffect.cs0000664000175000017500000001102011747026475024272 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzystzof Marecki // ///////////////////////////////////////////////////////////////////////////////// // This effect was graciously provided by David Issel, aka BoltBait. His original // copyright and license (MIT License) are reproduced below. /* PortraitEffect.cs Copyright (c) 2007 David Issel Contact Info: BoltBait@hotmail.com http://www.BoltBait.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Effects; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class SoftenPortraitEffect : BaseEffect { private GaussianBlurEffect blurEffect; private BrightnessContrastEffect bacAdjustment; private UnaryPixelOps.Desaturate desaturateOp; private UserBlendOps.OverlayBlendOp overlayOp; public override string Icon { get { return "Menu.Effects.Photo.SoftenPortrait.png"; } } public override string Name { get { return Catalog.GetString ("Soften Portrait"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Photo"); } } public SoftenPortraitData Data { get { return EffectData as SoftenPortraitData; } } public SoftenPortraitEffect () { EffectData = new SoftenPortraitData (); blurEffect = new GaussianBlurEffect (); bacAdjustment = new BrightnessContrastEffect (); desaturateOp = new UnaryPixelOps.Desaturate (); overlayOp = new UserBlendOps.OverlayBlendOp (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { int warmth = Data.Warmth; float redAdjust = 1.0f + (warmth / 100.0f); float blueAdjust = 1.0f - (warmth / 100.0f); this.blurEffect.Render(src, dest, rois); this.bacAdjustment.Render(src, dest, rois); foreach (Gdk.Rectangle roi in rois) { for (int y = roi.Top; y < roi.Bottom; ++y) { ColorBgra* srcPtr = src.GetPointAddress(roi.X, y); ColorBgra* dstPtr = dest.GetPointAddress(roi.X, y); for (int x = roi.Left; x < roi.Right; ++x) { ColorBgra srcGrey = this.desaturateOp.Apply(*srcPtr); srcGrey.R = Utility.ClampToByte((int)((float)srcGrey.R * redAdjust)); srcGrey.B = Utility.ClampToByte((int)((float)srcGrey.B * blueAdjust)); ColorBgra mypixel = this.overlayOp.Apply(srcGrey, *dstPtr); *dstPtr = mypixel; ++srcPtr; ++dstPtr; } } } } } public class SoftenPortraitData : EffectData { [MinimumValue (0), MaximumValue (10)] public int Softness = 5; [MinimumValue (-20), MaximumValue (20)] public int Lighting = 0; [MinimumValue (0), MaximumValue (20)] public int Warmth = 10; } } pinta-1.3/Pinta.Effects/Effects/TileEffect.cs0000664000175000017500000001026411747026475022215 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class TileEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Distort.Tile.png"; } } public override string Name { get { return Catalog.GetString ("Tile Reflection"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public TileData Data { get { return EffectData as TileData; } } public TileEffect () { EffectData = new TileData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN unsafe public override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { int width = dst.Width; int height = dst.Height; float hw = width / 2f; float hh = height / 2f; float sin = (float)Math.Sin (Data.Rotation * Math.PI / 180.0); float cos = (float)Math.Cos (Data.Rotation * Math.PI / 180.0); float scale = (float)Math.PI / Data.TileSize; float intensity = Data.Intensity; intensity = intensity * intensity / 10 * Math.Sign (intensity); int aaLevel = 4; int aaSamples = aaLevel * aaLevel + 1; PointD* aaPoints = stackalloc PointD[aaSamples]; for (int i = 0; i < aaSamples; ++i) { double x = (i * aaLevel) / (double)aaSamples; double y = i / (double)aaSamples; x -= (int)x; // RGSS + rotation to maximize AA quality aaPoints[i] = new PointD ((double)(cos * x + sin * y), (double)(cos * y - sin * x)); } int src_width = src.Width; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (var rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { float j = y - hh; ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { int b = 0; int g = 0; int r = 0; int a = 0; float i = x - hw; for (int p = 0; p < aaSamples; ++p) { PointD pt = aaPoints[p]; float u = i + (float)pt.X; float v = j - (float)pt.Y; float s = cos * u + sin * v; float t = -sin * u + cos * v; s += intensity * (float)Math.Tan (s * scale); t += intensity * (float)Math.Tan (t * scale); u = cos * s - sin * t; v = sin * s + cos * t; int xSample = (int)(hw + u); int ySample = (int)(hh + v); xSample = (xSample + width) % width; // This makes it a little faster if (xSample < 0) { xSample = (xSample + width) % width; } ySample = (ySample + height) % height; // This makes it a little faster if (ySample < 0) { ySample = (ySample + height) % height; } ColorBgra sample = *src.GetPointAddressUnchecked (src_data_ptr, src_width, xSample, ySample); b += sample.B; g += sample.G; r += sample.R; a += sample.A; } *(dstPtr++) = ColorBgra.FromBgra ((byte)(b / aaSamples), (byte)(g / aaSamples), (byte)(r / aaSamples), (byte)(a / aaSamples)); } } } } #endregion public class TileData : EffectData { [MinimumValue(-45), MaximumValue(45)] public double Rotation = 30; [MinimumValue(2), MaximumValue(200)] public int TileSize = 40; [MinimumValue(-20), MaximumValue(20)] public int Intensity = 8; } } } pinta-1.3/Pinta.Effects/Effects/TwistEffect.cs0000664000175000017500000000722311747026475022433 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Marco Rolappe // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class TwistEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Distort.Twist.png"; } } public override string Name { get { return Catalog.GetString ("Twist"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Distort"); } } public TwistData Data { get { return EffectData as TwistData; } } public TwistEffect () { EffectData = new TwistData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { float twist = Data.Amount; float hw = dst.Width / 2.0f; float hh = dst.Height / 2.0f; float maxrad = Math.Min (hw, hh); twist = twist * twist * Math.Sign (twist); int aaLevel = Data.Antialias; int aaSamples = aaLevel * aaLevel + 1; PointD* aaPoints = stackalloc PointD[aaSamples]; for (int i = 0; i < aaSamples; ++i) { PointD pt = new PointD ( ((i * aaLevel) / (float)aaSamples), i / (float)aaSamples); pt.X -= (int)pt.X; aaPoints[i] = pt; } int src_width = src.Width; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; foreach (var rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { float j = y - hh; ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { float i = x - hw; if (i * i + j * j > (maxrad + 1) * (maxrad + 1)) { *dstPtr = *srcPtr; } else { int b = 0; int g = 0; int r = 0; int a = 0; for (int p = 0; p < aaSamples; ++p) { float u = i + (float)aaPoints[p].X; float v = j + (float)aaPoints[p].Y; double rad = Math.Sqrt (u * u + v * v); double theta = Math.Atan2 (v, u); double t = 1 - rad / maxrad; t = (t < 0) ? 0 : (t * t * t); theta += (t * twist) / 100; ColorBgra sample = src.GetPointUnchecked (src_data_ptr, src_width, (int)(hw + (float)(rad * Math.Cos (theta))), (int)(hh + (float)(rad * Math.Sin (theta)))); b += sample.B; g += sample.G; r += sample.R; a += sample.A; } *dstPtr = ColorBgra.FromBgra ( (byte)(b / aaSamples), (byte)(g / aaSamples), (byte)(r / aaSamples), (byte)(a / aaSamples)); } ++dstPtr; ++srcPtr; } } } } #endregion public class TwistData : EffectData { [MinimumValue (-100), MaximumValue (100)] public int Amount = 45; [MinimumValue (0), MaximumValue (5)] public int Antialias = 2; } } } pinta-1.3/Pinta.Effects/Effects/UnfocusEffect.cs0000664000175000017500000000535411747026475022746 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Hanh Pham // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class UnfocusEffect : LocalHistogramEffect { private int radius; public override string Icon { get { return "Menu.Effects.Blurs.Unfocus.png"; } } public override string Name { get { return Catalog.GetString ("Unfocus"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public UnfocusData Data { get { return EffectData as UnfocusData; } } public UnfocusEffect () { EffectData = new UnfocusData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { this.radius = Data.Radius; foreach (Gdk.Rectangle rect in rois) RenderRectWithAlpha (this.radius, src, dest, rect); } public unsafe override ColorBgra ApplyWithAlpha (ColorBgra src, int area, int sum, int* hb, int* hg, int* hr) { //each slot of the histgram can contain up to area * 255. This will overflow an int when area > 32k if (area < 32768) { int b = 0; int g = 0; int r = 0; for (int i = 1; i < 256; ++i) { b += i * hb[i]; g += i * hg[i]; r += i * hr[i]; } int alpha = sum / area; int div = area * 255; return ColorBgra.FromBgraClamped (b / div, g / div, r / div, alpha); } else { //use a long if an int will overflow. long b = 0; long g = 0; long r = 0; for (long i = 1; i < 256; ++i) { b += i * hb[i]; g += i * hg[i]; r += i * hr[i]; } int alpha = sum / area; int div = area * 255; return ColorBgra.FromBgraClamped (b / div, g / div, r / div, alpha); } } #endregion public class UnfocusData : EffectData { [MinimumValue (1), MaximumValue (200)] public int Radius = 4; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.3/Pinta.Effects/Effects/WarpEffect.cs0000664000175000017500000001206311747026475022230 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; namespace Pinta.Effects { public enum WarpEdgeBehavior { Clamp, Wrap, Reflect, Primary, Secondary, Transparent, Original, } public abstract class WarpEffect : BaseEffect { public WarpData Data { get { return EffectData as WarpData; } } public WarpEffect () { EffectData = new WarpData (); } public override bool LaunchConfiguration () { if (EffectHelper.LaunchSimpleEffectDialog (this)) { Data.PropertyChanged += delegate { //TODO this.defaultRadius = 2; //Math.Min(selection.Width, selection.Height) * 0.5; this.defaultRadius2 = this.defaultRadius * this.defaultRadius; }; return true; } return false; } private double defaultRadius; private double defaultRadius2; protected double DefaultRadius { get { return this.defaultRadius; } } protected double DefaultRadius2 { get { return this.defaultRadius2; } } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { ColorBgra colPrimary = PintaCore.Palette.PrimaryColor.ToColorBgra (); ColorBgra colSecondary = PintaCore.Palette.SecondaryColor.ToColorBgra (); ColorBgra colTransparent = ColorBgra.Transparent; int aaSampleCount = Data.Quality * Data.Quality; Cairo.PointD* aaPoints = stackalloc Cairo.PointD[aaSampleCount]; Utility.GetRgssOffsets (aaPoints, aaSampleCount, Data.Quality); ColorBgra* samples = stackalloc ColorBgra[aaSampleCount]; TransformData td; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); double relativeY = y - Data.CenterOffset.Y; for (int x = rect.Left; x < rect.Right; x++) { double relativeX = x - Data.CenterOffset.X; int sampleCount = 0; for (int p = 0; p < aaSampleCount; ++p) { td.X = relativeX + aaPoints[p].X; td.Y = relativeY - aaPoints[p].Y; InverseTransform (ref td); float sampleX = (float)(td.X + Data.CenterOffset.X); float sampleY = (float)(td.Y + Data.CenterOffset.Y); ColorBgra sample = colPrimary; if (IsOnSurface (src, sampleX, sampleY)) { sample = src.GetBilinearSample (sampleX, sampleY); } else { switch (Data.EdgeBehavior) { case WarpEdgeBehavior.Clamp: sample = src.GetBilinearSampleClamped (sampleX, sampleY); break; case WarpEdgeBehavior.Wrap: sample = src.GetBilinearSampleWrapped (sampleX, sampleY); break; case WarpEdgeBehavior.Reflect: sample = src.GetBilinearSampleClamped (ReflectCoord (sampleX, src.Width), ReflectCoord (sampleY, src.Height)); break; case WarpEdgeBehavior.Primary: sample = colPrimary; break; case WarpEdgeBehavior.Secondary: sample = colSecondary; break; case WarpEdgeBehavior.Transparent: sample = colTransparent; break; case WarpEdgeBehavior.Original: sample = src.GetColorBgra (x, y); break; default: break; } } samples[sampleCount] = sample; ++sampleCount; } *dstPtr = ColorBgra.Blend (samples, sampleCount); ++dstPtr; } } } } protected abstract void InverseTransform (ref TransformData data); protected struct TransformData { public double X; public double Y; } private static bool IsOnSurface (ImageSurface src, float u, float v) { return (u >= 0 && u <= (src.Width - 1) && v >= 0 && v <= (src.Height - 1)); } private static float ReflectCoord (float value, int max) { bool reflection = false; while (value < 0) { value += max; reflection = !reflection; } while (value > max) { value -= max; reflection = !reflection; } if (reflection) { value = max - value; } return value; } #endregion public class WarpData : EffectData { [MinimumValue(1), MaximumValue(5)] public int Quality = 2; public Gdk.Point CenterOffset; public WarpEdgeBehavior EdgeBehavior = WarpEdgeBehavior.Wrap; } } } pinta-1.3/Pinta.Effects/Effects/ZoomBlurEffect.cs0000664000175000017500000000744211747026475023075 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Pinta.Gui.Widgets; using Pinta.Core; using Mono.Unix; namespace Pinta.Effects { public class ZoomBlurEffect : BaseEffect { public override string Icon { get { return "Menu.Effects.Blurs.ZoomBlur.png"; } } public override string Name { get { return Catalog.GetString ("Zoom Blur"); } } public override bool IsConfigurable { get { return true; } } public override string EffectMenuCategory { get { return Catalog.GetString ("Blurs"); } } public ZoomBlurData Data { get { return EffectData as ZoomBlurData; } } public ZoomBlurEffect () { EffectData = new ZoomBlurData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } #region Algorithm Code Ported From PDN public unsafe override void Render (ImageSurface src, ImageSurface dst, Gdk.Rectangle[] rois) { if (Data.Amount == 0) { // Copy src to dest return; } int src_width = src.Width; ColorBgra* src_data_ptr = (ColorBgra*)src.DataPtr; int dst_width = dst.Width; ColorBgra* dst_data_ptr = (ColorBgra*)dst.DataPtr; Gdk.Rectangle src_bounds = src.GetBounds (); long w = dst.Width; long h = dst.Height; long fox = (long)(dst.Width * Data.Offset.X * 32768.0); long foy = (long)(dst.Height * Data.Offset.Y * 32768.0); long fcx = fox + (w << 15); long fcy = foy + (h << 15); long fz = Data.Amount; const int n = 64; foreach (Gdk.Rectangle rect in rois) { for (int y = rect.Top; y < rect.Bottom; ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_data_ptr, dst_width, rect.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (src_data_ptr, src_width, rect.Left, y); for (int x = rect.Left; x < rect.Right; ++x) { long fx = (x << 16) - fcx; long fy = (y << 16) - fcy; int sr = 0; int sg = 0; int sb = 0; int sa = 0; int sc = 0; sr += srcPtr->R * srcPtr->A; sg += srcPtr->G * srcPtr->A; sb += srcPtr->B * srcPtr->A; sa += srcPtr->A; ++sc; for (int i = 0; i < n; ++i) { fx -= ((fx >> 4) * fz) >> 10; fy -= ((fy >> 4) * fz) >> 10; int u = (int)(fx + fcx + 32768 >> 16); int v = (int)(fy + fcy + 32768 >> 16); if (src_bounds.Contains (u, v)) { ColorBgra* srcPtr2 = src.GetPointAddressUnchecked (src_data_ptr, src_width, u, v); sr += srcPtr2->R * srcPtr2->A; sg += srcPtr2->G * srcPtr2->A; sb += srcPtr2->B * srcPtr2->A; sa += srcPtr2->A; ++sc; } } if (sa != 0) { *dstPtr = ColorBgra.FromBgra ( Utility.ClampToByte (sb / sa), Utility.ClampToByte (sg / sa), Utility.ClampToByte (sr / sa), Utility.ClampToByte (sa / sc)); } else { dstPtr->Bgra = 0; } ++srcPtr; ++dstPtr; } } } } #endregion public class ZoomBlurData : EffectData { [MinimumValue (0), MaximumValue (100)] public int Amount = 10; public Gdk.Point Offset = new Gdk.Point (0, 0); [Skip] public override bool IsDefault { get { return Amount == 0; } } } } } pinta-1.3/Pinta.Effects/Makefile.am0000664000175000017500000000372611747026475020336 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta.Effects TARGET = library ASSEMBLY_BUILD_FLAGS = -unsafe INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR) BUILD_SUBDIR = "/Extensions" REFERENCES = \ -r:Mono.Posix \ -r:System \ -r:System.Core \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(MONO_CAIRO_LIBS) \ -r:../bin/Pinta.Core.dll \ -r:../bin/Pinta.Gui.Widgets.dll \ -r:../bin/System.Composition.ComponentModel.dll SOURCES = \ Dialogs/Effects.LevelsDialog.cs \ Dialogs/Effects.PosterizeDialog.cs \ Adjustments/AutoLevelEffect.cs \ Adjustments/BlackAndWhiteEffect.cs \ Adjustments/BrightnessContrastEffect.cs \ Adjustments/CurvesEffect.cs \ Adjustments/HueSaturationEffect.cs \ Adjustments/InvertColorsEffect.cs \ Adjustments/LevelsEffect.cs \ Adjustments/PosterizeEffect.cs \ Adjustments/SepiaEffect.cs \ Effects/AddNoiseEffect.cs \ Effects/BulgeEffect.cs \ Effects/CloudsEffect.cs \ Effects/EdgeDetectEffect.cs \ Effects/EmbossEffect.cs \ Effects/FragmentEffect.cs \ Effects/FrostedGlassEffect.cs \ Effects/GaussianBlurEffect.cs \ Effects/GlowEffect.cs \ Effects/InkSketchEffect.cs \ Effects/JuliaFractalEffect.cs \ Effects/LocalHistogramEffect.cs \ Effects/MandelbrotFractalEffect.cs \ Effects/MedianEffect.cs \ Effects/MotionBlurEffect.cs \ Effects/OilPaintingEffect.cs \ Effects/OutlineEffect.cs \ Effects/PencilSketchEffect.cs \ Effects/PixelateEffect.cs \ Effects/PolarInversionEffect.cs \ Effects/RadialBlurEffect.cs \ Effects/RedEyeRemoveEffect.cs \ Effects/ReduceNoiseEffect.cs \ Effects/ReliefEffect.cs \ Effects/SharpenEffect.cs \ Effects/SoftenPortraitEffect.cs \ Effects/TileEffect.cs \ Effects/TwistEffect.cs \ Effects/UnfocusEffect.cs \ Effects/WarpEffect.cs \ Effects/ZoomBlurEffect.cs \ gtk-gui/generated.cs \ gtk-gui/Pinta.Effects.PosterizeDialog.cs \ Properties/AssemblyInfo.cs \ Utilities/EffectHelper.cs \ gtk-gui/Pinta.Effects.CurvesDialog.cs \ Dialogs/Effects.CurvesDialog.cs \ gtk-gui/Pinta.Effects.LevelsDialog.cs pinta-1.3/Pinta.Effects/Pinta.Effects.csproj0000664000175000017500000001712611747026475022154 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {71A1C3E0-7343-48FE-BD9A-508929136E92} Library Properties Pinta.Effects Pinta.Effects v4.0 512 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin\ DEBUG;TRACE prompt 4 true AllRules.ruleset pdbonly true ..\bin\Extensions\ TRACE prompt 4 true AllRules.ruleset ..\lib\Mono.Addins.dll False Code {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Pinta.Core False {83F0C0AD-D587-457C-B72A-1A184D6D76B3} Pinta.Gui.Widgets False gui.stetic False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true pinta-1.3/Pinta.Effects/Properties/0000775000175000017500000000000011747026475020426 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/Properties/AssemblyInfo.cs0000664000175000017500000000317011747026475023351 0ustar00cameroncameron00000000000000using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Mono.Addins; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle ("Pinta.Effects")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] [assembly: AssemblyCompany ("")] [assembly: AssemblyProduct ("Pinta.Effects")] [assembly: AssemblyCopyright ("")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible (false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid ("7ecbb03b-56f4-4ee1-b214-cd1657fe888b")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion ("1.3.0.0")] [assembly: AssemblyFileVersion ("1.3.0.0")] [assembly: Addin ("DefaultEffects", "1.3", Category = "Core")] [assembly: AddinName ("Default Effects")] [assembly: AddinDescription ("The default adjustments and effects that ship with Pinta")] [assembly: AddinDependency ("Pinta", "1.3")] pinta-1.3/Pinta.Effects/Utilities/0000775000175000017500000000000011747026475020245 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/Utilities/EffectHelper.cs0000664000175000017500000000423511747026475023134 0ustar00cameroncameron00000000000000// // ConfigurableEffectHelper.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Pinta.Gui.Widgets; using System.ComponentModel; namespace Pinta { public static class EffectHelper { public static bool LaunchSimpleEffectDialog (BaseEffect effect) { if (effect == null) throw new ArgumentNullException ("effect"); if (effect.EffectData == null) throw new ArgumentException ("effect.EffectData is null."); var dialog = new SimpleEffectDialog (effect.Name, PintaCore.Resources.GetIcon (effect.Icon), effect.EffectData); // Hookup event handling for live preview. dialog.EffectDataChanged += (o, e) => { if (effect.EffectData != null) effect.EffectData.FirePropertyChanged (e.PropertyName); }; int response = dialog.Run (); bool ret = false; if (response == (int)Gtk.ResponseType.Ok && effect.EffectData != null) ret = !effect.EffectData.IsDefault; dialog.Destroy (); return ret; } } } pinta-1.3/Pinta.Effects/gtk-gui/0000775000175000017500000000000011747026475017641 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs0000664000175000017500000002143211747026475025211 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Effects { public partial class CurvesDialog { private global::Gtk.HBox hbox1; private global::Gtk.Label labelMap; private global::Gtk.HSeparator hseparatorMap; private global::Gtk.HBox hbox2; private global::Gtk.ComboBox comboMap; private global::Gtk.Alignment alignment3; private global::Gtk.Label labelPoint; private global::Gtk.DrawingArea drawing; private global::Gtk.HBox hbox3; private global::Gtk.CheckButton checkRed; private global::Gtk.CheckButton checkGreen; private global::Gtk.CheckButton checkBlue; private global::Gtk.Alignment alignment1; private global::Gtk.Button buttonReset; private global::Gtk.Label labelTip; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Effects.CurvesDialog this.Name = "Pinta.Effects.CurvesDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Curves"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Resizable = false; this.AllowGrow = false; this.SkipTaskbarHint = true; // Internal child Pinta.Effects.CurvesDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.labelMap = new global::Gtk.Label (); this.labelMap.Name = "labelMap"; this.labelMap.LabelProp = global::Mono.Unix.Catalog.GetString ("Transfer Map"); this.hbox1.Add (this.labelMap); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.labelMap])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparatorMap = new global::Gtk.HSeparator (); this.hseparatorMap.Name = "hseparatorMap"; this.hbox1.Add (this.hseparatorMap); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hseparatorMap])); w3.Position = 1; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.comboMap = global::Gtk.ComboBox.NewText (); this.comboMap.AppendText (global::Mono.Unix.Catalog.GetString ("RGB")); this.comboMap.AppendText (global::Mono.Unix.Catalog.GetString ("Luminosity")); this.comboMap.Name = "comboMap"; this.comboMap.Active = 1; this.hbox2.Add (this.comboMap); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.comboMap])); w5.Position = 0; w5.Expand = false; w5.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.alignment3 = new global::Gtk.Alignment (1f, 0.5f, 0f, 0f); this.alignment3.Name = "alignment3"; // Container child alignment3.Gtk.Container+ContainerChild this.labelPoint = new global::Gtk.Label (); this.labelPoint.Name = "labelPoint"; this.labelPoint.LabelProp = global::Mono.Unix.Catalog.GetString ("(256, 256)"); this.alignment3.Add (this.labelPoint); this.hbox2.Add (this.alignment3); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.alignment3])); w7.PackType = ((global::Gtk.PackType)(1)); w7.Position = 2; w7.Expand = false; w7.Fill = false; w1.Add (this.hbox2); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.hbox2])); w8.Position = 1; w8.Expand = false; w8.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.drawing = new global::Gtk.DrawingArea (); this.drawing.WidthRequest = 256; this.drawing.HeightRequest = 256; this.drawing.CanFocus = true; this.drawing.Events = ((global::Gdk.EventMask)(795646)); this.drawing.Name = "drawing"; w1.Add (this.drawing); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(w1[this.drawing])); w9.Position = 2; w9.Padding = ((uint)(8)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; // Container child hbox3.Gtk.Box+BoxChild this.checkRed = new global::Gtk.CheckButton (); this.checkRed.CanFocus = true; this.checkRed.Name = "checkRed"; this.checkRed.Label = global::Mono.Unix.Catalog.GetString ("Red "); this.checkRed.Active = true; this.checkRed.DrawIndicator = true; this.checkRed.UseUnderline = true; this.hbox3.Add (this.checkRed); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.checkRed])); w10.Position = 0; // Container child hbox3.Gtk.Box+BoxChild this.checkGreen = new global::Gtk.CheckButton (); this.checkGreen.CanFocus = true; this.checkGreen.Name = "checkGreen"; this.checkGreen.Label = global::Mono.Unix.Catalog.GetString ("Green"); this.checkGreen.Active = true; this.checkGreen.DrawIndicator = true; this.checkGreen.UseUnderline = true; this.hbox3.Add (this.checkGreen); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.checkGreen])); w11.Position = 1; // Container child hbox3.Gtk.Box+BoxChild this.checkBlue = new global::Gtk.CheckButton (); this.checkBlue.CanFocus = true; this.checkBlue.Name = "checkBlue"; this.checkBlue.Label = global::Mono.Unix.Catalog.GetString ("Blue "); this.checkBlue.Active = true; this.checkBlue.DrawIndicator = true; this.checkBlue.UseUnderline = true; this.hbox3.Add (this.checkBlue); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.checkBlue])); w12.Position = 2; // Container child hbox3.Gtk.Box+BoxChild this.alignment1 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f); this.alignment1.Name = "alignment1"; this.hbox3.Add (this.alignment1); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment1])); w13.Position = 3; // Container child hbox3.Gtk.Box+BoxChild this.buttonReset = new global::Gtk.Button (); this.buttonReset.WidthRequest = 81; this.buttonReset.HeightRequest = 30; this.buttonReset.CanFocus = true; this.buttonReset.Name = "buttonReset"; this.buttonReset.UseUnderline = true; this.buttonReset.Label = global::Mono.Unix.Catalog.GetString ("Reset"); this.hbox3.Add (this.buttonReset); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.buttonReset])); w14.Position = 4; w14.Expand = false; w14.Fill = false; w1.Add (this.hbox3); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1[this.hbox3])); w15.Position = 3; w15.Expand = false; w15.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.labelTip = new global::Gtk.Label (); this.labelTip.Name = "labelTip"; this.labelTip.LabelProp = global::Mono.Unix.Catalog.GetString ("Tip: Right-click to remove control points."); w1.Add (this.labelTip); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(w1[this.labelTip])); w16.Position = 4; w16.Expand = false; w16.Fill = false; // Internal child Pinta.Effects.CurvesDialog.ActionArea global::Gtk.HButtonBox w17 = this.ActionArea; w17.Name = "dialog1_ActionArea"; w17.Spacing = 10; w17.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17[this.buttonCancel])); w18.Expand = false; w18.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w19 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17[this.buttonOk])); w19.Position = 1; w19.Expand = false; w19.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 269; this.DefaultHeight = 418; this.checkRed.Hide (); this.checkGreen.Hide (); this.checkBlue.Hide (); this.Show (); } } } pinta-1.3/Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs0000664000175000017500000005516011747026475025201 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Effects { public partial class LevelsDialog { private global::Gtk.HBox hbox1; private global::Gtk.VBox vbox2; private global::Gtk.HBox hbox2; private global::Gtk.Label labelInputHist; private global::Gtk.HSeparator hseparator1; private global::Pinta.Gui.Widgets.HistogramWidget histogramInput; private global::Gtk.VBox vbox3; private global::Gtk.HBox hbox3; private global::Gtk.Label labelInput; private global::Gtk.HSeparator hseparator2; private global::Gtk.HBox hbox8; private global::Gtk.VBox vboxInputSpin; private global::Gtk.SpinButton spinInHigh; private global::Pinta.Gui.Widgets.ColorPanelWidget colorpanelInHigh; private global::Gtk.Alignment alignment1; private global::Pinta.Gui.Widgets.ColorPanelWidget colorpanelInLow; private global::Gtk.SpinButton spinInLow; private global::Pinta.Gui.Widgets.ColorGradientWidget gradientInput; private global::Gtk.VBox vbox4; private global::Gtk.HBox hbox4; private global::Gtk.Label labelOutput; private global::Gtk.HSeparator hseparator3; private global::Gtk.HBox hbox9; private global::Pinta.Gui.Widgets.ColorGradientWidget gradientOutput; private global::Gtk.VBox vboxOutputSpin; private global::Gtk.SpinButton spinOutHigh; private global::Pinta.Gui.Widgets.ColorPanelWidget colorpanelOutHigh; private global::Gtk.SpinButton spinOutGamma; private global::Pinta.Gui.Widgets.ColorPanelWidget colorpanelOutMid; private global::Pinta.Gui.Widgets.ColorPanelWidget colorpanelOutLow; private global::Gtk.SpinButton spinOutLow; private global::Gtk.VBox vbox5; private global::Gtk.HBox hbox5; private global::Gtk.Label labelOutputHist; private global::Gtk.HSeparator hseparator4; private global::Pinta.Gui.Widgets.HistogramWidget histogramOutput; private global::Gtk.HBox hboxBottom; private global::Gtk.Button buttonAuto; private global::Gtk.Button buttonReset; private global::Gtk.CheckButton checkRed; private global::Gtk.CheckButton checkGreen; private global::Gtk.Button buttonOk; private global::Gtk.Button buttonCancel; private global::Gtk.CheckButton checkBlue; private global::Gtk.Button buttonDummy; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Effects.LevelsDialog this.Events = ((global::Gdk.EventMask)(260)); this.Name = "Pinta.Effects.LevelsDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Levels Adjustment"); this.TypeHint = ((global::Gdk.WindowTypeHint)(1)); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Resizable = false; this.AllowGrow = false; this.SkipTaskbarHint = true; // Internal child Pinta.Effects.LevelsDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Events = ((global::Gdk.EventMask)(1534)); w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Events = ((global::Gdk.EventMask)(260)); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.labelInputHist = new global::Gtk.Label (); this.labelInputHist.Name = "labelInputHist"; this.labelInputHist.LabelProp = global::Mono.Unix.Catalog.GetString ("Input Histogram"); this.hbox2.Add (this.labelInputHist); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.labelInputHist])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.hbox2.Add (this.hseparator1); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.hseparator1])); w3.Position = 1; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.histogramInput = new global::Pinta.Gui.Widgets.HistogramWidget (); this.histogramInput.WidthRequest = 130; this.histogramInput.Events = ((global::Gdk.EventMask)(256)); this.histogramInput.Name = "histogramInput"; this.histogramInput.FlipHorizontal = true; this.histogramInput.FlipVertical = false; this.vbox2.Add (this.histogramInput); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.histogramInput])); w5.Position = 1; this.hbox1.Add (this.vbox2); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox2])); w6.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Events = ((global::Gdk.EventMask)(36)); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.labelInput = new global::Gtk.Label (); this.labelInput.Name = "labelInput"; this.labelInput.LabelProp = global::Mono.Unix.Catalog.GetString ("Input"); this.hbox3.Add (this.labelInput); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.labelInput])); w7.Position = 0; w7.Expand = false; w7.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.hseparator2 = new global::Gtk.HSeparator (); this.hseparator2.Name = "hseparator2"; this.hbox3.Add (this.hseparator2); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.hseparator2])); w8.Position = 1; this.vbox3.Add (this.hbox3); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox3])); w9.Position = 0; w9.Expand = false; w9.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.hbox8 = new global::Gtk.HBox (); this.hbox8.Events = ((global::Gdk.EventMask)(260)); this.hbox8.Name = "hbox8"; this.hbox8.Spacing = 6; // Container child hbox8.Gtk.Box+BoxChild this.vboxInputSpin = new global::Gtk.VBox (); this.vboxInputSpin.Name = "vboxInputSpin"; this.vboxInputSpin.Spacing = 6; // Container child vboxInputSpin.Gtk.Box+BoxChild this.spinInHigh = new global::Gtk.SpinButton (1, 255, 1); this.spinInHigh.CanFocus = true; this.spinInHigh.Name = "spinInHigh"; this.spinInHigh.Adjustment.PageIncrement = 10; this.spinInHigh.ClimbRate = 1; this.spinInHigh.Numeric = true; this.spinInHigh.Value = 255; this.vboxInputSpin.Add (this.spinInHigh); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vboxInputSpin[this.spinInHigh])); w10.Position = 0; w10.Expand = false; w10.Fill = false; // Container child vboxInputSpin.Gtk.Box+BoxChild this.colorpanelInHigh = new global::Pinta.Gui.Widgets.ColorPanelWidget (); this.colorpanelInHigh.HeightRequest = 24; this.colorpanelInHigh.Events = ((global::Gdk.EventMask)(256)); this.colorpanelInHigh.Name = "colorpanelInHigh"; this.vboxInputSpin.Add (this.colorpanelInHigh); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vboxInputSpin[this.colorpanelInHigh])); w11.Position = 1; w11.Expand = false; w11.Fill = false; // Container child vboxInputSpin.Gtk.Box+BoxChild this.alignment1 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f); this.alignment1.Name = "alignment1"; this.vboxInputSpin.Add (this.alignment1); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vboxInputSpin[this.alignment1])); w12.Position = 2; // Container child vboxInputSpin.Gtk.Box+BoxChild this.colorpanelInLow = new global::Pinta.Gui.Widgets.ColorPanelWidget (); this.colorpanelInLow.HeightRequest = 24; this.colorpanelInLow.Events = ((global::Gdk.EventMask)(256)); this.colorpanelInLow.Name = "colorpanelInLow"; this.vboxInputSpin.Add (this.colorpanelInLow); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vboxInputSpin[this.colorpanelInLow])); w13.Position = 3; w13.Expand = false; w13.Fill = false; // Container child vboxInputSpin.Gtk.Box+BoxChild this.spinInLow = new global::Gtk.SpinButton (0, 254, 1); this.spinInLow.CanFocus = true; this.spinInLow.Name = "spinInLow"; this.spinInLow.Adjustment.PageIncrement = 10; this.spinInLow.ClimbRate = 1; this.spinInLow.Numeric = true; this.vboxInputSpin.Add (this.spinInLow); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vboxInputSpin[this.spinInLow])); w14.Position = 4; w14.Expand = false; w14.Fill = false; this.hbox8.Add (this.vboxInputSpin); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox8[this.vboxInputSpin])); w15.Position = 0; w15.Expand = false; w15.Fill = false; // Container child hbox8.Gtk.Box+BoxChild this.gradientInput = new global::Pinta.Gui.Widgets.ColorGradientWidget (); this.gradientInput.WidthRequest = 40; this.gradientInput.CanFocus = true; this.gradientInput.Events = ((global::Gdk.EventMask)(510)); this.gradientInput.ExtensionEvents = ((global::Gdk.ExtensionMode)(1)); this.gradientInput.Name = "gradientInput"; this.gradientInput.Count = 2; this.hbox8.Add (this.gradientInput); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox8[this.gradientInput])); w16.Position = 1; w16.Expand = false; w16.Fill = false; this.vbox3.Add (this.hbox8); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox8])); w17.Position = 1; this.hbox1.Add (this.vbox3); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3])); w18.Position = 1; w18.Expand = false; // Container child hbox1.Gtk.Box+BoxChild this.vbox4 = new global::Gtk.VBox (); this.vbox4.Name = "vbox4"; this.vbox4.Spacing = 6; // Container child vbox4.Gtk.Box+BoxChild this.hbox4 = new global::Gtk.HBox (); this.hbox4.Name = "hbox4"; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.labelOutput = new global::Gtk.Label (); this.labelOutput.Name = "labelOutput"; this.labelOutput.LabelProp = global::Mono.Unix.Catalog.GetString ("Output"); this.hbox4.Add (this.labelOutput); global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.labelOutput])); w19.Position = 0; w19.Expand = false; w19.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.hseparator3 = new global::Gtk.HSeparator (); this.hseparator3.Name = "hseparator3"; this.hbox4.Add (this.hseparator3); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.hseparator3])); w20.Position = 1; this.vbox4.Add (this.hbox4); global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox4])); w21.Position = 0; w21.Expand = false; w21.Fill = false; // Container child vbox4.Gtk.Box+BoxChild this.hbox9 = new global::Gtk.HBox (); this.hbox9.Name = "hbox9"; this.hbox9.Spacing = 6; // Container child hbox9.Gtk.Box+BoxChild this.gradientOutput = new global::Pinta.Gui.Widgets.ColorGradientWidget (); this.gradientOutput.WidthRequest = 40; this.gradientOutput.Events = ((global::Gdk.EventMask)(256)); this.gradientOutput.Name = "gradientOutput"; this.gradientOutput.Count = 3; this.hbox9.Add (this.gradientOutput); global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox9[this.gradientOutput])); w22.Position = 1; w22.Expand = false; w22.Fill = false; // Container child hbox9.Gtk.Box+BoxChild this.vboxOutputSpin = new global::Gtk.VBox (); this.vboxOutputSpin.Name = "vboxOutputSpin"; this.vboxOutputSpin.Spacing = 6; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.spinOutHigh = new global::Gtk.SpinButton (2, 255, 1); this.spinOutHigh.CanFocus = true; this.spinOutHigh.Name = "spinOutHigh"; this.spinOutHigh.Adjustment.PageIncrement = 10; this.spinOutHigh.ClimbRate = 1; this.spinOutHigh.Numeric = true; this.spinOutHigh.Value = 255; this.vboxOutputSpin.Add (this.spinOutHigh); global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.spinOutHigh])); w23.Position = 0; w23.Expand = false; w23.Fill = false; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.colorpanelOutHigh = new global::Pinta.Gui.Widgets.ColorPanelWidget (); this.colorpanelOutHigh.HeightRequest = 24; this.colorpanelOutHigh.Events = ((global::Gdk.EventMask)(256)); this.colorpanelOutHigh.Name = "colorpanelOutHigh"; this.vboxOutputSpin.Add (this.colorpanelOutHigh); global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.colorpanelOutHigh])); w24.Position = 1; w24.Expand = false; w24.Fill = false; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.spinOutGamma = new global::Gtk.SpinButton (0, 100, 0.1); this.spinOutGamma.CanFocus = true; this.spinOutGamma.Name = "spinOutGamma"; this.spinOutGamma.Adjustment.PageIncrement = 10; this.spinOutGamma.ClimbRate = 1; this.spinOutGamma.Numeric = true; this.spinOutGamma.Value = 1; this.vboxOutputSpin.Add (this.spinOutGamma); global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.spinOutGamma])); w25.Position = 2; w25.Expand = false; w25.Fill = false; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.colorpanelOutMid = new global::Pinta.Gui.Widgets.ColorPanelWidget (); this.colorpanelOutMid.HeightRequest = 24; this.colorpanelOutMid.Events = ((global::Gdk.EventMask)(256)); this.colorpanelOutMid.Name = "colorpanelOutMid"; this.vboxOutputSpin.Add (this.colorpanelOutMid); global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.colorpanelOutMid])); w26.Position = 3; w26.Expand = false; w26.Fill = false; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.colorpanelOutLow = new global::Pinta.Gui.Widgets.ColorPanelWidget (); this.colorpanelOutLow.HeightRequest = 24; this.colorpanelOutLow.Events = ((global::Gdk.EventMask)(256)); this.colorpanelOutLow.Name = "colorpanelOutLow"; this.vboxOutputSpin.Add (this.colorpanelOutLow); global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.colorpanelOutLow])); w27.Position = 4; w27.Expand = false; w27.Fill = false; // Container child vboxOutputSpin.Gtk.Box+BoxChild this.spinOutLow = new global::Gtk.SpinButton (0, 252, 1); this.spinOutLow.CanFocus = true; this.spinOutLow.Name = "spinOutLow"; this.spinOutLow.Adjustment.PageIncrement = 10; this.spinOutLow.ClimbRate = 1; this.spinOutLow.Numeric = true; this.vboxOutputSpin.Add (this.spinOutLow); global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.vboxOutputSpin[this.spinOutLow])); w28.Position = 5; w28.Expand = false; w28.Fill = false; this.hbox9.Add (this.vboxOutputSpin); global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.hbox9[this.vboxOutputSpin])); w29.Position = 2; w29.Expand = false; w29.Fill = false; this.vbox4.Add (this.hbox9); global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox9])); w30.Position = 1; this.hbox1.Add (this.vbox4); global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox4])); w31.Position = 2; w31.Expand = false; w31.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.vbox5 = new global::Gtk.VBox (); this.vbox5.Name = "vbox5"; this.vbox5.Spacing = 6; // Container child vbox5.Gtk.Box+BoxChild this.hbox5 = new global::Gtk.HBox (); this.hbox5.Name = "hbox5"; this.hbox5.Spacing = 6; // Container child hbox5.Gtk.Box+BoxChild this.labelOutputHist = new global::Gtk.Label (); this.labelOutputHist.Name = "labelOutputHist"; this.labelOutputHist.LabelProp = global::Mono.Unix.Catalog.GetString ("Output Histogram"); this.hbox5.Add (this.labelOutputHist); global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.labelOutputHist])); w32.Position = 0; w32.Expand = false; w32.Fill = false; // Container child hbox5.Gtk.Box+BoxChild this.hseparator4 = new global::Gtk.HSeparator (); this.hseparator4.Name = "hseparator4"; this.hbox5.Add (this.hseparator4); global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.hseparator4])); w33.Position = 1; this.vbox5.Add (this.hbox5); global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hbox5])); w34.Position = 0; w34.Expand = false; w34.Fill = false; // Container child vbox5.Gtk.Box+BoxChild this.histogramOutput = new global::Pinta.Gui.Widgets.HistogramWidget (); this.histogramOutput.WidthRequest = 130; this.histogramOutput.Events = ((global::Gdk.EventMask)(256)); this.histogramOutput.Name = "histogramOutput"; this.histogramOutput.FlipHorizontal = false; this.histogramOutput.FlipVertical = false; this.vbox5.Add (this.histogramOutput); global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.histogramOutput])); w35.Position = 1; this.hbox1.Add (this.vbox5); global::Gtk.Box.BoxChild w36 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox5])); w36.Position = 3; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w37.Position = 0; // Container child dialog1_VBox.Gtk.Box+BoxChild this.hboxBottom = new global::Gtk.HBox (); this.hboxBottom.Name = "hboxBottom"; this.hboxBottom.Spacing = 6; // Container child hboxBottom.Gtk.Box+BoxChild this.buttonAuto = new global::Gtk.Button (); this.buttonAuto.WidthRequest = 80; this.buttonAuto.CanFocus = true; this.buttonAuto.Name = "buttonAuto"; this.buttonAuto.UseUnderline = true; this.buttonAuto.Label = global::Mono.Unix.Catalog.GetString ("Auto"); this.hboxBottom.Add (this.buttonAuto); global::Gtk.Box.BoxChild w38 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.buttonAuto])); w38.Position = 0; w38.Expand = false; w38.Fill = false; // Container child hboxBottom.Gtk.Box+BoxChild this.buttonReset = new global::Gtk.Button (); this.buttonReset.WidthRequest = 80; this.buttonReset.CanFocus = true; this.buttonReset.Name = "buttonReset"; this.buttonReset.UseUnderline = true; this.buttonReset.Label = global::Mono.Unix.Catalog.GetString ("Reset"); this.hboxBottom.Add (this.buttonReset); global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.buttonReset])); w39.Position = 1; w39.Expand = false; w39.Fill = false; // Container child hboxBottom.Gtk.Box+BoxChild this.checkRed = new global::Gtk.CheckButton (); this.checkRed.CanFocus = true; this.checkRed.Name = "checkRed"; this.checkRed.Label = global::Mono.Unix.Catalog.GetString ("Red"); this.checkRed.Active = true; this.checkRed.DrawIndicator = true; this.checkRed.UseUnderline = true; this.hboxBottom.Add (this.checkRed); global::Gtk.Box.BoxChild w40 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.checkRed])); w40.Position = 2; // Container child hboxBottom.Gtk.Box+BoxChild this.checkGreen = new global::Gtk.CheckButton (); this.checkGreen.CanFocus = true; this.checkGreen.Name = "checkGreen"; this.checkGreen.Label = global::Mono.Unix.Catalog.GetString ("Green"); this.checkGreen.Active = true; this.checkGreen.DrawIndicator = true; this.checkGreen.UseUnderline = true; this.hboxBottom.Add (this.checkGreen); global::Gtk.Box.BoxChild w41 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.checkGreen])); w41.Position = 3; // Container child hboxBottom.Gtk.Box+BoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.WidthRequest = 80; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.hboxBottom.Add (this.buttonOk); global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.buttonOk])); w42.PackType = ((global::Gtk.PackType)(1)); w42.Position = 4; w42.Expand = false; w42.Fill = false; // Container child hboxBottom.Gtk.Box+BoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.WidthRequest = 80; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.hboxBottom.Add (this.buttonCancel); global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.buttonCancel])); w43.PackType = ((global::Gtk.PackType)(1)); w43.Position = 5; w43.Expand = false; w43.Fill = false; // Container child hboxBottom.Gtk.Box+BoxChild this.checkBlue = new global::Gtk.CheckButton (); this.checkBlue.CanFocus = true; this.checkBlue.Name = "checkBlue"; this.checkBlue.Label = global::Mono.Unix.Catalog.GetString ("Blue"); this.checkBlue.Active = true; this.checkBlue.DrawIndicator = true; this.checkBlue.UseUnderline = true; this.hboxBottom.Add (this.checkBlue); global::Gtk.Box.BoxChild w44 = ((global::Gtk.Box.BoxChild)(this.hboxBottom[this.checkBlue])); w44.PackType = ((global::Gtk.PackType)(1)); w44.Position = 6; w1.Add (this.hboxBottom); global::Gtk.Box.BoxChild w45 = ((global::Gtk.Box.BoxChild)(w1[this.hboxBottom])); w45.PackType = ((global::Gtk.PackType)(1)); w45.Position = 4; w45.Expand = false; w45.Fill = false; // Internal child Pinta.Effects.LevelsDialog.ActionArea global::Gtk.HButtonBox w46 = this.ActionArea; w46.Name = "__gtksharp_58_Stetic_TopLevelDialog_ActionArea"; w46.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child __gtksharp_58_Stetic_TopLevelDialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonDummy = new global::Gtk.Button (); this.buttonDummy.Sensitive = false; this.buttonDummy.CanFocus = true; this.buttonDummy.Name = "buttonDummy"; this.buttonDummy.UseUnderline = true; this.buttonDummy.Label = "In stetic action button box cannot be empty"; this.AddActionWidget (this.buttonDummy, -5); global::Gtk.ButtonBox.ButtonBoxChild w47 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w46[this.buttonDummy])); w47.Expand = false; w47.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 1754; this.DefaultHeight = 326; this.buttonDummy.Hide (); this.Show (); } } } pinta-1.3/Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs0000664000175000017500000001261511747026475025731 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Effects { public partial class PosterizeDialog { private global::Gtk.VBox vbox2; private global::Pinta.Gui.Widgets.HScaleSpinButtonWidget hscalespinRed; private global::Pinta.Gui.Widgets.HScaleSpinButtonWidget hscalespinGreen; private global::Pinta.Gui.Widgets.HScaleSpinButtonWidget hscalespinBlue; private global::Gtk.CheckButton checkLinked; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Effects.PosterizeDialog this.Name = "Pinta.Effects.PosterizeDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Posterize"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child Pinta.Effects.PosterizeDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hscalespinRed = new global::Pinta.Gui.Widgets.HScaleSpinButtonWidget (); this.hscalespinRed.Events = ((global::Gdk.EventMask)(256)); this.hscalespinRed.Name = "hscalespinRed"; this.hscalespinRed.Label = "Red"; this.hscalespinRed.DefaultValue = 16; this.hscalespinRed.MaximumValue = 64; this.hscalespinRed.MinimumValue = 2; this.hscalespinRed.DigitsValue = 0; this.hscalespinRed.IncrementValue = 0; this.hscalespinRed.Value = 0; this.vbox2.Add (this.hscalespinRed); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hscalespinRed])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hscalespinGreen = new global::Pinta.Gui.Widgets.HScaleSpinButtonWidget (); this.hscalespinGreen.Events = ((global::Gdk.EventMask)(256)); this.hscalespinGreen.Name = "hscalespinGreen"; this.hscalespinGreen.Label = "Green"; this.hscalespinGreen.DefaultValue = 16; this.hscalespinGreen.MaximumValue = 64; this.hscalespinGreen.MinimumValue = 2; this.hscalespinGreen.DigitsValue = 0; this.hscalespinGreen.IncrementValue = 0; this.hscalespinGreen.Value = 0; this.vbox2.Add (this.hscalespinGreen); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hscalespinGreen])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hscalespinBlue = new global::Pinta.Gui.Widgets.HScaleSpinButtonWidget (); this.hscalespinBlue.Events = ((global::Gdk.EventMask)(256)); this.hscalespinBlue.Name = "hscalespinBlue"; this.hscalespinBlue.Label = "Blue"; this.hscalespinBlue.DefaultValue = 16; this.hscalespinBlue.MaximumValue = 64; this.hscalespinBlue.MinimumValue = 2; this.hscalespinBlue.DigitsValue = 0; this.hscalespinBlue.IncrementValue = 0; this.hscalespinBlue.Value = 0; this.vbox2.Add (this.hscalespinBlue); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hscalespinBlue])); w4.Position = 2; w4.Expand = false; w4.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w5.Position = 0; w5.Expand = false; w5.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild this.checkLinked = new global::Gtk.CheckButton (); this.checkLinked.CanFocus = true; this.checkLinked.Name = "checkLinked"; this.checkLinked.Label = global::Mono.Unix.Catalog.GetString ("Linked"); this.checkLinked.Active = true; this.checkLinked.DrawIndicator = true; this.checkLinked.UseUnderline = true; w1.Add (this.checkLinked); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.checkLinked])); w6.Position = 1; w6.Expand = false; w6.Fill = false; // Internal child Pinta.Effects.PosterizeDialog.ActionArea global::Gtk.HButtonBox w7 = this.ActionArea; w7.Name = "dialog1_ActionArea"; w7.Spacing = 10; w7.BorderWidth = ((uint)(5)); w7.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.buttonCancel])); w8.Expand = false; w8.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w9 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.buttonOk])); w9.Position = 1; w9.Expand = false; w9.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 400; this.DefaultHeight = 300; this.Show (); } } } pinta-1.3/Pinta.Effects/gtk-gui/generated.cs0000664000175000017500000000106211747026475022125 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Stetic { internal class Gui { private static bool initialized; static internal void Initialize (Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup (System.Type type) { return Stetic.ActionGroups.GetActionGroup (type.FullName); } public static Gtk.ActionGroup GetActionGroup (string name) { return null; } } } pinta-1.3/Pinta.Effects/gtk-gui/gui.stetic0000664000175000017500000014227511747026475021655 0ustar00cameroncameron00000000000000 .. 2.12 PointerMotionMask, ButtonPressMask Levels Adjustment Dialog CenterOnParent False False True 1 False ExposureMask, PointerMotionMask, PointerMotionHintMask, ButtonMotionMask, Button1MotionMask, Button2MotionMask, Button3MotionMask, ButtonPressMask, KeyPressMask 2 PointerMotionMask, ButtonPressMask 6 6 6 Input Histogram 0 True False False 1 True 0 True False False 130 ButtonPressMask True False 1 False 0 False PointerMotionMask, Button1MotionMask 6 6 Input 0 True False False 1 True 0 True False False PointerMotionMask, ButtonPressMask 6 6 True 1 255 10 1 1 True 255 0 True False False 24 ButtonPressMask 1 True False False 2 True 24 ButtonPressMask 3 True False False True 254 10 1 1 True 4 True False False 0 True False False 40 True ExposureMask, PointerMotionMask, PointerMotionHintMask, ButtonMotionMask, Button1MotionMask, Button2MotionMask, Button3MotionMask, ButtonPressMask All 2 1 True False False 1 False 1 False False 6 6 Output 0 True False False 1 True 0 True False False 6 40 ButtonPressMask 3 1 True False False 6 True 2 255 10 1 1 True 255 0 True False False 24 ButtonPressMask 1 True False False True 100 10 0.1 1 True 1 2 True False False 24 ButtonPressMask 3 True False False 24 ButtonPressMask 4 True False False True 252 10 1 1 True 5 True False False 2 True False False 1 False 2 False False False 6 6 Output Histogram 0 True False False 1 True 0 True False False 130 ButtonPressMask False False 1 False 3 False 0 True 6 80 True TextOnly Auto True 0 True False False 80 True TextOnly Reset True 1 True False False True Red True True True True 2 True True Green True True True True 3 False 80 True True StockItem gtk-ok gtk-ok End 4 True False False 80 True True StockItem gtk-cancel gtk-cancel End 5 True False False True Blue True True True True End 6 True End 4 True False False 1 End False False True TextOnly In stetic action button box cannot be empty True -5 False False Curves CenterOnParent False False True 2 False 2 6 Transfer Map 0 True False False 1 True 0 True False False 6 True RGB Luminosity 1 0 True False False 0 0 1 (256, 256) End 2 True False False 1 True False False 256 256 True ExposureMask, PointerMotionMask, PointerMotionHintMask, ButtonMotionMask, Button1MotionMask, Button2MotionMask, Button3MotionMask, ButtonPressMask, ButtonReleaseMask, LeaveNotifyMask, ProximityInMask, ProximityOutMask 2 True 8 False True Red True True True True 0 True False True Green True True True True 1 True False True Blue True True True True 2 True 3 True 81 30 True TextOnly Reset True 4 False False False 3 True False False Tip: Right-click to remove control points. 4 True False False 10 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Posterize CenterOnParent 2 False 2 6 ButtonPressMask Red 16 64 2 0 0 0 0 True False False ButtonPressMask Green 16 64 2 0 0 0 1 True False False ButtonPressMask Blue 16 64 2 0 0 0 2 True False False 0 True False False True Linked True True True True 1 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False pinta-1.3/Pinta.Gui.Widgets/0000775000175000017500000000000011747026475017044 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/.gitignore0000664000175000017500000000002211747026475021026 0ustar00cameroncameron00000000000000/bin/ /obj/ *.userpinta-1.3/Pinta.Gui.Widgets/DialogAttributes.cs0000664000175000017500000000432611747026475022646 0ustar00cameroncameron00000000000000// // DialogAttributes.cs // // Initial version from: // http://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/Reflect.cs // // Author: // Miguel de Icaza (miguel@gnome.org) // // Copyright 2010, Novell, Inc. // // Code licensed under the MIT X11 license using System; using System.Collections.Generic; namespace Pinta.Gui.Widgets { [AttributeUsage (AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class SkipAttribute : Attribute { } [AttributeUsage (AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class CaptionAttribute : Attribute { public CaptionAttribute (string caption) { Caption = caption; } public string Caption; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class DigitsValueAttribute : Attribute { public DigitsValueAttribute(int value) { Value = value; } public int Value; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class IncrementValueAttribute : Attribute { public IncrementValueAttribute(double value) { Value = value; } public double Value; } [AttributeUsage (AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class MinimumValueAttribute : Attribute { public MinimumValueAttribute (int value) { Value = value; } public int Value; } [AttributeUsage (AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class MaximumValueAttribute : Attribute { public MaximumValueAttribute (int value) { Value = value; } public int Value; } [AttributeUsage (AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class HintAttribute : Attribute { public HintAttribute (string caption) { Hint = caption; } public string Hint; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = false)] public class StaticListAttribute : Attribute { public StaticListAttribute (string dict) { this.dictionaryName = dict; } public string dictionaryName; } } pinta-1.3/Pinta.Gui.Widgets/Dialogs/0000775000175000017500000000000011747026475020426 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Dialogs/SimpleEffectDialog.cs0000664000175000017500000003102411747026475024443 0ustar00cameroncameron00000000000000// // SimpleEffectDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // Inspiration and reflection code is from Miguel de Icaza's MIT Licensed MonoTouch.Dialog: // http://github.com/migueldeicaza/MonoTouch.Dialog using System; using System.Reflection; using System.Text; using System.Collections.Generic; using System.ComponentModel; using System.Collections; using Mono.Unix; namespace Pinta.Gui.Widgets { public class SimpleEffectDialog : Gtk.Dialog { [ThreadStatic] Random random = new Random (); const uint event_delay_millis = 100; uint event_delay_timeout_id; public SimpleEffectDialog (string title, Gdk.Pixbuf icon, object effectData) : base (title, Pinta.Core.PintaCore.Chrome.MainWindow, Gtk.DialogFlags.Modal, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Ok, Gtk.ResponseType.Ok) { Icon = icon; EffectData = effectData; BorderWidth = 6; VBox.Spacing = 12; WidthRequest = 400; DefaultResponse = Gtk.ResponseType.Ok; AlternativeButtonOrder = new int[] { (int)Gtk.ResponseType.Ok, (int)Gtk.ResponseType.Cancel }; BuildDialog (); } public object EffectData { get; private set; } public event PropertyChangedEventHandler EffectDataChanged; #region EffectData Parser private void BuildDialog () { var members = EffectData.GetType ().GetMembers (); foreach (var mi in members) { Type mType = GetTypeForMember (mi); if (mType == null) continue; string caption = null; string hint = null; bool skip = false; bool combo = false; object[] attrs = mi.GetCustomAttributes (false); foreach (var attr in attrs) { if (attr is SkipAttribute) skip = true; else if (attr is CaptionAttribute) caption = ((CaptionAttribute)attr).Caption; else if (attr is HintAttribute) hint = ((HintAttribute)attr).Hint; else if (attr is StaticListAttribute) combo = true; } if (skip || string.Compare (mi.Name, "IsDefault", true) == 0) continue; if (caption == null) caption = MakeCaption (mi.Name); if (mType == typeof (int) && (caption == "Seed")) AddWidget (CreateSeed (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (int)) AddWidget (CreateSlider (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (double) && (caption == "Angle" || caption == "Rotation")) AddWidget (CreateAnglePicker (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (double)) AddWidget (CreateDoubleSlider (Catalog.GetString (caption), EffectData, mi, attrs)); else if (combo && mType == typeof (string)) AddWidget (CreateComboBox (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (bool)) AddWidget (CreateCheckBox (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (Gdk.Point)) AddWidget (CreatePointPicker (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (Cairo.PointD)) AddWidget (CreateOffsetPicker (Catalog.GetString (caption), EffectData, mi, attrs)); else if (mType.IsEnum) AddWidget (CreateEnumComboBox (Catalog.GetString (caption), EffectData, mi, attrs)); if (hint != null) AddWidget (CreateHintLabel (Catalog.GetString (hint))); } } private void AddWidget (Gtk.Widget widget) { widget.Show (); this.VBox.Add (widget); } #endregion #region Control Builders private ComboBoxWidget CreateEnumComboBox (string caption, object o, System.Reflection.MemberInfo member, System.Object[] attributes) { Type myType = GetTypeForMember (member); string[] entries = Enum.GetNames (myType); ComboBoxWidget widget = new ComboBoxWidget (entries); widget.Label = caption; widget.AddEvents ((int)Gdk.EventMask.ButtonPressMask); widget.Active = ((IList)entries).IndexOf (GetValue (member, o).ToString ()); widget.Changed += delegate (object sender, EventArgs e) { SetValue (member, o, Enum.Parse (myType, widget.ActiveText)); }; return widget; } private ComboBoxWidget CreateComboBox (string caption, object o, System.Reflection.MemberInfo member, System.Object[] attributes) { Dictionary dict = null; foreach (var attr in attributes) { if (attr is StaticListAttribute) dict = (Dictionary)GetValue (((StaticListAttribute)attr).dictionaryName, o); } List entries = new List (); foreach (string str in dict.Keys) entries.Add (str); ComboBoxWidget widget = new ComboBoxWidget (entries.ToArray ()); widget.Label = caption; widget.AddEvents ((int)Gdk.EventMask.ButtonPressMask); widget.Active = entries.IndexOf ((string)GetValue (member, o)); widget.Changed += delegate (object sender, EventArgs e) { SetValue (member, o, widget.ActiveText); }; return widget; } private HScaleSpinButtonWidget CreateDoubleSlider (string caption, object o, MemberInfo member, object[] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget (); int min_value = -100; int max_value = 100; double inc_value = 0.01; int digits_value = 2; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) min_value = ((MinimumValueAttribute)attr).Value; else if (attr is MaximumValueAttribute) max_value = ((MaximumValueAttribute)attr).Value; else if (attr is IncrementValueAttribute) inc_value = ((IncrementValueAttribute)attr).Value; else if (attr is DigitsValueAttribute) digits_value = ((DigitsValueAttribute)attr).Value; } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.IncrementValue = inc_value; widget.DigitsValue = digits_value; widget.DefaultValue = (double)GetValue (member, o); widget.ValueChanged += delegate (object sender, EventArgs e) { if (event_delay_timeout_id != 0) GLib.Source.Remove (event_delay_timeout_id); event_delay_timeout_id = GLib.Timeout.Add (event_delay_millis, () => { event_delay_timeout_id = 0; SetValue (member, o, widget.Value); return false; }); }; return widget; } private HScaleSpinButtonWidget CreateSlider (string caption, object o, MemberInfo member, object[] attributes) { HScaleSpinButtonWidget widget = new HScaleSpinButtonWidget (); int min_value = -100; int max_value = 100; double inc_value = 1.0; int digits_value = 0; foreach (var attr in attributes) { if (attr is MinimumValueAttribute) min_value = ((MinimumValueAttribute)attr).Value; else if (attr is MaximumValueAttribute) max_value = ((MaximumValueAttribute)attr).Value; else if (attr is IncrementValueAttribute) inc_value = ((IncrementValueAttribute)attr).Value; else if (attr is DigitsValueAttribute) digits_value = ((DigitsValueAttribute)attr).Value; } widget.Label = caption; widget.MinimumValue = min_value; widget.MaximumValue = max_value; widget.IncrementValue = inc_value; widget.DigitsValue = digits_value; widget.DefaultValue = (int)GetValue (member, o); widget.ValueChanged += delegate (object sender, EventArgs e) { if (event_delay_timeout_id != 0) GLib.Source.Remove (event_delay_timeout_id); event_delay_timeout_id = GLib.Timeout.Add (event_delay_millis, () => { event_delay_timeout_id = 0; SetValue (member, o, widget.ValueAsInt); return false; }); }; return widget; } private Gtk.CheckButton CreateCheckBox (string caption, object o, MemberInfo member, object[] attributes) { Gtk.CheckButton widget = new Gtk.CheckButton (); widget.Label = caption; widget.Active = (bool)GetValue (member, o); widget.Toggled += delegate (object sender, EventArgs e) { SetValue (member, o, widget.Active); }; return widget; } private PointPickerWidget CreateOffsetPicker (string caption, object o, MemberInfo member, object[] attributes) { PointPickerWidget widget = new PointPickerWidget (); widget.Label = caption; widget.DefaultOffset = (Cairo.PointD)GetValue (member, o); widget.PointPicked += delegate (object sender, EventArgs e) { SetValue (member, o, widget.Offset); }; return widget; } private PointPickerWidget CreatePointPicker (string caption, object o, MemberInfo member, object[] attributes) { PointPickerWidget widget = new PointPickerWidget (); widget.Label = caption; widget.DefaultPoint = (Gdk.Point)GetValue (member, o); widget.PointPicked += delegate (object sender, EventArgs e) { SetValue (member, o, widget.Point); }; return widget; } private AnglePickerWidget CreateAnglePicker (string caption, object o, MemberInfo member, object[] attributes) { AnglePickerWidget widget = new AnglePickerWidget (); widget.Label = caption; widget.DefaultValue = (double)GetValue (member, o); widget.ValueChanged += delegate (object sender, EventArgs e) { if (event_delay_timeout_id != 0) GLib.Source.Remove (event_delay_timeout_id); event_delay_timeout_id = GLib.Timeout.Add (event_delay_millis, () => { event_delay_timeout_id = 0; SetValue (member, o, widget.Value); return false; }); }; return widget; } private Gtk.Label CreateHintLabel (string hint) { Gtk.Label label = new Gtk.Label (hint); label.LineWrap = true; return label; } private ReseedButtonWidget CreateSeed (string caption, object o, MemberInfo member, object[] attributes) { ReseedButtonWidget widget = new ReseedButtonWidget (); widget.Clicked += delegate (object sender, EventArgs e) { SetValue (member, o, random.Next ()); }; return widget; } #endregion #region Static Reflection Methods private static object GetValue (MemberInfo mi, object o) { var fi = mi as FieldInfo; if (fi != null) return fi.GetValue (o); var pi = mi as PropertyInfo; var getMethod = pi.GetGetMethod (); return getMethod.Invoke (o, new object[0]); } private void SetValue (MemberInfo mi, object o, object val) { var fi = mi as FieldInfo; var pi = mi as PropertyInfo; string fieldName = null; if (fi != null) { fi.SetValue (o, val); fieldName = fi.Name; } else if (pi != null) { var setMethod = pi.GetSetMethod (); setMethod.Invoke (o, new object[] { val }); fieldName = pi.Name; } if (EffectDataChanged != null) EffectDataChanged (this, new PropertyChangedEventArgs (fieldName)); } // Returns the type for fields and properties and null for everything else private static Type GetTypeForMember (MemberInfo mi) { if (mi is FieldInfo) return ((FieldInfo)mi).FieldType; else if (mi is PropertyInfo) return ((PropertyInfo)mi).PropertyType; return null; } private static string MakeCaption (string name) { var sb = new StringBuilder (name.Length); bool nextUp = true; foreach (char c in name) { if (nextUp) { sb.Append (Char.ToUpper (c)); nextUp = false; } else { if (c == '_') { sb.Append (' '); nextUp = true; continue; } if (Char.IsUpper (c)) sb.Append (' '); sb.Append (c); } } return sb.ToString (); } private object GetValue (string name, object o) { var fi = o.GetType ().GetField (name); if (fi != null) return fi.GetValue (o); var pi = o.GetType ().GetProperty (name); if (pi == null) return null; var getMethod = pi.GetGetMethod (); return getMethod.Invoke (o, new object[0]); } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Makefile.am0000664000175000017500000000263111747026475021102 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta.Gui.Widgets TARGET = library ASSEMBLY_BUILD_FLAGS = -unsafe REFERENCES = \ -r:Mono.Posix \ -r:System \ -r:System.Core \ -r:System.Data \ -r:System.Xml \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(MONO_CAIRO_LIBS) \ -r:../bin/Pinta.Core.dll SOURCES = \ DialogAttributes.cs \ gtk-gui/generated.cs \ AssemblyInfo.cs \ gtk-gui/Pinta.Gui.Widgets.ColorPanelWidget.cs \ Widgets/Canvas/CanvasRenderer.cs \ Widgets/Canvas/GridRenderer.cs \ Widgets/ColorPaletteWidget.cs \ Widgets/ColorPanelWidget.cs \ Widgets/History/HistoryTreeView.cs \ Widgets/HScaleSpinButtonWidget.cs \ Dialogs/SimpleEffectDialog.cs \ Widgets/AnglePickerGraphic.cs \ Widgets/AnglePickerWidget.cs \ gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs \ Widgets/Canvas/PintaCanvas.cs \ Widgets/Layers/CellRendererSurface.cs \ Widgets/Layers/LayersListWidget.cs \ Widgets/PointPickerGraphic.cs \ Widgets/PointPickerWidget.cs \ gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs \ Widgets/ComboBoxWidget.cs \ gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs \ Widgets/ReseedButtonWidget.cs \ gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs \ gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs \ gtk-gui/Pinta.Gui.Widgets.ColorGradientWidget.cs \ Widgets/ColorGradientWidget.cs \ gtk-gui/Pinta.Gui.Widgets.HistogramWidget.cs \ Widgets/HistogramWidget.cs \ Widgets/ToolBoxWidget.cs pinta-1.3/Pinta.Gui.Widgets/Pinta.Gui.Widgets.csproj0000664000175000017500000001441011747026475023471 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {83F0C0AD-D587-457C-B72A-1A184D6D76B3} Library Pinta.Gui.Widgets Pinta.Gui.Widgets v4.0 65001 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin DEBUG prompt 4 false true AllRules.ruleset none false ..\bin prompt 4 false true AllRules.ruleset gui.stetic {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Pinta.Core False False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true pinta-1.3/Pinta.Gui.Widgets/Properties/0000775000175000017500000000000011747026475021200 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Properties/AssemblyInfo.cs0000664000175000017500000000421211747026475024121 0ustar00cameroncameron00000000000000// // AssemblyInfo.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("Pinta.Gui.Widgets")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.3.0.0")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] pinta-1.3/Pinta.Gui.Widgets/Widgets/0000775000175000017500000000000011747026475020452 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Widgets/AnglePickerGraphic.cs0000664000175000017500000001214211747026475024463 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Gdk; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public class AnglePickerGraphic : Gtk.DrawingArea { private bool tracking = false; private Point lastMouseXY; private double angleValue; public AnglePickerGraphic () { Events = ((Gdk.EventMask)(16134)); ButtonPressEvent += HandleHandleButtonPressEvent; ButtonReleaseEvent += HandleHandleButtonReleaseEvent; MotionNotifyEvent += HandleHandleMotionNotifyEvent; } #region Public Properties public int Value { get { return (int)angleValue; } set { double v = value % 360; if (angleValue != v) { angleValue = v; OnValueChanged (); this.GdkWindow.Invalidate (); } } } public double ValueDouble { get { return angleValue; } set { //double v = Math.IEEERemainder (value, 360.0); if (angleValue != value) { angleValue = value; OnValueChanged (); if (GdkWindow != null) GdkWindow.Invalidate (); } } } #endregion #region Mouse Handlers private void HandleHandleMotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) { ProcessMouseEvent (new Point ((int)args.Event.X, (int)args.Event.Y), (args.Event.State & ModifierType.ShiftMask) == ModifierType.ShiftMask); } private void HandleHandleButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) { tracking = false; } private void HandleHandleButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { tracking = true; ProcessMouseEvent (new Point ((int)args.Event.X, (int)args.Event.Y), args.Event.IsShiftPressed ()); } private void ProcessMouseEvent (Point pt, bool constrainAngle) { lastMouseXY = pt; if (tracking) { Rectangle ourRect = Rectangle.Inflate (GdkWindow.GetBounds (), -2, -2); int diameter = Math.Min (ourRect.Width, ourRect.Height); Point center = new Point (ourRect.X + (diameter / 2), ourRect.Y + (diameter / 2)); int dx = lastMouseXY.X - center.X; int dy = lastMouseXY.Y - center.Y; double theta = Math.Atan2 (-dy, dx); double newAngle = (theta * 360) / (2 * Math.PI); if (newAngle < 0) newAngle = newAngle + 360; if (constrainAngle) { const double constraintAngle = 15.0; double multiple = newAngle / constraintAngle; double top = Math.Floor (multiple); double topDelta = Math.Abs (top - multiple); double bottom = Math.Ceiling (multiple); double bottomDelta = Math.Abs (bottom - multiple); double bestMultiple; if (bottomDelta < topDelta) { bestMultiple = bottom; } else { bestMultiple = top; } newAngle = bestMultiple * constraintAngle; } this.ValueDouble = newAngle; GdkWindow.Invalidate (); } } #endregion #region Drawing Code protected override bool OnExposeEvent (Gdk.EventExpose ev) { base.OnExposeEvent (ev); using (Cairo.Context g = CairoHelper.Create (GdkWindow)) { Cairo.Rectangle ourRect = Rectangle.Inflate (GdkWindow.GetBounds (), -1, -1).ToCairoRectangle (); double diameter = Math.Min (ourRect.Width, ourRect.Height); double radius = (diameter / 2.0); Cairo.PointD center = new Cairo.PointD ( (float)(ourRect.X + radius), (float)(ourRect.Y + radius)); double theta = (this.angleValue * 2.0 * Math.PI) / 360.0; Cairo.Rectangle ellipseRect = new Cairo.Rectangle (ourRect.Location (), diameter, diameter); Cairo.Rectangle ellipseOutlineRect = ellipseRect; g.DrawEllipse (ellipseOutlineRect, new Cairo.Color (.1, .1, .1), 1); double endPointRadius = radius - 2; Cairo.PointD endPoint = new Cairo.PointD ( (float)(center.X + (endPointRadius * Math.Cos (theta))), (float)(center.Y - (endPointRadius * Math.Sin (theta)))); float gripSize = 2.5f; Cairo.Rectangle gripEllipseRect = new Cairo.Rectangle (center.X - gripSize, center.Y - gripSize, gripSize * 2, gripSize * 2); g.FillEllipse (gripEllipseRect, new Cairo.Color (.1, .1, .1)); g.DrawLine (center, endPoint, new Cairo.Color (.1, .1, .1), 1); } return true; } protected override void OnSizeRequested (ref Gtk.Requisition requisition) { // Calculate desired size here. requisition.Height = 50; requisition.Width = 50; } #endregion #region Public Events public event EventHandler ValueChanged; protected virtual void OnValueChanged () { if (ValueChanged != null) { ValueChanged (this, EventArgs.Empty); } } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/AnglePickerWidget.cs0000664000175000017500000000453611747026475024341 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using System.ComponentModel; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public partial class AnglePickerWidget : Gtk.Bin { public AnglePickerWidget () { this.Build (); anglepickergraphic1.ValueChanged += HandleAnglePickerValueChanged; spin.ValueChanged += HandleSpinValueChanged; button.Clicked += HandleButtonClicked; spin.ActivatesDefault = true; } #region Public Properties public double DefaultValue { get; set; } public string Label { get { return label.Text; } set { label.Text = value; } } public double Value { get { return anglepickergraphic1.ValueDouble; } set { if (anglepickergraphic1.ValueDouble != value) { anglepickergraphic1.ValueDouble = value; OnValueChanged (); } } } #endregion #region Event Handlers protected override void OnShown () { base.OnShown (); anglepickergraphic1.ValueDouble = DefaultValue; } private void HandleAnglePickerValueChanged (object sender, EventArgs e) { if (spin.Value != anglepickergraphic1.ValueDouble) { spin.Value = anglepickergraphic1.ValueDouble; OnValueChanged (); } } private void HandleSpinValueChanged (object sender, EventArgs e) { if (anglepickergraphic1.ValueDouble != spin.Value) { anglepickergraphic1.ValueDouble = spin.Value; OnValueChanged (); } } private void HandleButtonClicked (object sender, EventArgs e) { Value = DefaultValue; } #endregion #region Protected Methods protected void OnValueChanged () { if (ValueChanged != null) ValueChanged (this, EventArgs.Empty); } #endregion #region Public Events public event EventHandler ValueChanged; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/Canvas/0000775000175000017500000000000011747026475021665 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Widgets/Canvas/CanvasRenderer.cs0000664000175000017500000002467711747026475025136 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using Gdk; using Pinta.Core; namespace Pinta.Gui.Widgets { class CanvasRenderer { private Size source_size; private Size destination_size; private ScaleFactor scale_factor; private bool generated; private int[] d2sLookupX; private int[] d2sLookupY; private int[] s2dLookupX; private int[] s2dLookupY; public ScaleFactor ScaleFactor { get {return scale_factor;}} public int[] Dst2SrcLookupX { get {return d2sLookupX;}} public int[] Dst2SrcLookupY { get {return d2sLookupY;}} public int[] Src2DstLookupX { get {return s2dLookupX;}} public int[] Src2DstLookupY { get {return s2dLookupY;}} public void Initialize (Size sourceSize, Size destinationSize) { if (sourceSize == source_size && destinationSize == destination_size) return; source_size = sourceSize; destination_size = destinationSize; scale_factor = new ScaleFactor (source_size.Width, destination_size.Width); generated = false; } public void Render (Cairo.ImageSurface src, Cairo.ImageSurface dst, Gdk.Point offset, bool checker) { dst.Flush (); if (scale_factor.Ratio == 1) RenderOneToOne (src, dst, offset, checker); else if (scale_factor.Ratio < 1) RenderZoomIn (src, dst, offset, checker); else RenderZoomOut (src, dst, offset, destination_size, checker); dst.MarkDirty (); } #region Algorithms ported from PDN private unsafe void RenderOneToOne (Cairo.ImageSurface src, Cairo.ImageSurface dst, Gdk.Point offset, bool checker) { Gdk.Rectangle srcRect = new Gdk.Rectangle (offset, dst.GetBounds ().Size); srcRect.Intersect (src.GetBounds ()); ColorBgra* src_ptr = (ColorBgra*)src.DataPtr; ColorBgra* dst_ptr = (ColorBgra*)dst.DataPtr; int src_width = src.Width; int dst_width = dst.Width; int dst_height = dst.Height; for (int dstRow = 0; dstRow < srcRect.Height; ++dstRow) { ColorBgra* dstRowPtr = dst.GetRowAddressUnchecked (dst_ptr, dst_width, dstRow); ColorBgra* srcRowPtr = src.GetPointAddressUnchecked (src_ptr, src_width, offset.X, dstRow + offset.Y); int dstCol = offset.X; int dstColEnd = offset.X + srcRect.Width; int checkerY = dstRow + offset.Y; while (dstCol < dstColEnd) { // Blend it over the checkerboard background if (checker) { int b = srcRowPtr->B; int g = srcRowPtr->G; int r = srcRowPtr->R; int a = srcRowPtr->A; int v = (((dstCol ^ checkerY) & 8) << 3) + 191; a = a + (a >> 7); int vmia = v * (256 - a); r = ((r * a) + vmia) >> 8; g = ((g * a) + vmia) >> 8; b = ((b * a) + vmia) >> 8; dstRowPtr->Bgra = (uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)255 << 24); } else { *dstRowPtr = *srcRowPtr; } ++dstRowPtr; ++srcRowPtr; ++dstCol; } } } private unsafe void RenderZoomIn (Cairo.ImageSurface src, Cairo.ImageSurface dst, Gdk.Point offset, bool checker) { ColorBgra* src_ptr = (ColorBgra*)src.DataPtr; ColorBgra* dst_ptr = (ColorBgra*)dst.DataPtr; int src_width = src.Width; int dst_width = dst.Width; int dst_height = dst.Height; if (!generated) { d2sLookupX = CreateLookupX (src_width, destination_size.Width, scale_factor); d2sLookupY = CreateLookupY (src.Height, destination_size.Height, scale_factor); s2dLookupX = CreateS2DLookupX (src_width, destination_size.Width, scale_factor); s2dLookupY = CreateS2DLookupY (src.Height, destination_size.Height, scale_factor); generated = true; } for (int dstRow = 0; dstRow < dst_height; ++dstRow) { int nnY = dstRow + offset.Y; int srcY = d2sLookupY[nnY]; ColorBgra* dstPtr = dst.GetRowAddressUnchecked (dst_ptr, dst_width, dstRow); ColorBgra* srcRow = src.GetRowAddressUnchecked (src_ptr, src_width, srcY); for (int dstCol = 0; dstCol < dst_width; ++dstCol) { int nnX = dstCol + offset.X; int srcX = d2sLookupX[nnX]; if (checker) { ColorBgra src2 = *(srcRow + srcX); int b = src2.B; int g = src2.G; int r = src2.R; int a = src2.A; // Blend it over the checkerboard background int v = (((dstCol + offset.X) ^ (dstRow + offset.Y)) & 8) * 8 + 191; a = a + (a >> 7); int vmia = v * (256 - a); r = ((r * a) + vmia) >> 8; g = ((g * a) + vmia) >> 8; b = ((b * a) + vmia) >> 8; dstPtr->Bgra = (uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)255 << 24); } else { *dstPtr = *(srcRow + srcX); } ++dstPtr; } } } private unsafe void RenderZoomOut (Cairo.ImageSurface src, Cairo.ImageSurface dst, Gdk.Point offset, Gdk.Size destinationSize, bool checker) { const int fpShift = 12; const int fpFactor = (1 << fpShift); Gdk.Size sourceSize = src.GetBounds ().Size; long fDstLeftLong = ((long)offset.X * fpFactor * (long)sourceSize.Width) / (long)destinationSize.Width; long fDstTopLong = ((long)offset.Y * fpFactor * (long)sourceSize.Height) / (long)destinationSize.Height; long fDstRightLong = ((long)(offset.X + dst.Width) * fpFactor * (long)sourceSize.Width) / (long)destinationSize.Width; long fDstBottomLong = ((long)(offset.Y + dst.Height) * fpFactor * (long)sourceSize.Height) / (long)destinationSize.Height; int fDstLeft = (int)fDstLeftLong; int fDstTop = (int)fDstTopLong; int fDstRight = (int)fDstRightLong; int fDstBottom = (int)fDstBottomLong; int dx = (fDstRight - fDstLeft) / dst.Width; int dy = (fDstBottom - fDstTop) / dst.Height; ColorBgra* src_ptr = (ColorBgra*)src.DataPtr; ColorBgra* dst_ptr = (ColorBgra*)dst.DataPtr; int src_width = src.Width; int dst_width = dst.Width; for (int dstRow = 0, fDstY = fDstTop; dstRow < dst.Height && fDstY < fDstBottom; ++dstRow, fDstY += dy) { int srcY1 = fDstY >> fpShift; // y int srcY2 = (fDstY + (dy >> 2)) >> fpShift; // y + 0.25 int srcY3 = (fDstY + (dy >> 1)) >> fpShift; // y + 0.50 int srcY4 = (fDstY + (dy >> 1) + (dy >> 2)) >> fpShift; // y + 0.75 ColorBgra* src1 = src.GetRowAddressUnchecked (src_ptr, src_width, srcY1); ColorBgra* src2 = src.GetRowAddressUnchecked (src_ptr, src_width, srcY2); ColorBgra* src3 = src.GetRowAddressUnchecked (src_ptr, src_width, srcY3); ColorBgra* src4 = src.GetRowAddressUnchecked (src_ptr, src_width, srcY4); ColorBgra* dstPtr = dst.GetRowAddressUnchecked (dst_ptr, dst_width, dstRow); int checkerY = dstRow + offset.Y; int checkerX = offset.X; int maxCheckerX = checkerX + dst.Width; for (int fDstX = fDstLeft; checkerX < maxCheckerX && fDstX < fDstRight; ++checkerX, fDstX += dx) { int srcX1 = (fDstX + (dx >> 2)) >> fpShift; // x + 0.25 int srcX2 = (fDstX + (dx >> 1) + (dx >> 2)) >> fpShift; // x + 0.75 int srcX3 = fDstX >> fpShift; // x int srcX4 = (fDstX + (dx >> 1)) >> fpShift; // x + 0.50 ColorBgra* p1 = src1 + srcX1; ColorBgra* p2 = src2 + srcX2; ColorBgra* p3 = src3 + srcX3; ColorBgra* p4 = src4 + srcX4; int r = (2 + p1->R + p2->R + p3->R + p4->R) >> 2; int g = (2 + p1->G + p2->G + p3->G + p4->G) >> 2; int b = (2 + p1->B + p2->B + p3->B + p4->B) >> 2; int a = (2 + p1->A + p2->A + p3->A + p4->A) >> 2; if (checker) { // Blend it over the checkerboard background int v = ((checkerX ^ checkerY) & 8) * 8 + 191; a = a + (a >> 7); int vmia = v * (256 - a); r = ((r * a) + vmia) >> 8; g = ((g * a) + vmia) >> 8; b = ((b * a) + vmia) >> 8; dstPtr->Bgra = (uint)b + ((uint)g << 8) + ((uint)r << 16) + 0xff000000; } else { dstPtr->Bgra = (uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24); } ++dstPtr; } } } private int[] CreateLookupX (int srcWidth, int dstWidth, ScaleFactor scaleFactor) { var lookup = new int[dstWidth + 1]; for (int x = 0; x < lookup.Length; ++x) { Gdk.Point pt = new Gdk.Point (x, 0); Gdk.Point clientPt = scaleFactor.ScalePoint (pt); // Sometimes the scale factor is slightly different on one axis than // on another, simply due to accuracy. So we have to clamp this value to // be within bounds. lookup[x] = Utility.Clamp (clientPt.X, 0, srcWidth - 1); } return lookup; } private int[] CreateLookupY (int srcHeight, int dstHeight, ScaleFactor scaleFactor) { var lookup = new int[dstHeight + 1]; for (int y = 0; y < lookup.Length; ++y) { Gdk.Point pt = new Gdk.Point (0, y); Gdk.Point clientPt = scaleFactor.ScalePoint (pt); // Sometimes the scale factor is slightly different on one axis than // on another, simply due to accuracy. So we have to clamp this value to // be within bounds. lookup[y] = Utility.Clamp (clientPt.Y, 0, srcHeight - 1); } return lookup; } private int[] CreateS2DLookupX(int srcWidth, int dstWidth, ScaleFactor scaleFactor) { var lookup = new int[srcWidth + 1]; for (int x = 0; x < lookup.Length; ++x) { Gdk.Point pt = new Gdk.Point (x, 0); Gdk.Point clientPt = scaleFactor.UnscalePoint (pt); // Sometimes the scale factor is slightly different on one axis than // on another, simply due to accuracy. So we have to clamp this value to // be within bounds. lookup[x] = Utility.Clamp (clientPt.X, 0, dstWidth - 1); } return lookup; } private int[] CreateS2DLookupY (int srcHeight, int dstHeight, ScaleFactor scaleFactor) { var lookup = new int[srcHeight + 1]; for (int y = 0; y < lookup.Length; ++y) { Gdk.Point pt = new Gdk.Point (0, y); Gdk.Point clientPt = scaleFactor.UnscalePoint (pt); // Sometimes the scale factor is slightly different on one axis than // on another, simply due to accuracy. So we have to clamp this value to // be within bounds. lookup[y] = Utility.Clamp (clientPt.Y, 0, dstHeight - 1); } return lookup; } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/Canvas/GridRenderer.cs0000664000175000017500000000472111747026475024574 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; using Pinta.Core; namespace Pinta.Gui.Widgets { class GridRenderer { private CanvasRenderer cr; public GridRenderer (CanvasRenderer cr) { this.cr = cr; } public unsafe void Render (Cairo.ImageSurface dst, Gdk.Point offset) { if (cr.ScaleFactor > new ScaleFactor (1, 2)) return; int[] d2SLookupX = cr.Dst2SrcLookupX; int[] d2SLookupY = cr.Dst2SrcLookupY; int[] s2DLookupX = cr.Src2DstLookupX; int[] s2DLookupY = cr.Src2DstLookupY; ColorBgra[] blackAndWhite = new ColorBgra[2] { ColorBgra.White, ColorBgra.Black }; // draw horizontal lines int dstHeight = dst.Height; int dstWidth = dst.Width; int dstStride = dst.Stride; int sTop = d2SLookupY[offset.Y]; int sBottom = d2SLookupY[offset.Y + dstHeight]; dst.Flush (); for (int srcY = sTop; srcY <= sBottom; ++srcY) { int dstY = s2DLookupY[srcY]; int dstRow = dstY - offset.Y; if (dstRow >= 0 && dstRow < dstHeight) { ColorBgra* dstRowPtr = dst.GetRowAddressUnchecked (dstRow); ColorBgra* dstRowEndPtr = dstRowPtr + dstWidth; dstRowPtr += offset.X & 1; while (dstRowPtr < dstRowEndPtr) { *dstRowPtr = ColorBgra.Black; dstRowPtr += 2; } } } // draw vertical lines int sLeft = d2SLookupX[offset.X]; int sRight = d2SLookupX[offset.X + dstWidth]; for (int srcX = sLeft; srcX <= sRight; ++srcX) { int dstX = s2DLookupX[srcX]; int dstCol = dstX - offset.X; if (dstCol >= 0 && dstCol < dstWidth) { byte* dstColPtr = (byte*)dst.GetPointAddress (dstCol, 0); byte* dstColEndPtr = dstColPtr + dstStride * dstHeight; dstColPtr += (offset.Y & 1) * dstStride; while (dstColPtr < dstColEndPtr) { *((ColorBgra*)dstColPtr) = ColorBgra.Black; dstColPtr += 2 * dstStride; } } } dst.MarkDirty (); } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/Canvas/PintaCanvas.cs0000664000175000017500000002134111747026475024424 0ustar00cameroncameron00000000000000// // PintaCanvas.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; using Gtk; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public class PintaCanvas : DrawingArea { Cairo.ImageSurface canvas; CanvasRenderer cr; GridRenderer gr; public PintaCanvas () { cr = new CanvasRenderer (); gr = new GridRenderer (cr); // Keep the widget the same size as the canvas PintaCore.Workspace.CanvasSizeChanged += delegate (object sender, EventArgs e) { SetRequisition (PintaCore.Workspace.CanvasSize); }; // Update the canvas when the image changes PintaCore.Workspace.CanvasInvalidated += delegate (object sender, CanvasInvalidatedEventArgs e) { if (e.EntireSurface) GdkWindow.Invalidate (); else GdkWindow.InvalidateRect (e.Rectangle, false); }; // Give mouse press events to the current tool ButtonPressEvent += delegate (object sender, ButtonPressEventArgs e) { if (PintaCore.Workspace.HasOpenDocuments) PintaCore.Tools.CurrentTool.DoMouseDown (this, e, PintaCore.Workspace.WindowPointToCanvas (e.Event.X, e.Event.Y)); }; // Give mouse release events to the current tool ButtonReleaseEvent += delegate (object sender, ButtonReleaseEventArgs e) { if (PintaCore.Workspace.HasOpenDocuments) PintaCore.Tools.CurrentTool.DoMouseUp (this, e, PintaCore.Workspace.WindowPointToCanvas (e.Event.X, e.Event.Y)); }; // Give mouse move events to the current tool MotionNotifyEvent += delegate (object sender, MotionNotifyEventArgs e) { if (!PintaCore.Workspace.HasOpenDocuments) return; Cairo.PointD point = PintaCore.Workspace.ActiveWorkspace.WindowPointToCanvas (e.Event.X, e.Event.Y); if (PintaCore.Workspace.ActiveWorkspace.PointInCanvas (point)) PintaCore.Chrome.LastCanvasCursorPoint = point.ToGdkPoint (); if (PintaCore.Tools.CurrentTool != null) PintaCore.Tools.CurrentTool.DoMouseMove (sender, e, point); }; // Handle key press/release events KeyPressEvent += new KeyPressEventHandler (PintaCanvas_KeyPressEvent); KeyReleaseEvent += new KeyReleaseEventHandler (PintaCanvas_KeyReleaseEvent); } #region Protected Methods protected override bool OnExposeEvent (EventExpose e) { base.OnExposeEvent (e); if (!PintaCore.Workspace.HasOpenDocuments) return true; double scale = PintaCore.Workspace.Scale; int x = (int)PintaCore.Workspace.Offset.X; int y = (int)PintaCore.Workspace.Offset.Y; // Translate our expose area for the whole drawingarea to just our canvas Rectangle canvas_bounds = new Rectangle (x, y, PintaCore.Workspace.CanvasSize.Width, PintaCore.Workspace.CanvasSize.Height); canvas_bounds.Intersect (e.Area); if (canvas_bounds.IsEmpty) return true; canvas_bounds.X -= x; canvas_bounds.Y -= y; // Resize our offscreen surface to a surface the size of our drawing area if (canvas == null || canvas.Width != canvas_bounds.Width || canvas.Height != canvas_bounds.Height) { if (canvas != null) (canvas as IDisposable).Dispose (); canvas = new Cairo.ImageSurface (Cairo.Format.Argb32, canvas_bounds.Width, canvas_bounds.Height); } cr.Initialize (PintaCore.Workspace.ImageSize, PintaCore.Workspace.CanvasSize); using (Cairo.Context g = CairoHelper.Create (GdkWindow)) { // Draw our 1 px black border g.DrawRectangle (new Cairo.Rectangle (x, y, PintaCore.Workspace.CanvasSize.Width + 1, PintaCore.Workspace.CanvasSize.Height + 1), new Cairo.Color (0, 0, 0), 1); // Set up our clip rectangle g.Rectangle (new Cairo.Rectangle (x, y, PintaCore.Workspace.CanvasSize.Width, PintaCore.Workspace.CanvasSize.Height)); g.Clip (); g.Translate (x, y); bool checker = true; // Resize each layer and paint it to the screen foreach (Layer layer in PintaCore.Layers.GetLayersToPaint ()) { cr.Render (layer.Surface, canvas, canvas_bounds.Location, checker); g.SetSourceSurface (canvas, canvas_bounds.X + (int)(layer.Offset.X * scale), canvas_bounds.Y + (int)(layer.Offset.Y * scale)); g.PaintWithAlpha (layer.Opacity); if (layer == PintaCore.Layers.CurrentLayer && PintaCore.LivePreview.IsEnabled) { cr.Render (PintaCore.LivePreview.LivePreviewSurface, canvas, canvas_bounds.Location, checker); g.Save (); g.Scale (scale, scale); g.AppendPath (PintaCore.Layers.SelectionPath); g.Clip (); g.Scale (1 / scale, 1 / scale); g.SetSourceSurface (canvas, canvas_bounds.X, canvas_bounds.Y); g.PaintWithAlpha (layer.Opacity); g.Restore (); } checker = false; } // If we are at least 200% and grid is requested, draw it if (PintaCore.Actions.View.PixelGrid.Active && cr.ScaleFactor.Ratio <= 0.5d) { gr.Render (canvas, canvas_bounds.Location); g.SetSourceSurface (canvas, canvas_bounds.X, canvas_bounds.Y); g.Paint (); } // Selection outline if (PintaCore.Layers.ShowSelection) { g.Save (); g.Translate (0.5, 0.5); g.Scale (scale, scale); g.AppendPath (PintaCore.Layers.SelectionPath); if (PintaCore.Tools.CurrentTool.Name.Contains ("Select") && !PintaCore.Tools.CurrentTool.Name.Contains ("Selected")) { g.Color = new Cairo.Color (0.7, 0.8, 0.9, 0.2); g.FillRule = Cairo.FillRule.EvenOdd; g.FillPreserve (); } g.LineWidth = 1 / scale; // Draw a white line first so it shows up on dark backgrounds g.Color = new Cairo.Color (1, 1, 1); g.StrokePreserve (); // Draw a black dashed line over the white line g.SetDash (new double[] { 2 / scale, 4 / scale }, 0); g.Color = new Cairo.Color (0, 0, 0); g.Stroke (); g.Restore (); } } return true; } protected override bool OnScrollEvent (EventScroll evnt) { // Allow the user to zoom in/out with Ctrl-Mousewheel if (FilterModifierKeys(evnt.State) == ModifierType.ControlMask) { switch (evnt.Direction) { case ScrollDirection.Down: case ScrollDirection.Right: PintaCore.Workspace.ActiveWorkspace.ZoomOutFromMouseScroll (new Cairo.PointD (evnt.X, evnt.Y)); return true; case ScrollDirection.Left: case ScrollDirection.Up: PintaCore.Workspace.ActiveWorkspace.ZoomInFromMouseScroll (new Cairo.PointD (evnt.X, evnt.Y)); return true; } } return base.OnScrollEvent (evnt); } #endregion #region Private Methods private void SetRequisition (Size size) { Requisition req = new Requisition (); req.Width = size.Width; req.Height = size.Height; Requisition = req; QueueResize (); } [GLib.ConnectBefore] private void PintaCanvas_KeyReleaseEvent (object o, KeyReleaseEventArgs e) { PintaCore.Tools.CurrentTool.DoKeyRelease (this, e); } [GLib.ConnectBefore] private void PintaCanvas_KeyPressEvent (object o, KeyPressEventArgs e) { // Give the current tool a chance to handle the key press PintaCore.Tools.CurrentTool.DoKeyPress (this, e); // If the tool didn't consume it, see if its a toolbox shortcut if (e.RetVal == null || !(bool)e.RetVal) if (FilterModifierKeys (e.Event.State) == ModifierType.None) PintaCore.Tools.SetCurrentTool (e.Event.Key); } /// /// Filters out all modifier keys except Ctrl/Shift/Alt. This prevents Caps Lock, Num Lock, etc /// from appearing as active modifier keys. /// private ModifierType FilterModifierKeys (Gdk.ModifierType current_state) { ModifierType state = ModifierType.None; state |= (current_state & ModifierType.ControlMask); state |= (current_state & ModifierType.ShiftMask); state |= (current_state & ModifierType.Mod1Mask); return state; } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ColorGradientWidget.cs0000664000175000017500000001745411747026475024714 0ustar00cameroncameron00000000000000// // ColorGradientWidget.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; using System.Linq; using Cairo; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class ColorGradientWidget : Gtk.Bin { //gradient horizontal padding private const double xpad = 0.15; //gradient vertical padding private const double ypad = 0.03; private double[] vals; private Rectangle GradientRectangle { get { Rectangle rect = Allocation.ToCairoRectangle (); double x = rect.X + xpad * rect.Width; double y = rect.Y + ypad * rect.Height; double width = (1 - 2 * xpad) * rect.Width; double height = (1 - 2 * ypad) * rect.Height; return new Rectangle (x, y, width, height); } } [Category("Custom Properties")] public int Count { get { return vals.Length; } set { if (value < 2 || value > 3) { throw new ArgumentOutOfRangeException("value", value, "Count must be 2 or 3"); } vals = new double[value]; double step = 256 / (value - 1); for (int i = 0; i < value ; i++) { vals [i] = i * step - ((i != 0) ? 1 : 0); } } } public Color MaxColor { get; set; } public int ValueIndex { get; private set; } public ColorGradientWidget () { this.Build (); ValueIndex = -1; eventbox.MotionNotifyEvent += HandleMotionNotifyEvent; eventbox.LeaveNotifyEvent += HandleLeaveNotifyEvent; eventbox.ButtonPressEvent += HandleButtonPressEvent; eventbox.ButtonReleaseEvent += HandleButtonReleaseEvent; ExposeEvent += HandleExposeEvent; } public int GetValue (int i) { return (int) vals [i]; } public void SetValue (int i, int val) { if ((int)vals [i] != val) { vals [i] = val; OnValueChanged (i); } } private double GetYFromValue (double val) { Rectangle rect = GradientRectangle; Rectangle all = Allocation.ToCairoRectangle (); return all.Y + ypad * all.Height + rect.Height * (255 - val) / 255; } private double NormalizeY (int index, double py) { Rectangle rect = GradientRectangle; var yvals = (from val in vals select GetYFromValue (val)).Concat( new double[] {rect.Y, rect.Y + rect.Height}).OrderByDescending ( v => v).ToArray(); index++; if (py >= yvals [index - 1]) { py = yvals [index - 1]; } else if (py < yvals [index + 1]) { py = yvals [index + 1]; } return py; } private int GetValueFromY (double py) { Rectangle rect = GradientRectangle; Rectangle all = Allocation.ToCairoRectangle (); py -= all.Y + ypad * all.Height; return ((int)(255 * (rect.Height - py) / rect.Height)); } private int FindValueIndex(int y) { if (ValueIndex == -1) { var yvals = (from val in vals select GetYFromValue (val)).ToArray (); int count = Count - 1; for (int i = 0; i < count; i++) { double y1 = yvals [i]; double y2 = yvals [i + 1]; double h = (y1 - y2) / 2; // pointer is below the lowest value triangle if (i == 0 && y1 < y) return i; // pointer is above the highest value triangle if (i == (count - 1) && y2 > y) return i + 1; // pointer is outside i and i + 1 value triangles if (!(y1 >= y && y >= y2)) continue; // pointer is closer to lower value triangle if (y1 - y <= h) return i; // pointer is closer to higher value triangle if (y - y2 <= h) return i + 1; } return -1; } else { return ValueIndex; } } private void HandleMotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) { int px, py; Gdk.ModifierType mask; GdkWindow.GetPointer (out px, out py, out mask); int index = FindValueIndex (py); py = (int)NormalizeY (index, py); if (mask == Gdk.ModifierType.Button1Mask) { if (index != -1) { double y = GetValueFromY (py); vals[index] = y; OnValueChanged (index); } } //to avoid unnessesary costly redrawing if (index != -1) GdkWindow.Invalidate (); } private void HandleLeaveNotifyEvent (object o, Gtk.LeaveNotifyEventArgs args) { if (args.Event.State != Gdk.ModifierType.Button1Mask) ValueIndex = -1; GdkWindow.Invalidate (); } void HandleButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { int px, py; Gdk.ModifierType mask; GdkWindow.GetPointer (out px, out py, out mask); int index = FindValueIndex ((int)py); if (index != -1) ValueIndex = index; } void HandleButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) { ValueIndex = -1; } private void DrawGradient (Context g) { Rectangle rect = GradientRectangle; Gradient pat = new LinearGradient(rect.X, rect.Y, rect.X, rect.Y + rect.Height); pat.AddColorStop (0, MaxColor); pat.AddColorStop (1, new Cairo.Color (0, 0, 0)); g.Rectangle (rect); g.Pattern = pat; g.Fill(); } private void DrawTriangles (Context g) { int px, py; Gdk.ModifierType mask; GdkWindow.GetPointer (out px, out py, out mask); Rectangle rect = GradientRectangle; Rectangle all = Allocation.ToCairoRectangle(); int index = FindValueIndex (py); for (int i = 0; i < Count; i++) { double val = vals [i]; double y = GetYFromValue (val); bool hoover = ((index == i)) && (all.ContainsPoint (px, py) || ValueIndex != -1); Color color = hoover ? new Color (0.1, 0.1, 0.9) : new Color (0.1, 0.1, 0.1); //left triangle PointD[] points = new PointD[] { new PointD (rect.X, y), new PointD (rect.X - xpad * rect.Width, y + ypad * rect.Height), new PointD (rect.X - xpad * rect.Width, y - ypad * rect.Height) }; g.FillPolygonal (points, color); double x = rect.X + rect.Width; //right triangle PointD[] points2 = new PointD[] { new PointD (x , y), new PointD (x + xpad * rect.Width, y + ypad * rect.Height), new PointD (x + xpad * rect.Width, y - ypad * rect.Height) }; g.FillPolygonal (points2, color); } } private void HandleExposeEvent (object o, Gtk.ExposeEventArgs args) { using (Context g = Gdk.CairoHelper.Create (this.GdkWindow)) { DrawGradient (g); DrawTriangles (g); } } #region Protected Methods protected void OnValueChanged(int index) { if (ValueChanged != null) { ValueChanged(this, new IndexEventArgs (index)); } } #endregion #region Public Events public event IndexEventHandler ValueChanged; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs0000664000175000017500000001550111747026475024544 0ustar00cameroncameron00000000000000// // ColorPaletteWidget.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public class ColorPaletteWidget : Gtk.DrawingArea { private Rectangle primary_rect = new Rectangle (7, 7, 30, 30); private Rectangle secondary_rect = new Rectangle (22, 22, 30, 30); private Rectangle swap_rect = new Rectangle (37, 6, 15, 15); private Gdk.Pixbuf swap_icon; private Palette palette; public ColorPaletteWidget () { // Insert initialization code here. this.AddEvents ((int)Gdk.EventMask.ButtonPressMask); swap_icon = PintaCore.Resources.GetIcon ("ColorPalette.SwapIcon.png"); palette = PintaCore.Palette.CurrentPalette; } public void Initialize () { PintaCore.Palette.PrimaryColorChanged += new EventHandler (Palette_ColorChanged); PintaCore.Palette.SecondaryColorChanged += new EventHandler (Palette_ColorChanged); PintaCore.Palette.CurrentPalette.PaletteChanged += new EventHandler (Palette_ColorChanged); } private void Palette_ColorChanged (object sender, EventArgs e) { // Color change events may be received while the widget is minimized, // so we only call Invalidate() if the widget is shown. if (IsRealized) { GdkWindow.Invalidate (); } } protected override bool OnButtonPressEvent (Gdk.EventButton ev) { if (swap_rect.ContainsPoint (ev.X, ev.Y)) { Color temp = PintaCore.Palette.PrimaryColor; PintaCore.Palette.PrimaryColor = PintaCore.Palette.SecondaryColor; PintaCore.Palette.SecondaryColor = temp; GdkWindow.Invalidate (); } if (primary_rect.ContainsPoint (ev.X, ev.Y)) { Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog (Catalog.GetString ("Choose Primary Color")); csd.ColorSelection.PreviousColor = PintaCore.Palette.PrimaryColor.ToGdkColor (); csd.ColorSelection.CurrentColor = PintaCore.Palette.PrimaryColor.ToGdkColor (); csd.ColorSelection.CurrentAlpha = PintaCore.Palette.PrimaryColor.GdkColorAlpha (); csd.ColorSelection.HasOpacityControl = true; int response = csd.Run (); if (response == (int)Gtk.ResponseType.Ok) { PintaCore.Palette.PrimaryColor = csd.ColorSelection.GetCairoColor (); } csd.Destroy (); } else if (secondary_rect.ContainsPoint (ev.X, ev.Y)) { Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog (Catalog.GetString ("Choose Secondary Color")); csd.ColorSelection.PreviousColor = PintaCore.Palette.SecondaryColor.ToGdkColor (); csd.ColorSelection.CurrentColor = PintaCore.Palette.SecondaryColor.ToGdkColor (); csd.ColorSelection.CurrentAlpha = PintaCore.Palette.SecondaryColor.GdkColorAlpha (); csd.ColorSelection.HasOpacityControl = true; int response = csd.Run (); if (response == (int)Gtk.ResponseType.Ok) { PintaCore.Palette.SecondaryColor = csd.ColorSelection.GetCairoColor (); } csd.Destroy (); } int pal = PointToPalette ((int)ev.X, (int)ev.Y); if (pal >= 0) { if (ev.Button == 3) PintaCore.Palette.SecondaryColor = palette[pal]; else if (ev.Button == 1) PintaCore.Palette.PrimaryColor = palette[pal]; else { Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog (Catalog.GetString ("Choose Palette Color")); csd.ColorSelection.PreviousColor = palette[pal].ToGdkColor (); csd.ColorSelection.CurrentColor = palette[pal].ToGdkColor (); csd.ColorSelection.CurrentAlpha = palette[pal].GdkColorAlpha (); csd.ColorSelection.HasOpacityControl = true; int response = csd.Run (); if (response == (int)Gtk.ResponseType.Ok) { palette[pal] = csd.ColorSelection.GetCairoColor (); } csd.Destroy (); } GdkWindow.Invalidate (); } // Insert button press handling code here. return base.OnButtonPressEvent (ev); } protected override bool OnExposeEvent (Gdk.EventExpose ev) { base.OnExposeEvent (ev); using (Context g = Gdk.CairoHelper.Create (GdkWindow)) { g.FillRectangle (secondary_rect, PintaCore.Palette.SecondaryColor); g.DrawRectangle (new Rectangle (secondary_rect.X + 1, secondary_rect.Y + 1, secondary_rect.Width - 2, secondary_rect.Height - 2), new Color (1, 1, 1), 1); g.DrawRectangle (secondary_rect, new Color (0, 0, 0), 1); g.FillRectangle (primary_rect, PintaCore.Palette.PrimaryColor); g.DrawRectangle (new Rectangle (primary_rect.X + 1, primary_rect.Y + 1, primary_rect.Width - 2, primary_rect.Height - 2), new Color (1, 1, 1), 1); g.DrawRectangle (primary_rect, new Color (0, 0, 0), 1); g.DrawPixbuf (swap_icon, swap_rect.Location ()); // Draw swatches int roundedCount = (palette.Count % 3 == 0) ? palette.Count : palette.Count + 3 - (palette.Count % 3); for (int i = 0; i < palette.Count; i++) { int x = 7 + 15 * (i / (roundedCount / 3)); int y = 60 +15 * (i % (roundedCount / 3)); g.FillRectangle (new Rectangle (x, y, 15, 15), palette[i]); } } return true; } protected override void OnSizeRequested (ref Gtk.Requisition requisition) { // Calculate desired size here. requisition.Height = 305; requisition.Width = 60; } private int PointToPalette (int x, int y) { int col = -1; int row = 0; int roundedCount = (palette.Count % 3 == 0) ? palette.Count : palette.Count + 3 - (palette.Count % 3); if (x >= 7 && x < 22) col = 0; else if (x >= 22 && x < 38) col = roundedCount / 3; else if (x >= 38 && x < 54) col = (roundedCount / 3) * 2; else return -1; if (y < 60 || y > 60 + ((roundedCount / 3) * 15)) return -1; row = (y - 60) / 15; return (col + row >= palette.Count) ? -1 : col + row; } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ColorPanelWidget.cs0000664000175000017500000000356211747026475024211 0ustar00cameroncameron00000000000000// // ColorPanelWidget.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class ColorPanelWidget : Gtk.Bin { public Color CairoColor { get; private set; } public ColorPanelWidget () { this.Build (); ExposeEvent += HandleExposeEvent; } public void SetCairoColor (Color color) { CairoColor = color; } private void HandleExposeEvent (object o, Gtk.ExposeEventArgs args) { using (Context g = Gdk.CairoHelper.Create (this.GdkWindow)) { int rad = 4; Rectangle rect = Allocation.ToCairoRectangle (); g.FillRoundedRectangle (rect, rad, CairoColor); } } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ComboBoxWidget.cs0000664000175000017500000000376011747026475023663 0ustar00cameroncameron00000000000000// // ComboBoxWidget.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class ComboBoxWidget : Gtk.Bin { public string Label { get { return label.Text; } set { label.Text = value; } } public int Active { get { return combobox.Active; } set { combobox.Active = value; } } public string ActiveText { get { return combobox.ActiveText; } } public ComboBoxWidget (string[] entries) { this.Build (); foreach (string s in entries) combobox.AppendText (s); combobox.Changed += delegate { OnChanged (); }; } #region Protected Methods protected void OnChanged () { if (Changed != null) Changed (this, EventArgs.Empty); } #endregion #region Public Events public event EventHandler Changed; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/HScaleSpinButtonWidget.cs0000664000175000017500000001023411747026475025332 0ustar00cameroncameron00000000000000// // HScaleSpinButtonWidget.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class HScaleSpinButtonWidget : Gtk.Bin { [Category("Custom Properties")] public string Label { get { return label.Text; } set { label.Text = value; } } [Category("Custom Properties")] public double DefaultValue { get; set; } private int max_value; [Category("Custom Properties")] public int MaximumValue { get { return max_value; } set { max_value = value; hscale.Adjustment.Upper = value; spin.Adjustment.Upper = value; } } private int min_value; [Category("Custom Properties")] public int MinimumValue { get { return min_value; } set { min_value = value; hscale.Adjustment.Lower = value; spin.Adjustment.Lower = value; } } private int digits_value; [Category("Custom Properties")] public int DigitsValue { get { return digits_value; } set { if (value > 0) { digits_value = value; hscale.Digits = value; spin.Digits = Convert.ToUInt32(value); } } } private double inc_value; [Category("Custom Properties")] public double IncrementValue { get { return inc_value; } set { inc_value = value; hscale.Adjustment.StepIncrement = value; spin.Adjustment.StepIncrement = value; } } [Category("Custom Properties")] public int ValueAsInt { get { return spin.ValueAsInt; } } [Category("Custom Properties")] public double Value { get { return spin.Value; } set { if (spin.Value != value) { spin.Value = value; OnValueChanged (); } } } public HScaleSpinButtonWidget () { this.Build (); hscale.ValueChanged += HandleHscaleValueChanged; spin.ValueChanged += HandleSpinValueChanged; button.Clicked += HandleButtonClicked; spin.ActivatesDefault = true; } protected override void OnShown () { base.OnShown (); Value = DefaultValue; } private void HandleHscaleValueChanged (object sender, EventArgs e) { if (spin.Value != hscale.Value) { spin.Value = hscale.Value; OnValueChanged (); } } private void HandleSpinValueChanged (object sender, EventArgs e) { if (hscale.Value != spin.Value) { hscale.Value = spin.Value; OnValueChanged (); } } private void HandleButtonClicked (object sender, EventArgs e) { Value = DefaultValue; } #region Protected Methods protected void OnValueChanged () { if (ValueChanged != null) ValueChanged (this, EventArgs.Empty); } #endregion #region Public Events public event EventHandler ValueChanged; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/HistogramWidget.cs0000664000175000017500000001311311747026475024101 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Krzysztof Marecki // ///////////////////////////////////////////////////////////////////////////////// // Additional code: // // HistogramWidget.cs // // Author: // Krzysztof Marecki // // Copyright (c) 2010 Krzysztof Marecki // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; using System.Threading; using Cairo; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class HistogramWidget : Gtk.Bin { private bool[] selected; [Category("Custom Properties")] public bool FlipHorizontal { get; set; } [Category("Custom Properties")] public bool FlipVertical { get; set; } public HistogramRgb Histogram { get; private set; } public HistogramWidget () { this.Build (); Histogram = new HistogramRgb (); selected = new bool[] {true, true, true}; ExposeEvent += HandleExposeEvent; } public void ResetHistogram () { Histogram = new HistogramRgb(); } public void SetSelected(int channel, bool val) { selected[channel] = val; } private void CheckPoint (Rectangle rect, PointD point) { if (point.X < rect.X) { point.X = rect.X; } else if (point.X > rect.X + rect.Width) { point.X = rect.X + rect.Width; } if (point.Y < rect.Y) { point.Y = rect.Y; } else if (point.Y > rect.Y + rect.Height) { point.Y = rect.Y + rect.Height; } } private void DrawChannel(Context g, ColorBgra color, int channel, long max, float mean) { Rectangle rect = Allocation.ToCairoRectangle (); Histogram histogram = Histogram; int l = (int)rect.X; int t = (int)rect.Y; int r = (int)(rect.X + rect.Width); int b = (int)(rect.Y + rect.Height); int entries = histogram.Entries; long[] hist = histogram.HistogramValues [channel]; ++max; if (FlipHorizontal) { Utility.Swap(ref l, ref r); } if (!FlipVertical) { Utility.Swap(ref t, ref b); } PointD[] points = new PointD[entries + 2]; points[entries] = new PointD (Utility.Lerp (l, r, -1), Utility.Lerp (t, b, 20)); points[entries + 1] = new PointD (Utility.Lerp (l, r, -1), Utility.Lerp (b, t, 20)); for (int i = 0; i < entries; i += entries - 1) { points[i] = new PointD ( Utility.Lerp (l, r, (float)hist[i] / (float)max), Utility.Lerp (t, b, (float)i / (float)entries)); CheckPoint (rect, points [i]); } long sum3 = hist[0] + hist[1]; for (int i = 1; i < entries - 1; ++i) { sum3 += hist[i + 1]; points[i] = new PointD( Utility.Lerp(l, r, (float)(sum3) / (float)(max * 3.1f)), Utility.Lerp(t, b, (float)i / (float)entries)); CheckPoint (rect, points [i]); sum3 -= hist[i - 1]; } byte intensity = selected[channel] ? (byte)96 : (byte)32; ColorBgra pen_color = ColorBgra.Blend (ColorBgra.Black, color, intensity); ColorBgra brush_color = color; brush_color.A = intensity; g.LineWidth = 1; g.Rectangle (rect); g.Clip (); g.DrawPolygonal (points, pen_color.ToCairoColor ()); g.FillPolygonal (points, brush_color.ToCairoColor ()); } private void DrawHistogram(Context g) { Histogram histogram = Histogram; long max = histogram.GetMax (); float[] mean = histogram.GetMean (); int channels = histogram.Channels; for (int i = 0; i < channels; ++i) { DrawChannel(g, histogram.GetVisualColor(i), i, max, mean[i]); } } private void HandleExposeEvent (object o, Gtk.ExposeEventArgs args) { using (Context g = Gdk.CairoHelper.Create (this.GdkWindow)) DrawHistogram (g); } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/History/0000775000175000017500000000000011747026475022113 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Widgets/History/HistoryTreeView.cs0000664000175000017500000001135711747026475025565 0ustar00cameroncameron00000000000000// // HistoryTreeView.cs // // Author: // Anirudh Sanjeev // Joe Hillenbrand // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Gtk; using Pinta.Core; namespace Pinta.Gui.Widgets { public class HistoryTreeView : ScrolledWindow { private TreeView tree; public HistoryTreeView () { CanFocus = false; SetSizeRequest (200, 200); SetPolicy (PolicyType.Automatic, PolicyType.Automatic); tree = new TreeView (); tree.HeadersVisible = false; tree.EnableGridLines = TreeViewGridLines.None; tree.EnableTreeLines = false; tree.Selection.Mode = SelectionMode.Single; tree.Selection.SelectFunction = HistoryItemSelected; Gtk.TreeViewColumn icon_column = new Gtk.TreeViewColumn (); Gtk.CellRendererPixbuf icon_cell = new Gtk.CellRendererPixbuf (); icon_column.PackStart (icon_cell, true); Gtk.TreeViewColumn text_column = new Gtk.TreeViewColumn (); Gtk.CellRendererText text_cell = new Gtk.CellRendererText (); text_column.PackStart (text_cell, true); text_column.SetCellDataFunc (text_cell, new Gtk.TreeCellDataFunc (HistoryRenderText)); icon_column.SetCellDataFunc (icon_cell, new Gtk.TreeCellDataFunc (HistoryRenderIcon)); tree.AppendColumn (icon_column); tree.AppendColumn (text_column); PintaCore.Workspace.ActiveDocumentChanged += Workspace_ActiveDocumentChanged; PintaCore.History.HistoryItemAdded += new EventHandler (OnHistoryItemsChanged); PintaCore.History.ActionUndone += new EventHandler (OnHistoryItemsChanged); PintaCore.History.ActionRedone += new EventHandler (OnHistoryItemsChanged); Add (tree); ShowAll (); } private void Workspace_ActiveDocumentChanged (object sender, EventArgs e) { if (PintaCore.Workspace.HasOpenDocuments) tree.Model = PintaCore.Workspace.ActiveWorkspace.History.ListStore; else tree.Model = null; OnHistoryItemsChanged (this, EventArgs.Empty); } #region History public bool HistoryItemSelected (TreeSelection selection, TreeModel model, TreePath path, bool path_currently_selected) { int current = path.Indices[0]; if (!path_currently_selected) { while (PintaCore.History.Pointer < current) { PintaCore.History.Redo (); } while (PintaCore.History.Pointer > current) { PintaCore.History.Undo (); } } return true; } private void HistoryRenderText (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { BaseHistoryItem item = (BaseHistoryItem)model.GetValue (iter, 0); if (item.State == HistoryItemState.Undo) { (cell as Gtk.CellRendererText).Style = Pango.Style.Normal; (cell as Gtk.CellRendererText).Foreground = "black"; (cell as Gtk.CellRendererText).Text = item.Text; } else if (item.State == HistoryItemState.Redo) { (cell as Gtk.CellRendererText).Style = Pango.Style.Oblique; (cell as Gtk.CellRendererText).Foreground = "gray"; (cell as Gtk.CellRendererText).Text = item.Text; } } private void HistoryRenderIcon (Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { BaseHistoryItem item = (BaseHistoryItem)model.GetValue (iter, 0); (cell as Gtk.CellRendererPixbuf).Pixbuf = PintaCore.Resources.GetIcon (item.Icon); } private void OnHistoryItemsChanged (object o, EventArgs args) { if (tree.Model != null && PintaCore.History.Current != null) { tree.Selection.SelectIter (PintaCore.History.Current.Id); tree.ScrollToCell (tree.Model.GetPath (PintaCore.History.Current.Id), tree.Columns[1], true, (float)0.9, 0); } } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/Layers/0000775000175000017500000000000011747026475021711 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Widgets/Layers/CellRendererSurface.cs0000664000175000017500000001026111747026475026117 0ustar00cameroncameron00000000000000// // CellRendererSurface.cs // // Author: // Greg Lowe // // Copyright (c) 2010 Greg Lowe // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Cairo; using Pinta.Core; namespace Pinta.Gui.Widgets { public class CellRendererSurface : CellRenderer { private ImageSurface surface; private Surface transparent; public CellRendererSurface (int width, int height) { // TODO: Respect cell padding (Xpad and Ypad). SetFixedSize (width, height); transparent = new Cairo.ImageSurface (Cairo.Format.ARGB32, width, height); Cairo.Color gray = new Cairo.Color (.75, .75, .75); // Create checkerboard background int grid_width = 4; using (Cairo.Context g = new Cairo.Context (transparent)) { g.Color = new Cairo.Color (1, 1, 1); g.Paint (); for (int y = 0; y < height; y += grid_width) for (int x = 0; x < width; x += grid_width) if ((x / grid_width % 2) + (y / grid_width % 2) == 1) g.FillRectangle (new Cairo.Rectangle (x, y, grid_width, grid_width), gray); } } [GLib.Property ("surface", "Get/Set Surface", "Set the cairo image surface to display a thumbnail of.")] public ImageSurface Surface { get { return surface; } set { surface = value; } } public override void GetSize (Widget widget, ref Gdk.Rectangle cellArea, out int x, out int y, out int width, out int height) { // TODO: Respect cell padding (Xpad and Ypad). x = cellArea.Left; y = cellArea.Top; width = (int)cellArea.Width; height = (int)cellArea.Height; } protected override void Render (Gdk.Drawable window, Widget widget, Gdk.Rectangle backgroundArea, Gdk.Rectangle cellArea, Gdk.Rectangle exposeArea, CellRendererState flags) { int x, y, width, height; GetSize (widget, ref cellArea, out x, out y, out width, out height); using (var g = Gdk.CairoHelper.Create (window)) { g.Save (); g.Translate (x, y); RenderCell (g, width, height); g.Restore (); } } private void RenderCell (Context g, int width, int height) { // Add some padding width -= 2; height -= 2; double scale; int draw_width = width; int draw_height = height; // The image is more constrained by height than width if ((double)width / (double)surface.Width >= (double)height / (double)surface.Height) { scale = (double)height / (double)(surface.Height); draw_width = (int)(surface.Width * height / surface.Height); } else { scale = (double)width / (double)(surface.Width); draw_height = (int)(surface.Height * width / surface.Width); } int offset_x = (int)((width - draw_width) / 2f); int offset_y = (int)((height - draw_height) / 2f); g.Save (); g.Rectangle (offset_x, offset_y, draw_width, draw_height); g.Clip (); g.SetSource (transparent); g.Paint (); g.Scale (scale, scale); g.SetSourceSurface (surface, (int)(offset_x / scale), (int)(offset_y / scale)); g.Paint (); g.Restore (); // TODO: scale this box correctly to match layer aspect ratio g.Color = new Cairo.Color (0.5, 0.5, 0.5); g.Rectangle (offset_x + 0.5, offset_y + 0.5, draw_width, draw_height); g.LineWidth = 1; g.Stroke (); } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs0000664000175000017500000001600511747026475025501 0ustar00cameroncameron00000000000000// // LayersListWidget.cs // // Author: // Jonathan Pobst // Greg Lowe // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public class LayersListWidget : ScrolledWindow { private TreeView tree; private TreeStore store; private const int store_index_thumbnail = 0; private const int store_index_name = 1; private const int store_index_visibility = 2; private const int store_index_layer = 3; private const int thumbnail_width = 60; private const int thumbnail_height = 40; private const int thumbnail_column_width = 70; private const int name_column_min_width = 100; private const int name_column_max_width = 300; private const int visibility_column_width = 30; public LayersListWidget () { CanFocus = false; SetSizeRequest (200, 200); SetPolicy (PolicyType.Automatic, PolicyType.Automatic); tree = new TreeView (); tree.HeadersVisible = false; tree.FixedHeightMode = true; tree.Reorderable = false; tree.EnableGridLines = TreeViewGridLines.None; tree.EnableTreeLines = false; tree.ShowExpanders = false; tree.CanFocus = false; var crs = new CellRendererSurface (thumbnail_width, thumbnail_height); var col = new TreeViewColumn ("Thumbnail", crs, "surface", store_index_thumbnail); col.Sizing = TreeViewColumnSizing.Fixed; col.FixedWidth = thumbnail_column_width; tree.AppendColumn (col); col = new TreeViewColumn ("Name", new CellRendererText (), "text", store_index_name); col.Sizing = TreeViewColumnSizing.Fixed; col.Expand = true; col.MinWidth = name_column_min_width; col.MaxWidth = name_column_max_width; tree.AppendColumn (col); var crt = new CellRendererToggle (); crt.Activatable = true; crt.Toggled += LayerVisibilityToggled; col = new TreeViewColumn ("Visible", crt, "active", store_index_visibility); col.Sizing = TreeViewColumnSizing.Fixed; col.FixedWidth = visibility_column_width; tree.AppendColumn (col); store = new TreeStore (typeof (Cairo.ImageSurface), typeof (string), typeof (bool), typeof (Layer)); tree.Model = store; tree.RowActivated += HandleRowActivated; Add (tree); PintaCore.Layers.LayerAdded += HandleLayerAddedOrRemoved; PintaCore.Layers.LayerRemoved += HandleLayerAddedOrRemoved; PintaCore.Layers.SelectedLayerChanged += HandleSelectedLayerChanged; PintaCore.Layers.LayerPropertyChanged += HandlePintaCoreLayersLayerPropertyChanged; PintaCore.History.HistoryItemAdded += HandleHistoryItemAdded; PintaCore.History.ActionRedone += HandleHistoryItemAdded; PintaCore.History.ActionUndone += HandleHistoryItemAdded; tree.CursorChanged += HandleLayerSelected; ShowAll (); } private Layer GetSelectedLayerInTreeView () { Layer layer = null; TreeIter iter; var paths = tree.Selection.GetSelectedRows (); if (paths != null && paths.Length > 0 && store.GetIter (out iter, paths[0])) { layer = store.GetValue (iter, store_index_layer) as Layer; } return layer; } private void SelectLayerInTreeView (int layerIndex) { var path = new TreePath (new int[] { layerIndex }); tree.Selection.SelectPath (path); } private void HandleLayerSelected (object o, EventArgs e) { var layer = GetSelectedLayerInTreeView (); if (PintaCore.Layers.CurrentLayer != layer) PintaCore.Layers.SetCurrentLayer (GetSelectedLayerInTreeView ()); } private void LayerVisibilityToggled (object o, ToggledArgs args) { TreeIter iter; if (store.GetIter (out iter, new TreePath (args.Path))) { bool b = (bool) store.GetValue (iter, store_index_visibility); store.SetValue(iter, store_index_visibility, !b); var layer = (Layer) store.GetValue (iter, store_index_layer); SetLayerVisibility (layer, !b); } } private void HandleHistoryItemAdded (object sender, EventArgs e) { // TODO: Handle this more efficiently. Reset (); } private void HandleSelectedLayerChanged (object sender, EventArgs e) { // TODO: Handle this more efficiently. Reset (); } void HandlePintaCoreLayersLayerPropertyChanged (object sender, PropertyChangedEventArgs e) { // TODO: Handle this more efficiently. Reset (); } private void HandleLayerAddedOrRemoved(object sender, EventArgs e) { // TODO: Handle this more efficiently. Reset (); // TODO: this should be handled elsewhere PintaCore.Workspace.Invalidate (); } private void HandleRowActivated(object o, RowActivatedArgs args) { // The double click to activate will have already selected the layer. PintaCore.Actions.Layers.Properties.Activate (); } public void Reset () { store.Clear (); if (!PintaCore.Workspace.HasOpenDocuments) return; foreach (var layer in (PintaCore.Workspace.ActiveDocument.Layers as IEnumerable).Reverse ()) store.AppendValues (layer.Surface, layer.Name, !layer.Hidden, layer); SelectLayerInTreeView (PintaCore.Layers.Count - PintaCore.Layers.CurrentLayerIndex - 1); } private void SetLayerVisibility (Layer layer, bool visibility) { if (layer != null) layer.Hidden = !visibility; var initial = new LayerProperties(layer.Name, visibility, layer.Opacity); var updated = new LayerProperties(layer.Name, !visibility, layer.Opacity); var historyItem = new UpdateLayerPropertiesHistoryItem ( "Menu.Layers.LayerProperties.png", (visibility) ? Catalog.GetString ("Layer Shown") : Catalog.GetString ("Layer Hidden"), PintaCore.Layers.IndexOf (layer), initial, updated); PintaCore.History.PushNewItem (historyItem); //TODO Call this automatically when the layer visibility changes. PintaCore.Workspace.Invalidate (); } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/OpenImages/0000775000175000017500000000000011747026475022501 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/Widgets/OpenImages/OpenImagesListWidget.cs0000664000175000017500000001616611747026475027071 0ustar00cameroncameron00000000000000// // OpenImagesListWidget.cs // // Author: // Cameron White // // Copyright (c) 2011 2011 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; using Pinta.Core; namespace Pinta.Gui.Widgets { public class OpenImagesListWidget : ScrolledWindow { private TreeView tree; private ListStore store; private CellRendererPixbuf file_close_cell; private TreeViewColumn file_name_column; private TreeViewColumn file_preview_column; private TreeViewColumn file_close_column; private const int PreviewWidth = 60; private const int PreviewHeight = 40; private const int PreviewColumnWidth = 70; private const int CloseColumnWidth = 30; private const int FilePreviewColumnIndex = 0; private const int FileNameColumnIndex = 1; private const int FileCloseColumnIndex = 2; private Gdk.Pixbuf close_icon = PintaCore.Resources.GetIcon (Stock.Close); public OpenImagesListWidget () { CanFocus = false; SetSizeRequest (200, 200); SetPolicy (PolicyType.Automatic, PolicyType.Automatic); tree = new TreeView (); tree.HeadersVisible = false; tree.EnableGridLines = TreeViewGridLines.None; tree.Selection.Mode = SelectionMode.Single; tree.Selection.SelectFunction = HandleDocumentSelected; var file_preview_cell = new CellRendererSurface (PreviewWidth, PreviewHeight); file_preview_column = new TreeViewColumn ("File Preview", file_preview_cell, "surface", FilePreviewColumnIndex); file_preview_column.Sizing = TreeViewColumnSizing.Fixed; file_preview_column.FixedWidth = PreviewColumnWidth; tree.AppendColumn (file_preview_column); file_name_column = new TreeViewColumn ("File Name", new CellRendererText (), "text", FileNameColumnIndex); file_name_column.Expand = true; tree.AppendColumn (file_name_column); file_close_cell = new CellRendererPixbuf (); file_close_column = new TreeViewColumn ("Close File", file_close_cell, "pixbuf", FileCloseColumnIndex); file_close_column.Sizing = TreeViewColumnSizing.Fixed; file_close_column.FixedWidth = CloseColumnWidth; tree.AppendColumn (file_close_column); store = new ListStore (typeof (Cairo.ImageSurface), typeof (string), typeof (Gdk.Pixbuf)); tree.Model = store; tree.ButtonPressEvent += HandleTreeButtonPressEvent; Add (tree); ShowAll (); PintaCore.Workspace.DocumentOpened += HandleDocumentOpenedOrClosed; PintaCore.Workspace.DocumentClosed += HandleDocumentOpenedOrClosed; PintaCore.Workspace.DocumentCreated += HandleDocumentOpenedOrClosed; PintaCore.Workspace.ActiveDocumentChanged += HandleActiveDocumentChanged; // update the thumbnails whenever the image is modified PintaCore.History.HistoryItemAdded += HandleDocumentModified; PintaCore.History.ActionRedone += HandleDocumentModified; PintaCore.History.ActionUndone += HandleDocumentModified; } /// /// Update the preview image for a modified document. /// void HandleDocumentModified (object sender, EventArgs e) { int docIndex = PintaCore.Workspace.ActiveDocumentIndex; if (docIndex != -1) { TreeIter iter; if (store.GetIter (out iter, new TreePath (new int[] { docIndex }))) { var surface = (Cairo.ImageSurface)store.GetValue (iter, FilePreviewColumnIndex); (surface as IDisposable).Dispose (); store.SetValue (iter, FilePreviewColumnIndex, PintaCore.Workspace.ActiveDocument.GetFlattenedImage ()); } } } /// /// Attempt to close the selected document if the close button is clicked /// [GLib.ConnectBefore] void HandleTreeButtonPressEvent (object o, ButtonPressEventArgs args) { double click_x = args.Event.X; double click_y = args.Event.Y; int start_pos, width; file_close_column.CellGetPosition (file_close_cell, out start_pos, out width); start_pos += file_preview_column.Width + file_name_column.Width; // if the close button was clicked, find the row that was clicked and close that document if (start_pos <= click_x && start_pos + width > click_x) { TreePath path; tree.GetPathAtPos ((int)click_x, (int)click_y, out path); PintaCore.Workspace.SetActiveDocument (path.Indices[0]); PintaCore.Actions.File.Close.Activate (); UpdateSelectedDocument (); } } /// /// If the active document is changed elsewhere, update the selected document in this widget /// private void HandleActiveDocumentChanged (object sender, EventArgs e) { UpdateSelectedDocument (); } private void UpdateSelectedDocument () { if (PintaCore.Workspace.HasOpenDocuments) { int doc_index = PintaCore.Workspace.ActiveDocumentIndex; if (doc_index != -1) { var path = new TreePath (new int[] { doc_index }); tree.Selection.SelectPath (path); } } } private void RebuildDocumentList () { // Ensure that the old image previews are disposed. foreach (object[] row in store) { var imageSurface = (Cairo.ImageSurface)row[FilePreviewColumnIndex]; (imageSurface as IDisposable).Dispose (); } store.Clear (); foreach (Document doc in PintaCore.Workspace.OpenDocuments) { doc.Renamed -= HandleDocRenamed; doc.Renamed += HandleDocRenamed; store.AppendValues (doc.GetFlattenedImage (), doc.Filename, close_icon); } } /// /// Rebuilds the list of documents after a document is opened or closed /// private void HandleDocumentOpenedOrClosed (object sender, DocumentEventArgs e) { RebuildDocumentList (); } /// /// If a document is renamed, just rebuild the list of open documents /// private void HandleDocRenamed (object sender, EventArgs e) { RebuildDocumentList (); UpdateSelectedDocument (); } /// /// Sets the active document as selected by the user /// private bool HandleDocumentSelected (TreeSelection selection, TreeModel model, TreePath path, bool path_currently_selected) { int index = path.Indices[0]; if (!path_currently_selected && index != PintaCore.Workspace.ActiveDocumentIndex) { PintaCore.Workspace.SetActiveDocument (index); } return true; } } } pinta-1.3/Pinta.Gui.Widgets/Widgets/PointPickerGraphic.cs0000664000175000017500000001334211747026475024531 0ustar00cameroncameron00000000000000// // PointPickerGraphic.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public class PointPickerGraphic : Gtk.DrawingArea { private bool tracking = false; private Cairo.ImageSurface thumbnail; public PointPickerGraphic () { Events = ((Gdk.EventMask)(16134)); ButtonPressEvent += HandleHandleButtonPressEvent; ButtonReleaseEvent += HandleHandleButtonReleaseEvent; MotionNotifyEvent += HandleHandleMotionNotifyEvent; } private void UpdateThumbnail () { double scalex = (double)Allocation.Width / (double)PintaCore.Workspace.ImageSize.Width; double scaley = (double)Allocation.Height / (double)PintaCore.Workspace.ImageSize.Height; thumbnail = new Cairo.ImageSurface (Cairo.Format.Argb32, Allocation.Width, Allocation.Height); using (Cairo.Context g = new Cairo.Context (thumbnail)) { g.Scale (scalex, scaley); foreach (Layer layer in PintaCore.Layers.GetLayersToPaint ()) { g.SetSourceSurface (layer.Surface, (int)layer.Offset.X, (int)layer.Offset.Y); g.PaintWithAlpha (layer.Opacity); } } } protected override void OnSizeAllocated (Rectangle allocation) { base.OnSizeAllocated (allocation); UpdateThumbnail (); } public void Init(Point position) { this.position = position; } #region Public Properties private Point position; public Point Position { get { return position; } set { if (position != value) { position = value; OnPositionChange (); GdkWindow.Invalidate (); } } } #endregion #region Mouse Handlers private void HandleHandleMotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) { if (tracking) { Position = MousePtToPosition (new Cairo.PointD (args.Event.X, args.Event.Y)); } } private void HandleHandleButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) { if (tracking) { //left if (args.Event.Button == 1) { Position = MousePtToPosition (new Cairo.PointD (args.Event.X, args.Event.Y)); } tracking = false; } } private void HandleHandleButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { //Left if (args.Event.Button == 1) { tracking = true; } } #endregion #region Drawing Code protected override bool OnExposeEvent (Gdk.EventExpose ev) { base.OnExposeEvent (ev); if (thumbnail == null) UpdateThumbnail (); Rectangle rect = GdkWindow.GetBounds (); Cairo.PointD pos = PositionToClientPt (Position); Cairo.Color black = new Cairo.Color (0, 0, 0); using (Cairo.Context g = CairoHelper.Create (GdkWindow)) { //background g.SetSource (thumbnail, 0.0, 0.0); g.Paint (); g.DrawRectangle (new Cairo.Rectangle (rect.X + 1, rect.Y + 1, rect.Width - 1, rect.Height - 1), new Cairo.Color (.75, .75, .75), 1); g.DrawRectangle (new Cairo.Rectangle (rect.X + 2, rect.Y + 2, rect.Width - 3, rect.Height - 3), black, 1); //cursor g.DrawLine (new Cairo.PointD (pos.X + 1, rect.Top + 2), new Cairo.PointD (pos.X + 1, rect.Bottom - 2), black, 1); g.DrawLine (new Cairo.PointD (rect.Left + 2, pos.Y + 1), new Cairo.PointD (rect.Right - 2, pos.Y + 1), black, 1); //point g.DrawEllipse (new Cairo.Rectangle (pos.X - 1, pos.Y - 1, 3, 3), black, 2); } return true; } protected override void OnSizeRequested (ref Gtk.Requisition requisition) { // Always be X pixels tall, but maintain aspect ratio Size imagesize = PintaCore.Workspace.ImageSize; requisition.Height = 65; requisition.Width = (imagesize.Width * requisition.Height) / imagesize.Height; thumbnail = null; } #endregion #region Public Events public event EventHandler PositionChanged; protected virtual void OnPositionChange () { if (PositionChanged != null) { PositionChanged (this, EventArgs.Empty); } } #endregion #region private methods private Point MousePtToPosition (Cairo.PointD clientMousePt) { int posX = (int)(clientMousePt.X * (PintaCore.Workspace.ImageSize.Width / Allocation.Width)); int posY = (int)(clientMousePt.Y * (PintaCore.Workspace.ImageSize.Height / Allocation.Height)); return new Point (posX, posY); } private Cairo.PointD PositionToClientPt (Point pos) { Point center = Allocation.Center (); double halfWidth = PintaCore.Workspace.ImageSize.Width / Allocation.Width; double halfHeight = PintaCore.Workspace.ImageSize.Height / Allocation.Height; double ptX = pos.X / halfWidth; double ptY = pos.Y / halfHeight; return new Cairo.PointD (ptX, ptY); } #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/PointPickerWidget.cs0000664000175000017500000001051011747026475024371 0ustar00cameroncameron00000000000000// // PointPicker.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.ComponentModel; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class PointPickerWidget : Gtk.Bin { bool active = true; [Category("Custom Properties")] public string Label { get { return label.Text; } set { label.Text = value; } } [Category("Custom Properties")] public Gdk.Point DefaultPoint { get; set; } [Category("Custom Properties")] public Gdk.Point Point { get { return new Gdk.Point (spinX.ValueAsInt, spinY.ValueAsInt); } set { if (value.X != spinX.ValueAsInt || value.Y != spinY.ValueAsInt) { spinX.Value = value.X; spinY.Value = value.Y; OnPointPicked (); } } } [Category("Custom Properties")] public Cairo.PointD DefaultOffset { get { return new Cairo.PointD ( (DefaultPoint.X * 2.0 /PintaCore.Workspace.ImageSize.Width) - 1.0, (DefaultPoint.Y * 2.0 / PintaCore.Workspace.ImageSize.Height) - 1.0);} set {DefaultPoint = new Gdk.Point ( (int) ((value.X + 1.0) * PintaCore.Workspace.ImageSize.Width / 2.0 ), (int) ((value.Y + 1.0) * PintaCore.Workspace.ImageSize.Height / 2.0 ) );} } public Cairo.PointD Offset { get { return new Cairo.PointD ((spinX.Value * 2.0 / PintaCore.Workspace.ImageSize.Width) - 1.0, (spinY.Value * 2.0 / PintaCore.Workspace.ImageSize.Height) - 1.0); } } public PointPickerWidget () { this.Build (); spinX.Adjustment.Upper = PintaCore.Workspace.ImageSize.Width; spinY.Adjustment.Upper = PintaCore.Workspace.ImageSize.Height; spinX.Adjustment.Lower = 0; spinY.Adjustment.Lower = 0; spinX.ActivatesDefault = true; spinY.ActivatesDefault = true; } void HandlePointpickergraphic1PositionChanged (object sender, EventArgs e) { if (Point != pointpickergraphic1.Position) { active = false; spinX.Value = pointpickergraphic1.Position.X; spinY.Value = pointpickergraphic1.Position.Y; active = true; OnPointPicked (); } } private void HandleSpinXValueChanged (object sender, EventArgs e) { if (active) { pointpickergraphic1.Position = Point; OnPointPicked (); } } private void HandleSpinYValueChanged (object sender, EventArgs e) { if (active) { pointpickergraphic1.Position = Point; OnPointPicked (); } } protected override void OnShown () { base.OnShown (); Point = DefaultPoint; spinX.ValueChanged += HandleSpinXValueChanged; spinY.ValueChanged += HandleSpinYValueChanged; pointpickergraphic1.PositionChanged += HandlePointpickergraphic1PositionChanged; button1.Pressed += HandleButton1Pressed; button2.Pressed += HandleButton2Pressed; pointpickergraphic1.Init (DefaultPoint); } void HandleButton1Pressed (object sender, EventArgs e) { spinX.Value = DefaultPoint.X; } void HandleButton2Pressed (object sender, EventArgs e) { spinY.Value = DefaultPoint.Y; } #region Protected Methods protected void OnPointPicked () { if (PointPicked != null) PointPicked (this, EventArgs.Empty); } #endregion #region Public Events public event EventHandler PointPicked; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ReseedButtonWidget.cs0000664000175000017500000000327011747026475024552 0ustar00cameroncameron00000000000000// // ReseedButtonWidget.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem(true)] public partial class ReseedButtonWidget : Gtk.Bin { public ReseedButtonWidget () { this.Build (); button1.Clicked += delegate (object sender, EventArgs e) { OnClicked (); }; } #region Protected Methods protected void OnClicked () { if (Clicked != null) Clicked (this, EventArgs.Empty); } #endregion #region Public Events public event EventHandler Clicked; #endregion } } pinta-1.3/Pinta.Gui.Widgets/Widgets/ToolBoxWidget.cs0000664000175000017500000000225611747026475023540 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; using Gtk; using Pinta.Core; namespace Pinta.Gui.Widgets { [System.ComponentModel.ToolboxItem (true)] public class ToolBoxWidget : HBox { private Toolbar tb1; private Toolbar tb2; public ToolBoxWidget () { // First column tb1 = new Toolbar () { Name = "tb1", Orientation = Orientation.Vertical, ShowArrow = false, ToolbarStyle = ToolbarStyle.Icons, IconSize = IconSize.SmallToolbar }; PackStart (tb1, false, false, 0); // second column tb2 = new Toolbar () { Name = "tb2", Orientation = Orientation.Vertical, ShowArrow = false, ToolbarStyle = ToolbarStyle.Icons, IconSize = IconSize.SmallToolbar }; PackStart (tb2, false, false, 0); PintaCore.Tools.ToolAdded += HandleToolAdded; ShowAll (); } // TODO: This should handle sorting the items public void AddItem (ToolButton item) { if (tb1.NItems <= tb2.NItems) tb1.Insert (item, tb1.NItems); else tb2.Insert (item, tb2.NItems); } private void HandleToolAdded (object sender, ToolEventArgs e) { AddItem (e.Tool.ToolItem); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/0000775000175000017500000000000011747026475020413 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs0000664000175000017500000001327611747026475027505 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta.Gui.Widgets { public partial class AnglePickerWidget { private Gtk.VBox vbox; private Gtk.HBox hbox1; private Gtk.Label label; private Gtk.HSeparator hseparator; private Gtk.HBox hbox2; private Pinta.Gui.Widgets.AnglePickerGraphic anglepickergraphic1; private Gtk.Alignment alignment1; private Gtk.SpinButton spin; private Gtk.Alignment alignment2; private Gtk.Button button; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.Gui.Widgets.AnglePickerWidget Stetic.BinContainer.Attach(this); this.Name = "Pinta.Gui.Widgets.AnglePickerWidget"; // Container child Pinta.Gui.Widgets.AnglePickerWidget.Gtk.Container+ContainerChild this.vbox = new Gtk.VBox(); this.vbox.Name = "vbox"; this.vbox.Spacing = 6; // Container child vbox.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label = new Gtk.Label(); this.label.Name = "label"; this.label.LabelProp = Mono.Unix.Catalog.GetString("label1"); this.hbox1.Add(this.label); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.label])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparator = new Gtk.HSeparator(); this.hseparator.Name = "hseparator"; this.hbox1.Add(this.hseparator); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.hseparator])); w2.Position = 1; this.vbox.Add(this.hbox1); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox[this.hbox1])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.anglepickergraphic1 = new Pinta.Gui.Widgets.AnglePickerGraphic(); this.anglepickergraphic1.Name = "anglepickergraphic1"; this.anglepickergraphic1.Value = 0; this.anglepickergraphic1.ValueDouble = 0; this.hbox2.Add(this.anglepickergraphic1); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox2[this.anglepickergraphic1])); w4.Position = 0; w4.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.alignment1 = new Gtk.Alignment(0.5F, 0F, 1F, 0F); this.alignment1.Name = "alignment1"; // Container child alignment1.Gtk.Container+ContainerChild this.spin = new Gtk.SpinButton(0, 360, 1); this.spin.CanFocus = true; this.spin.Name = "spin"; this.spin.Adjustment.PageIncrement = 10; this.spin.ClimbRate = 1; this.spin.Numeric = true; this.alignment1.Add(this.spin); this.hbox2.Add(this.alignment1); Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.hbox2[this.alignment1])); w6.Position = 1; w6.Expand = false; w6.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.alignment2 = new Gtk.Alignment(0.5F, 0F, 1F, 0F); this.alignment2.Name = "alignment2"; // Container child alignment2.Gtk.Container+ContainerChild this.button = new Gtk.Button(); this.button.WidthRequest = 28; this.button.HeightRequest = 24; this.button.CanFocus = true; this.button.Name = "button"; this.button.UseUnderline = true; // Container child button.Gtk.Container+ContainerChild Gtk.Alignment w7 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w8 = new Gtk.HBox(); w8.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w9 = new Gtk.Image(); w9.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-go-back", Gtk.IconSize.Menu, 16); w8.Add(w9); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w11 = new Gtk.Label(); w8.Add(w11); w7.Add(w8); this.button.Add(w7); this.alignment2.Add(this.button); this.hbox2.Add(this.alignment2); Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.hbox2[this.alignment2])); w16.Position = 2; w16.Expand = false; w16.Fill = false; this.vbox.Add(this.hbox2); Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.vbox[this.hbox2])); w17.Position = 1; w17.Expand = false; w17.Fill = false; this.Add(this.vbox); if ((this.Child != null)) { this.Child.ShowAll(); } this.Hide(); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ColorGradientWidget.cs0000664000175000017500000000156211747026475030050 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Gui.Widgets { public partial class ColorGradientWidget { private global::Gtk.EventBox eventbox; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Gui.Widgets.ColorGradientWidget global::Stetic.BinContainer.Attach (this); this.CanFocus = true; this.Events = ((global::Gdk.EventMask)(1534)); this.Name = "Pinta.Gui.Widgets.ColorGradientWidget"; // Container child Pinta.Gui.Widgets.ColorGradientWidget.Gtk.Container+ContainerChild this.eventbox = new global::Gtk.EventBox (); this.eventbox.Events = ((global::Gdk.EventMask)(790)); this.eventbox.Name = "eventbox"; this.eventbox.VisibleWindow = false; this.Add (this.eventbox); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ColorPanelWidget.cs0000664000175000017500000000146711747026475027356 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Gui.Widgets { public partial class ColorPanelWidget { private global::Gtk.EventBox eventbox; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Gui.Widgets.ColorPanelWidget global::Stetic.BinContainer.Attach (this); this.HeightRequest = 24; this.Name = "Pinta.Gui.Widgets.ColorPanelWidget"; // Container child Pinta.Gui.Widgets.ColorPanelWidget.Gtk.Container+ContainerChild this.eventbox = new global::Gtk.EventBox (); this.eventbox.Events = ((global::Gdk.EventMask)(256)); this.eventbox.Name = "eventbox"; this.eventbox.VisibleWindow = false; this.Add (this.eventbox); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs0000664000175000017500000000535011747026475027023 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta.Gui.Widgets { public partial class ComboBoxWidget { private Gtk.VBox vbox2; private Gtk.HBox hbox1; private Gtk.Label label; private Gtk.HSeparator hseparator1; private Gtk.ComboBox combobox; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.Gui.Widgets.ComboBoxWidget Stetic.BinContainer.Attach(this); this.Name = "Pinta.Gui.Widgets.ComboBoxWidget"; // Container child Pinta.Gui.Widgets.ComboBoxWidget.Gtk.Container+ContainerChild this.vbox2 = new Gtk.VBox(); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label = new Gtk.Label(); this.label.Name = "label"; this.label.LabelProp = Mono.Unix.Catalog.GetString("label"); this.hbox1.Add(this.label); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.label])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparator1 = new Gtk.HSeparator(); this.hseparator1.Name = "hseparator1"; this.hbox1.Add(this.hseparator1); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.hseparator1])); w2.Position = 1; this.vbox2.Add(this.hbox1); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.combobox = Gtk.ComboBox.NewText(); this.combobox.Name = "combobox"; this.vbox2.Add(this.combobox); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.vbox2[this.combobox])); w4.Position = 1; w4.Expand = false; w4.Fill = false; this.Add(this.vbox2); if ((this.Child != null)) { this.Child.ShowAll(); } this.Hide(); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs0000664000175000017500000001220111747026475030471 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta.Gui.Widgets { public partial class HScaleSpinButtonWidget { private Gtk.VBox vbox; private Gtk.HBox hbox1; private Gtk.Label label; private Gtk.HSeparator hseparator; private Gtk.HBox hbox2; private Gtk.HScale hscale; private Gtk.SpinButton spin; private Gtk.Button button; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.Gui.Widgets.HScaleSpinButtonWidget Stetic.BinContainer.Attach(this); this.Name = "Pinta.Gui.Widgets.HScaleSpinButtonWidget"; // Container child Pinta.Gui.Widgets.HScaleSpinButtonWidget.Gtk.Container+ContainerChild this.vbox = new Gtk.VBox(); this.vbox.Name = "vbox"; this.vbox.Spacing = 6; // Container child vbox.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label = new Gtk.Label(); this.label.Name = "label"; this.label.LabelProp = Mono.Unix.Catalog.GetString("label1"); this.hbox1.Add(this.label); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.label])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparator = new Gtk.HSeparator(); this.hseparator.Name = "hseparator"; this.hbox1.Add(this.hseparator); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.hseparator])); w2.Position = 1; this.vbox.Add(this.hbox1); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox[this.hbox1])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.hscale = new Gtk.HScale(null); this.hscale.CanFocus = true; this.hscale.Name = "hscale"; this.hscale.Adjustment.Upper = 100; this.hscale.Adjustment.PageIncrement = 10; this.hscale.Adjustment.StepIncrement = 1; this.hscale.DrawValue = false; this.hscale.Digits = 0; this.hscale.ValuePos = ((Gtk.PositionType)(2)); this.hbox2.Add(this.hscale); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox2[this.hscale])); w4.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.spin = new Gtk.SpinButton(0, 100, 1); this.spin.CanFocus = true; this.spin.Name = "spin"; this.spin.Adjustment.PageIncrement = 10; this.spin.ClimbRate = 1; this.spin.Numeric = true; this.hbox2.Add(this.spin); Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.hbox2[this.spin])); w5.Position = 1; w5.Expand = false; w5.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.button = new Gtk.Button(); this.button.CanFocus = true; this.button.Name = "button"; this.button.UseUnderline = true; // Container child button.Gtk.Container+ContainerChild Gtk.Alignment w6 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w7 = new Gtk.HBox(); w7.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w8 = new Gtk.Image(); w8.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-go-back", Gtk.IconSize.Menu, 16); w7.Add(w8); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w10 = new Gtk.Label(); w7.Add(w10); w6.Add(w7); this.button.Add(w6); this.hbox2.Add(this.button); Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.hbox2[this.button])); w14.Position = 2; w14.Expand = false; w14.Fill = false; this.vbox.Add(this.hbox2); Gtk.Box.BoxChild w15 = ((Gtk.Box.BoxChild)(this.vbox[this.hbox2])); w15.Position = 1; w15.Expand = false; w15.Fill = false; this.Add(this.vbox); if ((this.Child != null)) { this.Child.ShowAll(); } this.Hide(); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HistogramWidget.cs0000664000175000017500000000070511747026475027247 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Gui.Widgets { public partial class HistogramWidget { protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Gui.Widgets.HistogramWidget global::Stetic.BinContainer.Attach (this); this.Name = "Pinta.Gui.Widgets.HistogramWidget"; if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs0000664000175000017500000002153511747026475027545 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Pinta.Gui.Widgets { public partial class PointPickerWidget { private Gtk.VBox vbox1; private Gtk.HBox hbox1; private Gtk.Label label; private Gtk.HSeparator hseparator1; private Gtk.HBox hbox2; private Pinta.Gui.Widgets.PointPickerGraphic pointpickergraphic1; private Gtk.Table table1; private Gtk.Button button1; private Gtk.Button button2; private Gtk.Label label2; private Gtk.Label label3; private Gtk.SpinButton spinX; private Gtk.SpinButton spinY; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget Pinta.Gui.Widgets.PointPickerWidget Stetic.BinContainer.Attach(this); this.Name = "Pinta.Gui.Widgets.PointPickerWidget"; // Container child Pinta.Gui.Widgets.PointPickerWidget.Gtk.Container+ContainerChild this.vbox1 = new Gtk.VBox(); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.hbox1 = new Gtk.HBox(); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label = new Gtk.Label(); this.label.Name = "label"; this.label.LabelProp = Mono.Unix.Catalog.GetString("label"); this.hbox1.Add(this.label); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.label])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparator1 = new Gtk.HSeparator(); this.hseparator1.Name = "hseparator1"; this.hbox1.Add(this.hseparator1); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.hseparator1])); w2.Position = 1; this.vbox1.Add(this.hbox1); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.pointpickergraphic1 = new Pinta.Gui.Widgets.PointPickerGraphic(); this.pointpickergraphic1.Name = "pointpickergraphic1"; this.hbox2.Add(this.pointpickergraphic1); Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox2[this.pointpickergraphic1])); w4.Position = 0; w4.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.table1 = new Gtk.Table(((uint)(2)), ((uint)(3)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.button1 = new Gtk.Button(); this.button1.CanFocus = true; this.button1.Name = "button1"; this.button1.UseUnderline = true; // Container child button1.Gtk.Container+ContainerChild Gtk.Alignment w5 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w6 = new Gtk.HBox(); w6.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w7 = new Gtk.Image(); w7.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-go-back", Gtk.IconSize.Menu, 16); w6.Add(w7); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w9 = new Gtk.Label(); w6.Add(w9); w5.Add(w6); this.button1.Add(w5); this.table1.Add(this.button1); Gtk.Table.TableChild w13 = ((Gtk.Table.TableChild)(this.table1[this.button1])); w13.LeftAttach = ((uint)(2)); w13.RightAttach = ((uint)(3)); w13.XOptions = ((Gtk.AttachOptions)(4)); w13.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.button2 = new Gtk.Button(); this.button2.CanFocus = true; this.button2.Name = "button2"; this.button2.UseUnderline = true; // Container child button2.Gtk.Container+ContainerChild Gtk.Alignment w14 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w15 = new Gtk.HBox(); w15.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w16 = new Gtk.Image(); w16.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-go-back", Gtk.IconSize.Menu, 16); w15.Add(w16); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w18 = new Gtk.Label(); w15.Add(w18); w14.Add(w15); this.button2.Add(w14); this.table1.Add(this.button2); Gtk.Table.TableChild w22 = ((Gtk.Table.TableChild)(this.table1[this.button2])); w22.TopAttach = ((uint)(1)); w22.BottomAttach = ((uint)(2)); w22.LeftAttach = ((uint)(2)); w22.RightAttach = ((uint)(3)); w22.XOptions = ((Gtk.AttachOptions)(4)); w22.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label2 = new Gtk.Label(); this.label2.Name = "label2"; this.label2.LabelProp = "X:"; this.table1.Add(this.label2); Gtk.Table.TableChild w23 = ((Gtk.Table.TableChild)(this.table1[this.label2])); w23.XOptions = ((Gtk.AttachOptions)(4)); w23.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label3 = new Gtk.Label(); this.label3.Name = "label3"; this.label3.LabelProp = "Y:"; this.table1.Add(this.label3); Gtk.Table.TableChild w24 = ((Gtk.Table.TableChild)(this.table1[this.label3])); w24.TopAttach = ((uint)(1)); w24.BottomAttach = ((uint)(2)); w24.XOptions = ((Gtk.AttachOptions)(4)); w24.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.spinX = new Gtk.SpinButton(0, 100, 1); this.spinX.CanFocus = true; this.spinX.Name = "spinX"; this.spinX.Adjustment.PageIncrement = 10; this.spinX.ClimbRate = 1; this.spinX.Numeric = true; this.table1.Add(this.spinX); Gtk.Table.TableChild w25 = ((Gtk.Table.TableChild)(this.table1[this.spinX])); w25.LeftAttach = ((uint)(1)); w25.RightAttach = ((uint)(2)); w25.XOptions = ((Gtk.AttachOptions)(4)); w25.YOptions = ((Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.spinY = new Gtk.SpinButton(0, 100, 1); this.spinY.CanFocus = true; this.spinY.Name = "spinY"; this.spinY.Adjustment.PageIncrement = 10; this.spinY.ClimbRate = 1; this.spinY.Numeric = true; this.table1.Add(this.spinY); Gtk.Table.TableChild w26 = ((Gtk.Table.TableChild)(this.table1[this.spinY])); w26.TopAttach = ((uint)(1)); w26.BottomAttach = ((uint)(2)); w26.LeftAttach = ((uint)(1)); w26.RightAttach = ((uint)(2)); w26.XOptions = ((Gtk.AttachOptions)(4)); w26.YOptions = ((Gtk.AttachOptions)(4)); this.hbox2.Add(this.table1); Gtk.Box.BoxChild w27 = ((Gtk.Box.BoxChild)(this.hbox2[this.table1])); w27.Position = 1; w27.Expand = false; w27.Fill = false; this.vbox1.Add(this.hbox2); Gtk.Box.BoxChild w28 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2])); w28.Position = 1; w28.Expand = false; w28.Fill = false; this.Add(this.vbox1); if ((this.Child != null)) { this.Child.ShowAll(); } this.Hide(); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs0000664000175000017500000000573011747026475027720 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Pinta.Gui.Widgets { public partial class ReseedButtonWidget { private global::Gtk.VBox vbox; private global::Gtk.HBox hbox1; private global::Gtk.Label label; private global::Gtk.HSeparator hseparator; private global::Gtk.HBox hbox2; private global::Gtk.Button button1; private global::Gtk.Alignment alignment2; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget Pinta.Gui.Widgets.ReseedButtonWidget global::Stetic.BinContainer.Attach (this); this.Name = "Pinta.Gui.Widgets.ReseedButtonWidget"; // Container child Pinta.Gui.Widgets.ReseedButtonWidget.Gtk.Container+ContainerChild this.vbox = new global::Gtk.VBox (); this.vbox.Name = "vbox"; this.vbox.Spacing = 6; // Container child vbox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label = new global::Gtk.Label (); this.label.Name = "label"; this.label.LabelProp = global::Mono.Unix.Catalog.GetString ("Random Noise"); this.hbox1.Add (this.label); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.label])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hseparator = new global::Gtk.HSeparator (); this.hseparator.Name = "hseparator"; this.hbox1.Add (this.hseparator); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hseparator])); w2.Position = 1; this.vbox.Add (this.hbox1); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox[this.hbox1])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.button1 = new global::Gtk.Button (); this.button1.WidthRequest = 88; this.button1.CanFocus = true; this.button1.Name = "button1"; this.button1.UseUnderline = true; this.button1.Label = global::Mono.Unix.Catalog.GetString ("Reseed"); this.hbox2.Add (this.button1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.button1])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.alignment2 = new global::Gtk.Alignment (0.5f, 0f, 1f, 0f); this.alignment2.Name = "alignment2"; this.hbox2.Add (this.alignment2); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.alignment2])); w5.Position = 1; this.vbox.Add (this.hbox2); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox[this.hbox2])); w6.Position = 1; w6.Expand = false; w6.Fill = false; this.Add (this.vbox); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/generated.cs0000664000175000017500000001040511747026475022700 0ustar00cameroncameron00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Stetic { internal class Gui { private static bool initialized; internal static void Initialize(Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; } } } internal class BinContainer { private Gtk.Widget child; private Gtk.UIManager uimanager; public static BinContainer Attach(Gtk.Bin bin) { BinContainer bc = new BinContainer(); bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested); bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated); bin.Added += new Gtk.AddedHandler(bc.OnAdded); return bc; } private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) { if ((this.child != null)) { args.Requisition = this.child.SizeRequest(); } } private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) { if ((this.child != null)) { this.child.Allocation = args.Allocation; } } private void OnAdded(object sender, Gtk.AddedArgs args) { this.child = args.Widget; } public void SetUiManager(Gtk.UIManager uim) { this.uimanager = uim; this.child.Realized += new System.EventHandler(this.OnRealized); } private void OnRealized(object sender, System.EventArgs args) { if ((this.uimanager != null)) { Gtk.Widget w; w = this.child.Toplevel; if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) { ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup); this.uimanager = null; } } } } internal class IconLoader { public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size, int sz) { Gdk.Pixbuf res = widget.RenderIcon(name, size, null); if ((res != null)) { return res; } else { try { return Gtk.IconTheme.Default.LoadIcon(name, sz, 0); } catch (System.Exception ) { if ((name != "gtk-missing-image")) { return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size, sz); } else { Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz); Gdk.GC gc = new Gdk.GC(pmap); gc.RgbFgColor = new Gdk.Color(255, 255, 255); pmap.DrawRectangle(gc, true, 0, 0, sz, sz); gc.RgbFgColor = new Gdk.Color(0, 0, 0); pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1)); gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color(255, 0, 0); pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); } } } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup(System.Type type) { return Stetic.ActionGroups.GetActionGroup(type.FullName); } public static Gtk.ActionGroup GetActionGroup(string name) { return null; } } } pinta-1.3/Pinta.Gui.Widgets/gtk-gui/gui.stetic0000664000175000017500000006634111747026475022426 0ustar00cameroncameron00000000000000 .. 2.12 False True ExposureMask, PointerMotionMask, PointerMotionHintMask, ButtonMotionMask, Button1MotionMask, Button2MotionMask, Button3MotionMask, ButtonPressMask, KeyPressMask ExposureMask, PointerMotionMask, ButtonMotionMask, ButtonPressMask, ButtonReleaseMask False 24 False ButtonPressMask False False 6 6 label1 0 True False False 1 True 0 True False False 6 0 0 0 False False 0 0 True 360 10 1 1 True 1 True False False 0 0 28 24 True TextAndIcon stock:gtk-go-back Menu True 2 True False False 1 True False False False 6 6 label 0 True False False 1 True 0 True False False 6 0 False False 2 3 6 6 True TextAndIcon stock:gtk-go-back Menu True 2 3 True Fill Fill False True False False True False True TextAndIcon stock:gtk-go-back Menu True 1 2 2 3 True Fill Fill False True False False True False X: True Fill Fill False True False False True False Y: 1 2 True Fill Fill False True False False True False True 100 10 1 1 True 1 2 True Fill Fill False True False False True False True 100 10 1 1 True 1 2 1 2 True Fill Fill False True False False True False 1 True False False 1 True False False False 6 6 label 0 True False False 1 True 0 True False False True 1 True False False False 6 6 Random Noise 0 True False False 1 True 0 True False False 6 88 True TextOnly Reseed True 0 True False False 0 0 1 True 1 True False False False 6 6 label1 0 True False False 1 True 0 True False False 6 True 100 10 1 False 0 Top 0 True True 100 10 1 1 True 1 True False False True TextAndIcon stock:gtk-go-back Menu True 2 True False False 1 True False False pinta-1.3/Pinta.Resources/0000775000175000017500000000000011747026475016665 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Resources/.gitignore0000664000175000017500000000001311747026475020647 0ustar00cameroncameron00000000000000/bin/ /obj/pinta-1.3/Pinta.Resources/Makefile.am0000664000175000017500000001400211747026475020716 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta.Resources TARGET = library REFERENCES = \ -r:System \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) SOURCES = \ ResourceManager.cs \ AssemblyInfo.cs RESOURCES = \ Resources/Tools.CloneStamp.png \ Resources/Tools.FreeformShape.png \ Resources/Tools.Line.png \ Resources/Tools.Rectangle.png \ Resources/Tools.RoundedRectangle.png \ Resources/Tools.Text.png \ Resources/Tools.LassoSelect.png \ Resources/Tools.MagicWand.png \ Resources/Tools.MoveSelection.png \ Resources/Tools.Move.png \ Resources/Tools.PaintBucket.png \ Resources/Tools.Pan.png \ Resources/Tools.Pencil.png \ Resources/Tools.Recolor.png \ Resources/Tools.RectangleSelect.png \ Resources/Tools.Zoom.png \ Resources/Tools.EllipseSelect.png \ Resources/Tools.Eraser.png \ Resources/Tools.Gradient.png \ Resources/Tools.ColorPicker.png \ Resources/Tools.Ellipse.png \ Resources/LayersWidget.Visible.png \ Resources/LayersWidget.Hidden.png \ Resources/Toolbar.MinusButton.png \ Resources/Toolbar.PlusButton.png \ Resources/ColorPalette.SwapIcon.png \ Resources/Tools.Paintbrush.png \ Resources/StatusBar.CursorXY.png \ Resources/Menu.Layers.AddNewLayer.png \ Resources/Menu.Layers.DeleteLayer.png \ Resources/Menu.Layers.DuplicateLayer.png \ Resources/Menu.Layers.MergeLayerDown.png \ Resources/Menu.Layers.MoveLayerDown.png \ Resources/Menu.Layers.MoveLayerUp.png \ Resources/Pinta.png \ Resources/Menu.Edit.Deselect.png \ Resources/Menu.Layers.FlipHorizontal.png \ Resources/Menu.Layers.FlipVertical.png \ Resources/Menu.Layers.ImportFromFile.png \ Resources/Menu.Edit.EraseSelection.png \ Resources/Menu.Edit.FillSelection.png \ Resources/Menu.Edit.InvertSelection.png \ Resources/Menu.Edit.SelectAll.png \ Resources/Menu.View.ActualSize.png \ Resources/Menu.View.Grid.png \ Resources/Menu.View.Rulers.png \ Resources/Menu.View.ZoomIn.png \ Resources/Menu.View.ZoomOut.png \ Resources/Menu.View.ZoomToSelection.png \ Resources/Menu.View.ZoomToWindow.png \ Resources/Menu.Image.CanvasSize.png \ Resources/Menu.Image.Crop.png \ Resources/Menu.Image.Flatten.png \ Resources/Menu.Image.FlipHorizontal.png \ Resources/Menu.Image.FlipVertical.png \ Resources/Menu.Image.Resize.png \ Resources/Menu.Image.Rotate180CW.png \ Resources/Menu.Image.Rotate90CCW.png \ Resources/Menu.Image.Rotate90CW.png \ Resources/Menu.Layers.LayerProperties.png \ Resources/Menu.Layers.RotateZoom.png \ Resources/Menu.Adjustments.AutoLevel.png \ Resources/Menu.Adjustments.BlackAndWhite.png \ Resources/Menu.Adjustments.BrightnessAndContrast.png \ Resources/Menu.Adjustments.Curves.png \ Resources/Menu.Adjustments.HueAndSaturation.png \ Resources/Menu.Adjustments.InvertColors.png \ Resources/Menu.Adjustments.Levels.png \ Resources/Menu.Adjustments.Sepia.png \ Resources/Menu.Help.Bug.png \ Resources/Menu.Help.Website.png \ Resources/ResizeCanvas.Image.png \ Resources/ResizeCanvas.DownArrow.png \ Resources/ResizeCanvas.LeftArrow.png \ Resources/ResizeCanvas.RightArrow.png \ Resources/ResizeCanvas.UpArrow.png \ Resources/ResizeCanvas.NorthEast.png \ Resources/ResizeCanvas.NorthWest.png \ Resources/ResizeCanvas.SouthEast.png \ Resources/ResizeCanvas.SouthWest.png \ Resources/Menu.Adjustments.Posterize.png \ Resources/Toolbar.Bold.png \ Resources/Toolbar.CenterAlignment.png \ Resources/Toolbar.Italic.png \ Resources/Toolbar.LeftAlignment.png \ Resources/Toolbar.RightAlignment.png \ Resources/Toolbar.Underline.png \ Resources/Menu.Effects.Artistic.InkSketch.png \ Resources/Menu.Effects.Artistic.OilPainting.png \ Resources/Menu.Effects.Artistic.PencilSketch.png \ Resources/Menu.Effects.Blurs.Fragment.png \ Resources/Menu.Effects.Blurs.GaussianBlur.png \ Resources/Menu.Effects.Blurs.MotionBlur.png \ Resources/Menu.Effects.Blurs.RadialBlur.png \ Resources/Menu.Effects.Blurs.SurfaceBlur.png \ Resources/Menu.Effects.Blurs.Unfocus.png \ Resources/Menu.Effects.Blurs.ZoomBlur.png \ Resources/Menu.Effects.Photo.Glow.png \ Resources/Menu.Effects.Photo.RedEyeRemove.png \ Resources/Menu.Effects.Photo.Sharpen.png \ Resources/Menu.Effects.Photo.SoftenPortrait.png \ Resources/Menu.Effects.Stylize.EdgeDetect.png \ Resources/Menu.Effects.Render.Clouds.png \ Resources/Menu.Effects.Render.JuliaFractal.png \ Resources/Menu.Effects.Render.MandelbrotFractal.png \ Resources/Menu.Effects.Distort.Bulge.png \ Resources/Menu.Effects.Noise.Median.png \ Resources/Menu.Effects.Noise.ReduceNoise.png \ Resources/Menu.Effects.Noise.AddNoise.png \ Resources/Menu.Effects.Stylize.Outline.png \ Resources/Menu.Effects.Distort.Dents.png \ Resources/Menu.Effects.Distort.PolarInversion.png \ Resources/Menu.Effects.Distort.Twist.png \ Resources/Menu.Effects.Distort.Tile.png \ Resources/Menu.Effects.Distort.Pixelate.png \ Resources/Menu.Effects.Distort.FrostedGlass.png \ Resources/Menu.Effects.Stylize.Relief.png \ Resources/Menu.Effects.Stylize.Emboss.png \ Resources/Toolbar.ConicalGradient.png \ Resources/Toolbar.DiamondGradient.png \ Resources/Toolbar.LinearGradient.png \ Resources/Toolbar.LinearReflectedGradient.png \ Resources/Toolbar.RadialGradient.png \ Resources/Toolbar.AntiAliasingDisabledIcon.png \ Resources/Toolbar.AntiAliasingEnabledIcon.png \ Resources/Toolbar.BlendingEnabledIcon.png \ Resources/Toolbar.BlendingOverwriteIcon.png \ Resources/ShapeTool.OutlineFill.png \ Resources/About.Image.png \ Resources/About.ImageSep.png \ Resources/About.MonoPowered.png \ Resources/About.ImageTop.png \ Resources/Menu.Help.Translate.png \ Resources/ShapeTool.Fill.png \ Resources/ShapeTool.Outline.png \ Resources/Toolbar.ColorMode.png \ Resources/Toolbar.TransparentMode.png \ Resources/Cursor.PaintBucket.png \ Resources/Cursor.LassoSelect.png \ Resources/Cursor.Text.png \ Resources/Cursor.Pencil.png \ Resources/Cursor.Line.png \ Resources/Cursor.ColorPicker.png \ Resources/Cursor.Rectangle.png \ Resources/Cursor.RoundedRectangle.png \ Resources/Cursor.FreeFormShape.png \ Resources/Cursor.CloneStamp.png \ Resources/Cursor.CloneStampSetSource.png \ Resources/Cursor.Recolor.png pinta-1.3/Pinta.Resources/Pinta.Resources.csproj0000664000175000017500000006530311747026475023142 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {50AFF341-655E-45EF-83CA-58F8254E4C8B} Library Pinta.Resources Pinta.Resources 65001 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin DEBUG prompt 4 false AllRules.ruleset none false ..\bin prompt 4 false AllRules.ruleset Tools.CloneStamp.png Tools.FreeformShape.png Tools.Line.png Tools.Rectangle.png Tools.RoundedRectangle.png Tools.Text.png Cursor.ColorPicker.png Cursor.Text.png Cursor.Pencil.png Cursor.Line.png Tools.LassoSelect.png Cursor.LassoSelect.png Cursor.Rectangle.png Cursor.RoundedRectangle.png Cursor.FreeformShape.png Cursor.CloneStamp.png Cursor.CloneStampSetSource.png Cursor.Recolor.png Tools.MagicWand.png Tools.MoveSelection.png Tools.Move.png Tools.PaintBucket.png Cursor.PaintBucket.png Tools.Pan.png Tools.Pencil.png Tools.Recolor.png Tools.RectangleSelect.png Tools.Zoom.png Tools.EllipseSelect.png Tools.Eraser.png Tools.Gradient.png Tools.ColorPicker.png Tools.Ellipse.png LayersWidget.Visible.png LayersWidget.Hidden.png Toolbar.MinusButton.png Toolbar.PlusButton.png ColorPalette.SwapIcon.png Tools.Paintbrush.png StatusBar.CursorXY.png Menu.Layers.AddNewLayer.png Menu.Layers.DeleteLayer.png Menu.Layers.DuplicateLayer.png Menu.Layers.MergeLayerDown.png Menu.Layers.MoveLayerDown.png Menu.Layers.MoveLayerUp.png true Pinta.png Menu.Edit.Deselect.png Menu.Layers.FlipHorizontal.png Menu.Layers.FlipVertical.png Menu.Layers.ImportFromFile.png Menu.Edit.EraseSelection.png Menu.Edit.FillSelection.png Menu.Edit.InvertSelection.png Menu.Edit.SelectAll.png Menu.View.ActualSize.png Menu.View.Grid.png Menu.View.Rulers.png Menu.View.ZoomIn.png Menu.View.ZoomOut.png Menu.View.ZoomToSelection.png Menu.View.ZoomToWindow.png Menu.Image.CanvasSize.png Menu.Image.Crop.png Menu.Image.Flatten.png Menu.Image.FlipHorizontal.png Menu.Image.FlipVertical.png Menu.Image.Resize.png Menu.Image.Rotate180CW.png Menu.Image.Rotate90CCW.png Menu.Image.Rotate90CW.png Menu.Layers.LayerProperties.png Menu.Layers.RotateZoom.png Menu.Adjustments.AutoLevel.png Menu.Adjustments.BlackAndWhite.png Menu.Adjustments.BrightnessAndContrast.png Menu.Adjustments.Curves.png Menu.Adjustments.HueAndSaturation.png Menu.Adjustments.InvertColors.png Menu.Adjustments.Levels.png Menu.Adjustments.Sepia.png Menu.Help.Bug.png Menu.Help.Website.png ResizeCanvas.Image.png ResizeCanvas.DownArrow.png ResizeCanvas.LeftArrow.png ResizeCanvas.RightArrow.png ResizeCanvas.UpArrow.png ResizeCanvas.NorthEast.png ResizeCanvas.NorthWest.png ResizeCanvas.SouthEast.png ResizeCanvas.SouthWest.png Menu.Adjustments.Posterize.png Toolbar.Bold.png Toolbar.CenterAlignment.png Toolbar.Italic.png Toolbar.LeftAlignment.png Toolbar.RightAlignment.png Toolbar.Underline.png Menu.Effects.Artistic.InkSketch.png Menu.Effects.Artistic.OilPainting.png Menu.Effects.Artistic.PencilSketch.png Menu.Effects.Blurs.Fragment.png Menu.Effects.Blurs.GaussianBlur.png Menu.Effects.Blurs.MotionBlur.png Menu.Effects.Blurs.RadialBlur.png Menu.Effects.Blurs.SurfaceBlur.png Menu.Effects.Blurs.Unfocus.png Menu.Effects.Blurs.ZoomBlur.png Menu.Effects.Photo.Glow.png Menu.Effects.Photo.RedEyeRemove.png Menu.Effects.Photo.Sharpen.png Menu.Effects.Photo.SoftenPortrait.png Menu.Effects.Stylize.EdgeDetect.png Menu.Effects.Render.Clouds.png Menu.Effects.Render.JuliaFractal.png Menu.Effects.Render.MandelbrotFractal.png Menu.Effects.Distort.Bulge.png Menu.Effects.Noise.Median.png Menu.Effects.Noise.ReduceNoise.png Menu.Effects.Noise.AddNoise.png Menu.Effects.Stylize.Outline.png Menu.Effects.Distort.Dents.png Menu.Effects.Distort.PolarInversion.png Menu.Effects.Distort.Twist.png Menu.Effects.Distort.Tile.png Menu.Effects.Distort.Pixelate.png Menu.Effects.Distort.FrostedGlass.png Menu.Effects.Stylize.Relief.png Menu.Effects.Stylize.Emboss.png Toolbar.ConicalGradient.png Toolbar.DiamondGradient.png Toolbar.LinearGradient.png Toolbar.LinearReflectedGradient.png Toolbar.RadialGradient.png Toolbar.AntiAliasingDisabledIcon.png Toolbar.AntiAliasingEnabledIcon.png Toolbar.BlendingEnabledIcon.png Toolbar.BlendingOverwriteIcon.png ShapeTool.OutlineFill.png About.Image.png About.ImageSep.png About.MonoPowered.png About.ImageTop.png Menu.Help.Translate.png Toolbar.ColorMode.png Toolbar.TransparentMode.png ShapeTool.Fill.png ShapeTool.Outline.png Menu.Effects.Default.png Pinta-16.png Pinta-32.png Menu.Edit.Addins.png TextTool.FillBackground.png False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true pinta-1.3/Pinta.Resources/Properties/0000775000175000017500000000000011747026475021021 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Resources/Properties/AssemblyInfo.cs0000664000175000017500000000172611747026475023751 0ustar00cameroncameron00000000000000using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("Pinta.Resources")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.3.0.0")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] pinta-1.3/Pinta.Resources/ResourceManager.cs0000664000175000017500000000570611747026475022306 0ustar00cameroncameron00000000000000// // ResourceLoader.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gdk; namespace Pinta.Resources { public static class ResourceLoader { public static Pixbuf GetIcon (string name, int size) { try { // First see if it's a built-in gtk icon, like gtk-new if (Gtk.IconTheme.Default.HasIcon (name)) return Gtk.IconTheme.Default.LoadIcon (name, size, Gtk.IconLookupFlags.UseBuiltin); // Otherwise, get it from our embedded resources. return Gdk.Pixbuf.LoadFromResource (name); } catch (Exception ex) { // Ensure that we don't crash if an icon is missing for some reason. System.Console.Error.WriteLine (ex.Message); // Try to return gtk's default missing image if (name != Gtk.Stock.MissingImage) return GetIcon (Gtk.Stock.MissingImage, size); // If gtk is missing it's "missing image", we'll create one on the fly return CreateMissingImage (size); } } // From MonoDevelop: // https://github.com/mono/monodevelop/blob/master/main/src/core/MonoDevelop.Ide/gtk-gui/generated.cs private static Pixbuf CreateMissingImage (int size) { var pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, size, size); var gc = new Gdk.GC (pmap); gc.RgbFgColor = new Gdk.Color (255, 255, 255); pmap.DrawRectangle (gc, true, 0, 0, size, size); gc.RgbFgColor = new Gdk.Color (0, 0, 0); pmap.DrawRectangle (gc, false, 0, 0, (size - 1), (size - 1)); gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color (255, 0, 0); pmap.DrawLine (gc, (size / 4), (size / 4), ((size - 1) - (size / 4)), ((size - 1) - (size / 4))); pmap.DrawLine (gc, ((size - 1) - (size / 4)), (size / 4), (size / 4), ((size - 1) - (size / 4))); return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, size, size); } } } pinta-1.3/Pinta.Resources/Resources/0000775000175000017500000000000011747026475020637 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Resources/Resources/About.Image.png0000664000175000017500000010773111747026475023451 0ustar00cameroncameron00000000000000PNG  IHDRh$gAMA7tEXtSoftwareAdobe ImageReadyqe<>PLTE6BVG_|Ha~CYs?Pi@RkF^|CWr8E[>Rj9H_7DXBWs=Og:IaD[wBVqIcOh5@T@TmAUp=Mf5=OAUn@Qjj!IDATxb  @&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&QhX@&Qzl8͖PX\(Ա=ЙZǃ=:#`O:fwLbPZXKh v~v/g\2;'E _/WV +S D8a(EYEQQ+4]WUULIqfP1I HCl*f%c&a`4(OK2=xN_q1ikf醵Ry`}n_% u=A%Zd^< F7̟74 |me~^V(cvA)@P$ :!@Dg2s gk Rsc?}W~|}8. a252FЅ@k,$١^ `1>d O&zMKZ﬍D [H#"4!ST]FۓlS?# \(OhC2TlF"#o:T !0X8R2*aT<VҒƺZ<V( 7hD6!SI۠:H Z${'w 3o6`'X`,uskl#ߠ-Z iF4䂍Oze p$هOb/X ]חRXm -SFfm@F&,Q]Umܐٸۭ1X $GF?'8f<06"0NO'9!8N4F=L B:0GKe]P,xYApڠ6 RPVι#$eYo1PP ~a'H42nDkV QcY&JUUcXQKi|ÞR|Tl$-GFR'zץ*Ѯ %Fj\gISTZBQ`0Bp 3,@l聖ь-aG{1F3DyN(fg[:nA ’K[!҅BaU=AO D 43Y {!*|sq'ƞ fs`Ԁ ?@Oh/`pFll7Ji0pPa '!VRn(9IZLuUÅ0n"(jMbAq{q~yiCEdGEӅDU^[uQl]:Nac(@ @D4Hikͯ y2S#y@ A'AmK:mUa6`` ^@Q|?R gThR%|!GzHz_@bFuocʃJJP*2ANjXRwQH%oJ lDfE7`` h6c֠,hWn a 2Z ؀q5zRq:o:6uncnܑ~d|OGӁ0 Cc$P}ieANfv*m^T"yA'{ @w CAT1DER-k!J Fmgnbچ$R3?P?% V@*X=LL@ӕ# ¡#Vxhe;ɳKnr0aW{F"vR>f\LPng F"혦y"s/w͝3 p%sdK> 4 ˕e3:`͖\2N)#3O2-DV J" ! h L' nP.SG` :kJXZfM%O&KG ˉgbNI!c\`cqְ X{𻣷lK0jp@PD(و09ZRrwM5'O=pUHI_󑭍<fb>@<9gh? Di¨bM]Dyg!OaH-{oPO Ga / hx(B*j %dLtc)ܪ1Mq ʷrQ"I˟D03$;[] XG('DҮ h,t;k7.raL46q?Jgc ٬& DQ؅"n$ZDָ7ALus'*Zg 9nuL J =QD0"yawE=0cOB}D4*#c2jj3ciWtM'[5BޒXҪR(CGꮠcQn"~2N7ŏ|c"9 ٟ[cJR&ѾQ }I!Z'㹤':sbL𭎍XHJdW]쿛]uР,sia7ɯa Q!YD R&bQɭ$'Փ5dy{}!Oj}y}q[z 6ן A!QeJO(d_d0 4EMۚ2I;5~tQZʥ$ԛ!h$:d4#v p ɳq:0C~ kRwqṕnԬsq/6 Ɡ}ɹrP5>c4moE FqwBT0pIQɯ| @ T+"nI#"* ʛzA|7h@덨{9g^RJmRR_!@0Rd8"  %ڲ47PDjFB"e3!vg ڷJٔql(7jqJ:JϻL8vt9VhadwGjn{f֞Wwmfu3F5gu"x I2j i2AATQP<̡p r[[0F=`\Z(PRdEh"zP -1Ts/fEPs)4$rA+CKi(,bCɈ 3P y%q四Qmq"cdddlE~NK a6I;͎CsVvRP5ZO, gIr>'#d FxT"EM$Zhi F} •+!|ϋl#U6b/) ޕ̓)kBjHR^0|Rԣ^%[f DTFJ EĄU)¥f"}wq1mTz)~!90 [`іP h ʁ BaB08MT7lա$MUJZq"1)#J6]a;/mL\V$g Frk>NɁf*;jjbx!^b|3(є܆&*HxJ@L#=IWs#|[r4v- %p=x 2MXS4t&9Wy_貖 EnTF֢х$(jbAsf4rDDEaczDX{WzUáNT>}85?Gh +tp1醂nS1- <S5ΗYG}F[ 6fUBmBct%Ia`J=w}t n+ qpAuM\gcEK$.E&,JY1kyr_O{3fu~ܵĄ Cס76,/\̽,,o3N-g}Y(,Ԡ-:edPuN.VZb?{OӇX;4.9s{_|u(4,\D !RW:neQ< E_Y0vڊL-&Fm[ut&wo@[Q#EPlU]9ba<H/~bʓ4YcS֮!' U\0M,HIҩ c1ZW[7Q@==CJfQ(PʐradȃtJaY Du >i<PI~%R qQ낒1:wQ0zwGvagI`ilXkEU>J͇5W xG)u{2TJSF4#RסE2MDR@C"5a'LoZs|<1,0n$2> X¯>#YG8s̀-폤 61F; ?P[ET@k f:qԄ8t_qN+XAlv^ ("TWQޛmtzPƙy_YyD|4z^=0Dh1q}qFDX<*]<xߊ$3tܔAƖWJZZbDVhK{NJSƔhS#r!ҔU$`@ڹ@A9*O>Xa :H9!T" VUEĶ%1VJ)Bqr&L\ b;GkZ5 ! _t2D^RG !BxN!2ZQDw$VbBA#LKpP^mDact8AzrR<$>~c68èX)6چM(0eyd{XSق2/Gk]R ˹ yXִpI*fZc+vIGU%<̦6PbWI1^w<45G›z#B #U,O B Z濡1DŽ9_NFYg!!q6)WEחdIHFz#&ŷk⪛ 0x_}C(N7Kȸ|6Ep4:n}Q ocvsroj[:a :tł. ͸8/jXX^dhrY;are)K'w73p|Cȣaz-smJFԖHLr~6;ɜ7cEb$ E4$ 0ۮ\d۝GD^ZOs}冤l T 3*H88E(qeՆϐ4Ţ!yD19 TfNVd2yXlS܉+T)V OձڤC.թtKf_{V[ 0 d^&- JVȄ[Vڔ = 4,acMڑ-A ~cr!niUd"?(P \ 5g~M6IaXq( /%# ]tU2gWT6Ԉ^Q޲pbkuD)ݣ7edpX|/|oe:`3<⨷XV4֚d~֩IW|`ӊu 6b4QEe!1&)W5B wwo sXbP;*D2pWІ13 ! 95Ð \ypBAjvG@=_lA:=0,Tl+VfKDS| M%j6ƍaKwl%5˙:S{ߩ dy `v2ݞ+(GPk95+K~TWQxԟ=RzL6U?T5 y_]A 5KUPN*2TTq|, gr>_fͩBt"#͸ p HdSʝh[Rx>JL (Q4,CW,2 Ho,= `"^k.dmy|;*?B(a6Ô?F[(4n{"5߾7ym{A`ڑmKνrRͻq$9.mO5*6d=ϯCB$48Vrt9< @ @Dv3NIA.q$VJš>s/*#`zpʘvHeżn2U[mX)ص3 )F=BdlC!xFc{(s\k^O/3o, dF34 S5mts]XQb%UT>Y^AhA"DDauJic[*laF F=kWƭa2D:T|>`߹i1S'| ExZJRfUשm\:aP&_I;EQ]u<)*4p0 Px@6`yFEmM4Va N5 l@9یgG*.0K7E͊>X5݋q(stsUq= zMq+FabbvxC d:#)vtqZ Ȑr) Q&B+RL9?`a1% ڢ5Ww"qf+a >'N޼L6kH526w-' AQGzWϬk=+az|gi~VWq@LzN<[Ӯf#V1nB;dE^L2W=\$Pr8 0C\'E:eT%iA"A}>T  lqʂJ yXfלjgJ3խݜy8K._ 8.( zaH FBFi*\"IW^ϝiFmF;CqCVو{3<`_5Aޚ ],ZbCEbG+s&K5-OoҶO?Xva H*E'.X:U>9FK3z8&?7qFfrqݢti3_IM\H8Jk#/+B%E4̇1V\n5S>\Аm5kE^auNuHVS@%? @Ul h`Q+t}%/joXb hq)B:`/N%z;7$M u Ͱ;7sN 3H.&51|^KXiءۿgh"Dr9<>Q*C ~.P+ QM^t}Fx% s+ v];nJ_XvaЕBJ 6.H {&m*XA:ٝ:uOd!oRbՋ{ĹI4k:g3R>8dKQvE _.T*hDҾR+Ti҄VV"&'ސwBRۙD w3O16-cf&gqL$kt " ꐮ%p 10 E; -`e@ARђ)0'{ |TK1wԺ%LU<۝%5{ۖjeՈrqSԀP5t1a!q`s&tM@ Lcq5LZ%}5kzϭ Ap<9.^]&O$8o׵袹c ttR 7Ɛ IdP̉U򖑐<t$|dx#lK#K"fe9SC  11>.%PKC]Y,AFt{G̀,(%+d M't1:tR" mX%!/JLU dd$Ɛ=4@-U)A V3TURTT4١I&൯ r6xRɀ'8!c98J 1060A=M趵T+ % Ĭt&%`€la#DGv0t)U]DPgBO ЃM@LZhU,Mb@ޥ@ )d ^Z55`ԃN#eyc@l2jcBTԠ%JJ klܲ5tChګ䆜" )zY v qp E@79H7! 05 Bn@@m EwnA&B4ے ޡ8 1DZ O :BN@K/`HAٿc AqQ-n.8Q75NK?=VH ޴;g6\d}-*lU Ňac9]CL3L"\y])&LDUSa]~o )D? ̌`@&*?GxjB\VV#t̼1oKjSiOljMWm|%W֍kwDžk?CēD͹+JsIrB]n Ho 8 : TS+ C`#pOapRC٣KDA_K%9vgݟ NHecL}0I5!CD1 !1!!av;'(;x!I kΠ(Zd9s7m"d$q$r3`pa#,4ֶޠS=|ڶ?b  j`%(S t|5;hE:3x0;3h R`B-M:j]xʮDl3B&J|BX,L*I0 r1e轰k5`H\<ʅP`)kJ2BSo")%16HiJ0B(V @٫0 @SnPR( ,c^'YoQDC r )6A ebv1; $(z?" #N?+/ XeFkV/ѱ;6HX[ rCqR&9V{fB+-dWzf9y/ leL8ZNƍYK~<À0Vc/ley,XGA pFHv mlt{XoU Mdf-5Ѷx#xH :yzTf g ygHQN=c)01s̊wdsZk2V]+[@;\+,]<Ԫk}B&/mp~E8ujvcq&8Q`ނ¥ -i|3g˻M1c݉`)mfЅ"`>hŴi OnM q^݁qɚ E`(j¥K6C&ώnO~nӡK~u6+Q2p1Bhf i \ qLs绳"R/pgw*{dgb*H&xҕ HҰr {zGu–;TЙ:ڙ;\ ;yGP8@z %K+aG@G+'&,mpq]m}o-r쑗b_W%z8QcWa( (Kj:حH?@N_`rC[Bn}/\.Q4w{YMŦ_Oضml>"×)'Eٍ'2GON8Xy9hZ̵aXK x,ıELsZi*La/-Hm- ]jT4uIȡmuSb9< Myqx+|9Č|U.c6qk~17@l&M`V=gAb`:lv(GkqW?{/imAq:$/#Ms!`@j $ 1#RWU]9mP)IT NE ED)91l|25 ݟ$ƕb2[BQlJ]Mz 2L .3LzhG0|a9|Ay|ڬQfHNoAF\I( 81 :gbsqFDHda246pqK]ޙj2s+àA34W b R`R٪} S+RM8?_P H=6HF>uXGp v!rLizh@<h}"c,Y꧑*YA3⾐&'HPPX`jZaK(*C@"E[xЛy ^vv>f"o77U &°"LAx!Gv4PB=X.`A΄뽡c,ZK0 GCM>![GqdT#5&[)T*⯶TC# ;"zXYwO} x&]]\]+h: /H1T}+G&:J(v*~j&x@/LG®]a XHB1h)Zr,/ $;gH27ξf2FX믇/%԰"AXlH kp}\&}piQ@Pcitu 8Izg&).Oz\Q򋞇Q'1u #/p˦R76IG!-}L`^F;[*lӒ{w|/]ҌD߈Ov2Z{:ȩ4qVkð, Q`MHd봷ֈ ԥNм7塛(xὙٙS>ir,:b D4֧k}=^#IrzKᝋ߂p<;( y 3p~/C2ف]ݍAuNS0|ٌcmZjG#pe 8_y*1!{GڶU<*):ڿL,kio(SuP4Q]0UgRU( Ul FS`G|l望XhCB.&|E,Ffda; x#0@r.W:h{p2a儓G4E=Z5ndz2=t~ \ /mBgS.EkhzRwY#[cFr*9ǂ3.5JS-cߐ#\oϰxT*~l3?Z|\.BPjͲ5%TytA @H{YȈEEtxXnxPp]߷# QEe~T\c`S_J.9뜔^Er̬g8.bv|Jmdg,@:dO/os\0o]8wiѣE|VxI3v$F՟pl\ . *Hwyre62@y}I0lA$5]r E߷~ uk웶^+FA  -0XW刈ITLŊ%)J,Q:cƆQt^\v\F('&"E`&(Q8HaG5@gB$@ LIdtF\%AkЫ!MAV2·K0˱ja2VWQ BA7%E/+]篂0 q!BҥC]ХP|"SEL%!r0l$NG_;%-%8r/"xd#!!EǹcS\B:!rA;pN=.u?Q!{jڟVQTbCU+^<=X(%53[Uk['P"ڳ؜OB<4ޝ4iyndǹd HA_| 0DZi%P|R 4@P<,js o,kMڣ|jD1 pZې!ކ\O6 7{iH{n6Ԙj;!ךTʑC| $=FD$Ll 1cM ^ S[}kg[ ar*j^DM .* %=tv74vd"H(]UHZ?>1UdF?!dPgA\1d#]g0 t)}2פ% #}s;*+g>SZ<nn <%K-'u E=Mavͽ.QW8ޞd7A?wK+*V3m~UfDYVZ̍Iu) @-"J*4 B_; C JN;ٍs M84f J{P,Z<kè!|ıN$F~,- &2&cᕷ9ځ!Cð J:n%s4;;0Qn,:÷ ZU[7BǀAQNԖ\97anz^+PtL&L`@1vu1h1 W>DBs7] 6[g9 V+)!f6G}WB5.?E֮;v =UAm]fx&7ήrf5dx(IT,KFuL21ɤXxT HMZqa(\)!)]2i$ާ6K 59XJ#FҊEД "ؑ0GtDqqz!/Ta(&GA>Jg|!Y!VT4B̈́8EZ.Yl`v2LBgWk\ǩW3SֈXHŠ>(kMœtB%ŠI .|kS kɗS߮Ӟ|:Kb'}VSXaRq tQBj]ܤ+ĥYz+BjT0LlQN+xȘINXR9sԂK`SM%_y6,p.0/QӄLzhfJ /k Qj呑lˌc-A5$'6w(Sbմ=DEkJ9NrpIglsUMQUAr2VN']WE u g(Xb.6U\C&!IY<1t76_b j:8? Rb`ao=x=(B-‚Ohf&"xpH&RܻtJ:lOH 2c,#DWӅhbOX5,t Q%X%m~:S!i) ErXς*8`F1@ڥqj\wYj|L<49Za/3I8>{'S<$Q[ g]b'2 " `q 4cţʭ97-oQyW^A 8xC'EQ };@B.kVy--M&v!WBvj*T?3^qp 6_q^G&<$C 2QSC6XA\FÛ@$PwȲ_c"[hDlt=B}-F=ğnk96TZ(R"KG+ƈi]9ocs_e|MvUIeA 1H6x5 '/p@8CQJ3;+W17*R:^M9KN@'ŃI@'\$8NpxJ;x}dF N0F7];aZ-ir!aٲTfñRt#QV׿zl[3ئ@f%ғGƢZ|Tʭ6U{qYCBJ+'F;Y=qI()gf:Fv @׵ A!HŢ1%GkO'pviP?*0;h4%(i)DIF.!2 `|!sw".T@IX/^&`؈$$$QD@ɋzW0Ql&ښ#(:#+H,(ث4|۠TPn+its^4G)3єN[? KdTWq cu^dt\~ ص ACP9@zM(Q8x?ٶ@x&nKd\.ww2Ofu38`"Ix C IQ?f![ #al_hA<`V:[_E\XSHQ4g6K[hkԺVlq`ϰ1')oy%.[T;Y#qZjI%c+IvFƪ&I|-:@i!> E(+VAEh,RLtApowithKv˽io-C8> '"2nPeNe s]Ș>w &i'IB% kyla aYߐe˚ CQ ;mcޡD13#n-ed('{u65`8z{q}U7Ƒ4U-?!F\YtG+ziٖ$iLʌd3ZAh`(XDHAsffCuѻwήs7]BG،פA:f rWC1UI/4\ JIb 2X1io[dMBf&"Y.ͼ\%tQ6g;5輜NV|5sNc?b)Z̹S3[yggBDbkf]dube|7"x  A T{X CaP$V W hC1v+ORSTQVC (`h"^)42-8b墜3?6DA%sO; _\rX]kk',+]'MAq00 8N}_ 3_5,V~cUMKRƆa8OfvPv+BA0k` 2ΊX'B3NY=qʳu y"AѨ8qn=~k IV@G-` ;F2a1`xLѷ)YϠL1Mպ³J)8P!dIsND]2mi9GjhNe":ROl~7nyp'_NB5l~NmPDwH _x @ٵ @!!ZTsl |>@tad/.@S1:tH . W3ď{5!X*=E+\"Jj~u%V&`Q9&8d !Q$d)DKT "5R;H1׊n-/h&3W.0Z ULgD{8+_P Mr'I&;/z?/[Nh*C[ʮa2PUrQ@I:7NdwFN(u⓯d*f? '!̽2B"^@@:?'KxOJ]G| c c dz 2ZEB] 1 6'\]ɚM| [6)OY-#"$?DhqBW}\cyzHCs1R7%xO"*Udp4 VaniԎo bej0DZ$_ŇC/(a (X!AD1Iio7փZgw`o)M!Lv6X^0QG|8yk82$ @7?DJH]h a:r\ $%oKd~^ć^V-`*Od05WlEJ檔I|+er҅pȱ8>ZWiiG^\rkd*b-\i?F5eFd r Li"Eē$ 7gEz0&rv]ɍ }zV pTS<;uҪ^v7 Ђ @H2o `5B"+#PE:!5a2k~k:6$ֹLڎP/*(}@}%:BS%U]哔nS?ͪ緮tk\rAG,!|dGf6?i? Q[Ʈ A &hRQ-iO …tڭDdGt@` /=H8vS`()SEg<'ܠ0큄‡ C(p#jҩJe+'OfNIci݋g`J!EU[ݡ)Sv)Er6ZxÂkDE'OV+~n8Ō [nBwkj !vq.x˚  AB+RC zhb;>sӡQ"Y owN" z)y Jh UFP gQ8QX#Qh}DžPK^O-b0WG]FH50uݨWv8^'0u4,O74Q72r>+YxC L&3_i{-eW0 /AQa:/OЂ|)+k%MP81Fa$*~_"1 <f@Q&k"GMNö[! 'xg$%]AvE}=+%#aXXgmkA H R"!B $t&:uc[mr (CxVqNBzg#|# P)Ʒ) JJPE^BE*%/YaȨZX/)1J (dxb&qdzxH /&9uS?dPXv &+o'9!]vggw Xhi>dQF p*!LQ# ].ZBzRbz읱Az#L|Yd|glX.X ԂI $ͣS׆AH"*:fˆG'O 'bA sٛe}?ჂH/EKN0_C1CB<L ڠ!ms`rAA8GN hI@(j!GIq tXݢ l KkCF@2zzZȌxu!hH>hԤfBl,jǼxx,AA"c6 =N lD |xb uw.JUc,E~Q7NAN H0>tlAi"-&%Zv 60CM7jR7Bv!7?B`v3Y^pa I¨m";H~J=7"'! 奸瀼Ղ-}_?uT< 4.gʉ2RNY^FaNOr24^>x,' +-[v{UxUS8RL \P' 4YDGήabu` Q 1t.>#CSEY/_NiaQ܄ [)eN'@$ߙH0ALLNX Ő2?<iPK Pʨ˕j!zҏuVr.pZUBeЇ?ꬑ]_k&ዣMX7^ڧϪwFm>.l`#!~4L>zhv8`kYaz J,AhFho~GCJԓ1 qwYW*ZS?Hi =<GO~`'NC6/Q;%\eyˠ9MEI󜑅SXβ#j)'+%Ue 1uЭ~0پ!+_uodC$5!Ooo"1XkinPs/5't=8^6?GҮaU *+KB O wC*ډKWGw.R1Ի2/s' 2&B苆["@(za} vo4qLj1aF)6ˤ9 C+,.QL}:M2E9L'W]㴖B8qV#hWʈ뢧1g2'--?U᝚ڡtpq﫚,S[&A Rܺ .tfa LW01. |_!${c! D׺C{G'>"Z2"57PL+1J86.}fTNOԞNӊ!O߈r&vYer4:gM̔$R$ʲ сlgtng10#TEV[ƮA IAF ^PkT8].}VRqQT3i dn>X.{‡!L-x#@e1C"6ȳk< I0Ԭ}*ku4I8Hĥ$[JhqaVDަ9v)CzvڤSՅܨL ?T =턲t׵iǀ3A($Fu邰 sx` х ug:}eHcʣeLo*,F0 &,z&d0/1: o0adx28#r >UQQvqSŏs=b9s'!Ӷ6@u,_xe!K $-J,i3^^ff2x,C$~>{8ߘr[ߋ %_W  ROnE)x7VCw&Y5E*xv!1l&};0g+Kx3%ЎJd QGA @BpRj   I'0Xς1H97NqO<:uoc JL|ةomJϩ1G7'U9pw8{r++,U =P`91yLu_jUs׬?\Ł4+HH&0[ 6P%dld nEz$ 9P {`yia F9#AI 0~V P/,mܠ H)23 Z *0d@ A[A 1QtՀY2 t#3<7cK&rr& )yt9x\i`|=],|bb*"?]0 c-VђA\+HA6PD%`"(E/x_-֋Bi{t2NV{U3W0 h& !h -ap,A >)+D>X,S\0 dF"")G F%(Epttּ5퍪DbZ<k4׶=췀{4X(Wo;g1cRS'=3˞YY*ʌҺ5yL[/2>0v:0,d ]BB M];8:?rgeeq%B`%Dq5Tx1o T%&'DH\6 ?SP*}H(cCyMJכXwr{t68T [.I@7ғLm8u ݭyZl1]iUiO:x'Kbm *sd]t0:RKP7F3 ( @9E>#d ibYCՂ,)x\C:*4~}[TgBFJ!X- Er2P9b 6BO؀:;ruJ3)pTpCǺGXC HT91P` !g`a|cU@ `+D}Vb8E%@Ʈ a *HA)*ԃ-5]3 KCofgL2&yJ)?HLa0H:JXO"HeH28p'Dz G]Y7/>3(tiӉ#vx c7&MQ[(Xm dEs@Wjݵ>߹qrŒuuSrPvd0Cw|TpN@58H lHVR"xqIG\6&Q~  $ST@ j Eu`GL{O냻+fJC$CfEND^rY9h+W4Ex3xUVN3AuAC\Rã Gm 9q~A\:((`EJl-U 4 2/dJL6y =Fnc4<tp,TCX:@e F;K|t;i8Jv+KßR|l./otW~WcIt2?cIxH:Rts1cI [) fS&%,oru+NY1=Qx` H2THc!(D`Ʊb)2tU(^i m*`Y.*;@n~--m=mИx&hWxd9Q8|<PvKAG 0HDlG OKOoH\ >*:#c˘ U$(1kļ(>qг Yah/QxQsòk2 aג ,Ȕb7]hAj7mq$Sg&dދW)+T$u1M$C|* t,:KW`kI׀1hFyPߧgrwp0 ʖ)rjׂ]3M.Oj7c _3:qiމ.n2yU۬7+N3{8<% #dXCeϓ`=D)ؐD7 tTv(Z 7-Q#]QSEj$` %^\KLsoh~mw5BN`a\ކπGG P3"͜.2@A +'Ru0?O64riXͬ4?Aܢ]!ՠ  &Y&:6 H1145: )l*{ϭj4.TLZ223Gpha=? 'PAN3c݄Z3 췂/ jV$OIzaR2W$  (G.+ȀD8Q[IL v3 xu"7b..)) ag Q VCzrOff^d.̐})h2HLӓrh ӴBҪhG7aei*ֆ —UYJv+mtBL>ĵL <6zE k,΋.jw,D[IH5__o usM>ɔA N;c=>=G\K P(ȫ3;\)a#hs6W`ab"(J!#Q/"Gx33IB[Ks&};xT&}v8ݠJcyYZS4FG EG2v!Zxg_N(CUVX: 5 YS.5l~8ڕvb)_ 4b.n(\ڼ0|6/$-/>@bnr˥}v+d0';Lˮn)_va SR ĂhGFbyPb*FkH)A?d[٭:an顿?(+K_c 1P}u`401n1'ʕG/We#=Ɍ覘LX[*몗%(-j$0zg;/'֚偻!EV;]ިf\'XvE+AУ R"-2 ~ڙDqv VXtTj2F!›'%xX!)Ⱦ!2 1!DNqX.p)'{ѧ/Z`X%%I7B:J `p8J&{98dؘ8-ζ> ́N & MƹP_j9?3 CBNiYQ~n曐v>__v)1P*-X)ZzRA{c<(Iptd6L"-eXj8[(JC-#`<Gh1huVA%x5";(Xe!5x uFaH<=g~c}УeAAyt˜qJ161]&+Ǎ:r΀aI)iO=WO+ !ywe_ kYA6XbV$ +>Q"'8I N֦|lWSHNiPhʆ%nV܍ <  ~h <9TR xԗǴ <3K p !e1R#@)5BbjAL`䇘CT2{xi"1 TP 9U@XF_S4{lHB.d Ń33hx<}G%&fF ʙʩ >p3,8%^qK|:, %pe>z8ta<Bq~ D PJ@xS" "t$"2;y q pDwК ?Y<ᣖcKrZf\u)KMw[%k`A(zHsbVO&gȪJv3%U<ѥRL&ѽ;?JHʵgeؕZ 'ڙC1IZ4'6'taOs>}373,o EE("?cJ/!%,JCb &#"R8r @R-0 \ԕOOKܑS~ϗF=FSS!4BP_(s)!O;z"|I: QPA]u]j7o`d]Kw 3I^o!se.,Z"YTdxdc4;LDC)BsUjFYr* |olΘ `EKx嫏\#bu&{u'bĭ ۊi]?r)q r>S;WX1o\Vk ]_n1u+BA0 $.a]"!wfzuٙ;R%!5` C7cG!$D$6\v?j Gzs7[>${Fm٬o+Ըb r9y~ONR֦GH7f1|3e9ϷG5?]PEȠ;fS(rH8+ękf1'09!3^+ ~qXwnRh߃!HTL-؈X^\pġ.abBZU2ޫ^3 꽂.+0*uRdmP", ^ :hCLtd?3?rfе''PvpRKA^%mأ޾trli]h+CW 3b!rZ[`.2LA- uȍhM\@H Imf,b,x5'P>,"Z␊()u@\Xg[$#ZXZ O!xd x=x4x^y -2@- of 街؃4@@4 ̰C[ Yj 9 ej Q]u;;yu3Dq `e쒨C& A C:i? Cee07f "A h3ieq ľ8A&q$f$ NxY@;U BS,,bt[4;QV9%}R,0A&zT<0i[Hx5yKM8WgsJM@9e ~ N hK'(YG@}Vл]VȥGӂasiqFX۟{ĀIspk6l)S\- kȊp NP Ɔȉy,+`\n@leAck(ЄYp >ACfGK8 kAWs8j Ȳ.-А؁m  *q; a#]ˆSU8!}Vq\! "Vb/t62L*C oABa9caako6K&b`a/H Y&X@6^ `T \@@ I `&ZAqhm@T`-8EjSdr Hʈ mCBhT_S r6zaIz:n 3pr9d##3&eMh#J xIxH#t'ľVDN]PMEME1.!pDHLI] r3dXridx~4.p9(W$\e@1@@QB92"ś Jq!!ai*S-Y_-XkFs `N"m\ϨYY^*^t'6hЗ1-Mc &%=]U(춂#a=vG?I$ =Hơ)t.(//fʀ%a.! pՂV` e5;Hq 0G Om b' H͂1! 39^PD= X@4]:«4D > RCS n^̓`e wyo]W"+%!%  в.I;d<sqP\d$3@Y3W" .7`J@ܼh C 60IKA lR PnnE q a )e q*1crXXhl 7{'HaA;nJIP {aiPS\ 7#Ea(b"&QG<8-VϑAM<+2oڅ:tnd?`Xf ];:)aG@Š-P`t 2dS_hrC'ECC}CEp]Y 1: ѡQJ@C /@kTu1n.vƹ"ȟjcN|^00xBă`2S-%^*U!4L"Ift":?ZQAf[1l_MtMOIz$㙻> >9ZK߹e#R~o};d۟d#S0׃Th 0q¥ l1>hY19]8~A#eEʡQV G8$!4R`i*! k"Z( &6?CV8x<Glm/P͠(HnݦixtDo G$=ᑏ laׁ z"@zc ^kʊ|J,.xЕItKRkT!H ̙(.S˥ [ ݡ\2 :h(4: %N4@d{X%K 0$O'bD]/JV 12!-8q@FW@rAQ6$>C|b,A*f\e@ C}/>k% 3٠H:ٙIAوΙ r/ = rso"aIL_0ĐF3 :No.'xli(ڡro` r )1PbLT>G=ٙݺ dYf;3FK8[_B~_B4XirTIrp9=pF(ӂ TiUlEg8Yӟ ou40P'Z )O'z0/ uG Q7]B&L{&.*YR-bZՏqfg&~lS^!˨AƟf ;‰kc/_-tb5,=Zf 8[>O&O§6nD"hT4y{Jumu#kAȳ%ńdߌwm@b~V`鍽F@`f8uj: Nfjݟs@G?0$%,fSXHF'6iiqqijtTy֨lQ8 {UV!kiMtL6$]h聯*Ӈg>_ER<%!-egYAWsBc̀6r $B阀dN` 9ҰSAHXMŸ2y&B1'FWd T+QA?hkYF&ZW)y؃{5=$d@ `:n:!Ůloȃt1;@5 0ݼ :)RFg j S mP.+*d*۠О(@pCTC*vS@Ʈ@ZE7rsgfQ{$S$e#@QD oL4ٰ"+0-_zm.gAKgl7ĩڝ6JB ᝅh2ué-YSk-a+PqRiF"gӧᩛHݰ̈́<+!fF\ Kӽ+~-}=AHiMO"E,PVn AXCZC&t.E[}JaC; BCm+$An*.VH t3<@_ HHmOtqo]L<٤?QVf&Ǹ0 xk(l3| VQȒqn؅'܄:&)  K9FiSH "9-'"M'Cc0Ҭ-M=E܈ 8J'U͜'۟450(Un 4oC4<Qo]io*/Uʹ&WOK1 )+kF5A!d&%q!и8dDIX\s@̀2 J`IENDB`pinta-1.3/Pinta.Resources/Resources/About.ImageSep.png0000664000175000017500000000041311747026475024106 0ustar00cameroncameron00000000000000PNG  IHDR =Y sBIT|d pHYs::tEXtSoftwarewww.inkscape.org<IDATx۱ 0@vuV@>eKN &`IRjMiKg@TmE[xOh=MfN7MIDATx|K0Ǘĸΰ֖}P '7 vw '%d$V!ZK8`8DZ`! Yx̐~|BBm AR/zp}$5#"_4lv~Ka:}|Ɨ*뺬-0V9sN9ayy]9vD9 f@M2 nRCC%A(ep IaǙ]npx?c7>N"PIo+`s2atB* Hke}ic9k|^KP|S@9 +Td ̗hokTp)5tt@FHS cؙohe%0VLc>G,9_{ve{9K=mE2^+d`{&h$c""<O\[z/OqMa8ӑ,]͎B@2`ýcVBW2˧A4"X^hGښ|{!sŚM2R>bA'[4'cFkaQr__.wa( #4+AP$hq}.ܓs3BՊ+6px$*@ 0ƑK {ca&F@ٱռvK|Jrn\XdE Qa' $l)P&&v)N 3E. ۆ()I>&RBSFl!&ڎE \)%@PWW00UB }芎^OKXR/AҒ'+e EʒHEJ-]E!-"p*Rʴf2lB}l!UF{`B GWŠIǝ?2zV^y$ |0W.DCf&NN.>(sn6)[DVjO*xT Hz&[ƆBdd (~Fqd9WFEQ}2R!CE\Ϸs}8N  r A;tLhO"t S ɘ>FRa*f$ؚz&Cv#|8/QN+|<.υOa"0UI FH+'fσ aCqPh\ 1aA _ XR zPXeDaynһYFt @T' j;wV6?p7qZL,tF>jT|kv&'$g8bw>S|sπlǨHbQ}+<[O@']m.H249c9F189 J ЕUVV9t}alTUblGQ/;$XP@,F`poXYVZyή#D2~pa:PD :Qy N& qD~_`R"6~ܶzW=J+}c4iAH5HKDFDAp; K{`<ǩ -&pLF!X/Q2o[C3/jp_~UwN2 eF}Ddތ%"oF @Xkhh$_"ݲFcC#SluV[s (CHCӛE|!^ y|JZ`B@Q`[Q=_`ىzфFL W@mD*d:_`2n 4uF|9ͩڲ$.fov+)roP# l@B >0R_DxYS$°\H ѿⱕk\ sgU.p@Hҿ'UVӂ А;}1#SеS[#_ߛe..ff[oBHk6wW5ߥ.(Ft}\ɪRhbA죤E%!z9V\ 1%c4qq9i=wM*g,ev[›;X&@qt-%Q#h[Spz*t_v[+jkm+;DKْ0|]wڲf1.4'd ˆe,PP K&R2hEZ5RM]٧z`tTctsTGCtn럚$3+`8{"5oe ).B)eQup%97MyTU ĠРh|L4+G('1x8UaytC.b<&!ݕ Wv'^rs9X]46fThG@Ed!OQ4 aXP9D $D&햒}wy}=~wg^ PXk/y+{TPekiu;A?h H=v#GȈp3;+#X {= ˀeF6WyenpTk{ L>Ғ`ii|JI[_$$nQÔ7LLVNY<71咤I'Vӂ )43`GC PgAJt =>1-('фsza|0z5( " O 8 4a,&pE,K )aH#`!Q':nSî,&9dJcO"B\i>4Jds\|u4zó!`@_#NҳA2ŌS[ͺqM7$`aC]8#b/<ƪW6]A$Dj8L&&:b">Ro -н ? .92^`v&?| qN9U$"%FIBŒC.@e\^%'cL]+*-1ޏh}0rB 4Z2f /x0 =)R{f tEJ{ =9J!BZSPjU,V؊@GyDX)0CňI\p8IԀT`h t!@ *HqcQX Rj2~p2pӗ**" #54]ewNC\HIK 䃚jll! `Xj(sV-$ hc-8]!^d-b׷bІ ) _ C_R:r]clzF+Bp),BԀ.h.l,#YHI jRCl-$A`M! TTЪe`-S`&it q777CCK??y%*PUx°aY 3i`2Mh04a0)fO!B "FRx`}ٹ54Cܠ-0mח@SH)JvSJ!I؇-ha1ZUbxQPT] PX, K'BHP%<¸3a#,22ǰ\*,Hu.@?+/̀%尶 o%x,Vab]҅(1^!M3h0llfƆVNF扑;;Q9^wCXeLhfMxk𼭀`d-LC>%*>ŏ(8B@qmImZg CTD (P`mQ^(((tx^w@tL T5 63 k؅ X g›ND #*BS4\ $ -iiPBRS37Lݭq/nԉ1c+Cnr gpo`Y@ &` Z;jfk@G ?D "+$i@*Ъ+XgU=H4iP^BEE V !#i4\TY w’.@  *zqA0@0euhJ:!7099K_38 Xbʫh+?BRź 0v[P{, C-CL|AP.+Ԩ|@[^aWVV>8e9!^ 襐2TDYՒ y Rp4bV 3AT]X6+-Ԅ,iTjȀ & `BeeEBZ/0aCp{$x80aChΥݎҐ!-mp`Rl } S12cHh8 #+YâZo͝Zdh(,+d# !BB^-lϐe좢Af@Ŏ8䁒Z=Qs kf5P,?1` =%||q.ж(e&!$[Pp4& CpL& MyMMM`K6&Th @I2'n6nݕٵ";"@ 2:Bl0e[Np7x[ \X[# D?(uAɢDTR=וBdL>c!Hcb"R'h52!.>NQQXOU2X ZKS" 1VpwL 2}VV2' &PPP 6' IIXPUuQE.lSe UI) \)E RQ㲄4!H:! ? ~t>Z kgpeMkK h[?C*;; hgUK:z-T-0a2XDN"ur08A -u 4RՈ"@1 ƕO%v%U4QRM)P^ ZGg xߞ 1)<ԭ#*7&*0A% !M򠴁0j!lj n#S`OnB`ǂXbK --7pC ຄ XbEA%VDJ!ֆb":@KA {aUb=E" I"ඪ($)'3vjJLLAӅ-R@@ D8t%d T N&DY fS0K^%•0 y2ehh;3"3ت(.*3 @uIBy: xg&wH6;D`+N2ljRϞ J=Vwh$P_flPȇ45@W@E+xǬ+j*(pH"ªPGZ)viL % uu33P,  ȩ2 R%y%0P JhC *h1I`M*)M'hݡ*+R(*<)J64116rL-.VP9H()1dLԠ C2Ŗ(myTA,wlz2 4  ]nz v PЀ xJF Hu{4&e5mQhCCR""rH:@]:hbO(7c +r Ȃ!%ȿ3)M㾻;LY{30hj5ᰕ W:ޠ p<ͦ+߇4m=ϙ̓8[p7ǟqPUx; 2t M:c Be8c{Otnd})&}a\j,^?$%\v<3a$%J_ܦu2;mY<7 Aj˅¶?0n*AML!ĀBIs$ )sE [#)ޝYB*pI}&`6^q[q wU1Dm[ +Иm~#j. 2+/M0kKL0D4p 5HFcq5LUtCX@Qv t)򨱣J0xR\sxDȪeXmYLF"2ʄwH M,-!糂 "CLPR((0(zޠA}Y0?ff`MaJ8V1l,+FY'o*S*=)cg30p(׍CK)AJƓ\^(f+n\X!QrbJh\ɂ1Vg ,N4_a]Sj;҅7H7rNQزYi_"x<13([5?n`_HPah~\V0-R"+J]pFDHnl?̹ A7`;M/IY:"}D%2|cjqW - J`);8u|cHZyMIq\ÊeQٔ 낄T%, |r5E4mOR[!).69Cka /SKǘG<툵kʂqHLà3q`VX/?`bX̸)+fς0 кTPAq(~&\'?}$)CdݻKڙ#Z5HmxNSo#'̊ĄECvj3GWTV3(f`i8z'1fc"K$47`jx?h)$rRɌjw@v$\ QJ)%]_uq8߄XФ}mP@M=?l |&CLWo#1P%CoMuIna KrX*b*_,\Hӏ\\jPLiUHsTM̥MhAZG= D~}wvކ !@&;;; B #L1?$c@ nɿJbL:7/LB `ɲe@o;#՘@FQUFu[@yJD tDcD]}95{ǷOr9?79y̗-sV2-UC F;R27Q>@ 5R69b/...ܹii94AKS6-CS1hj)*~"Mf6=a ޼ٙjQn`贎rC6bpu?lfIvz8KjcenAf;0zPk(>$^ľk1kWI]&VP  P:p0=)PVn}9ߴ*"m qZ)j\{F:@Lҙʡi٣$i9\<-;0d~=H gcΒ})QK3Y \|Zȓ0ɻ`#r N\]Ov5N6:WN@ vƀH h`xy, *%m rh%,mkfUPc@HfY .4AAIƂ9/"( u $:jLXdI{2j4}'iN ,@#N~X< Mp!r$`z ]!G P  Dr1h4N.~޾އ@`9ھy,86° Ҹo`|K4!+Y+AWa]TRax%?/dd=Vf}2֫w]h@pƦf`<`pCa覤#:AtDC ԙ9I"Q Bą<.x&)%.\lȽIRK<"nLWs|I$!<^`HAK¨ȖdS1"=g / Kx A ~h ;#Wӂ DBB!A(6/PkDAzby3&ŏ>͛}39KM "CQ'Q;6 ·0 ZMѢ{ Q OS:qA7ǂ:k`^MbFjP t4hgUYߦ@ L,E% *DaFeƧ4bNHk#1.;w8ݢf1Q,nEWDGE~ aBd\P3>bL!!F :N:x*u ŵ *ZAAPBQ(eEzI7JK/M&dw;i2iJMM~!؅NM0}`A3w"x1FX ҟlqzk<yt6d\ϩ\Lv8,. ^,XMC$h Wh 0*[Οy`cލ(‚q qyo T-s+%D֨hXSFIUH<5$8l|!!~euG_4C:,R _ȸ {ȣRM,A$Kѡ{?yxy3B : Ǜ[B{[Ip-~Lq[) 4Njm+p]7L9 xb[LW3/^dJ|B?"w67$L9Eg hJ=( 5Zh]k:Ш)@x[+Ov.es2"&s`^_P7 ؄,D.٢Za6YoX$#OU&Zlx~q5-Q0(,(£]$IQb:Q֏>UˎN|p<6X]jIR+2 43rP/_.D#e9C3B'oXX9M=-2}\X;\M,T-GqU[~4,8ֈ>Ow,ҷ87@\b M1kMjHpaϻ %z qu;A["`A Jy yJ0EI TDY}o;O5<,|N KgIm 1 #zF:J"88>6* ߎT2b4,"'?ſ `jYƽD'}e5 "dz1ITdgF}z (#.U1MOOkIN*cR ݮKޓ%+r[xl dfvThsovy͐([\,+ /xdC{3 \M2 'q-Vd>`68# vB} pI4Bq{suOhA fA=a!Qy-=ή7ף|QGTƒUYq͎"mcA"cmde  G2\X"c+TϪRERPCI^6kҧs--rUfW/;}qFK*EDxh R) &0)Yݛ~$0  xIPH6z`^j[ϴ‘KkJ-mƭ E"^Mgﮙܼq D[Thw* ޟm\^BV]0EMZ:`t3h- 9Gu;0Ddfv&$x('n#ۀ('B ڴook đ2 ;[vf: zau1w_~2E>8n03v:H>S-翕&ħos5P.} I"9ɒ:!CFq*[fm o-Ɛ Pl8fTNWez 1b?)ST)`(CC֒ Rw(DU.7r_Ⱥba !VRP)Tdn-{8J ^ú/bPė@b`PW!CAc "doݚEO8$u1 HK;> &saӸa7p,\<;eW]gޒߛ:I*P(ᝐQK(1 Pil99d|gbXރTזn+fg X(*pi|}]w$JKE>,]bnE+?̇ qCIENDB`pinta-1.3/Pinta.Resources/Resources/About.MonoPowered.png0000664000175000017500000000772311747026475024665 0ustar00cameroncameron00000000000000PNG  IHDR]-SgbKGDC pHYs  tIME 3`IDATxytTU?U*k@ (B@qq9pD[ԡ#.0V60mM303nUF9"aшvB1HD%PYHe%5իl`L+9/o{VIsN@X&a:6 >X^u &Mt3<3twK)OkuRUUœO>yQۍ ܺu<]3 #m]]]2K,hTFQDd8PHvvvʎ e ~_|>f͚O@0Mj0󻷂lРAO+Œo^P$VTTPSSj ByE/ @QJbHǒL+:Dyy9 ,O N<Ay&v̙38`!tuu vH%TNQP l3go|F iDVt8quݼFB<#cpH$G%Et6[PUtQQGNX )%X,tB! u=daFw@~?^UUʢľ!;;Bu\ݻiIJ/Т ^=0 |> > uĈn4;MY8NޔH0ߏA0krEUIA`{^,_ZO= yp*&P@iYY%77' +hXM5}esݹwkW5l;MSb]Z}H )/kD79Mg4RJl)e=J'efs)R^dc ~,>5pd# 㜓ޯ<7JvSthQ!(>_'R*cw_& ss^iU=\k,Qw/:x00 àl ɌG/.=)]w'#'i?<즱 ӻ z v[5S%w ÉCt(Mo;hJ.XW%\[;y6|v!A1,v8n܉ןK& :Ul{g3f^nQ'%9!9=aOxSxۿr 3ŗLIzj穼?}\9|vTq ġ(%㉴aH/reQ +Häi6 J/ )Na˶5:zxO: ÉĆdŘW:BnsF^ Qe帹~'Aiqz5mfRX6}:Ɯ[Lg(tڬ ecFi(6bޑx%'Dh%5^1mH[kdK&BD #$6&))dI)Bϔ)dVomƁ(.%ӧ0 uW39(_Ñ$a`wUMC5aԹp߿uϭ7<@ &,]&`$)?mر!_^kQHV$o*( jj߁?&?0 <'ꩯ{m0)L6^9Рr MO1AO^LOwM87{"ED"!.رMSBX՛)bp2DIi5 RF״ۜN$c{>4$+;D+;珥l¹ie>t`0:m/G@W<H\8DJ;7Ѵ g^iQF#f܎:Yrr3u b8MnUz/;w0vpױwrs~}~h/˔iwwhn9,&4AO'ـ ᰂhő3Ӧ_9\ӡ &-DžSEs躆(sC9Qh"NԜZB*RJ\;.~2YZ2E3Y)S/@G0Ę#۩91|s9ZZvQqei*( NKQ5z/3Nx B-+ESUj=^oc:cƖN;QG0fؗu -gl΅?8춣͛Ost)нe"Sة0n8nO<~˕( /.ɖyFP_ls?eRC[?uy>]E {e_#\*_`)[e6x=rN'|L0)%#F%wL6 0Xl999\5h躆PncGדRяl+UMEtˇ%%^c`vzt\B'[lZw;_GzJ/7Ξ=Jrss2qD*++(//;jskRQQU(..{KarrrXd 7n0 ֯_oRM3_j_zլEi5cǎǏzj+ʢzk֞MpWk.=JUU6l9srJ{1͛3E =1“^/_βe裏;w.h+W Gyp8LEE`֬YLiwhΓ}f}:KMvyHIENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.CloneStampSetSource.png0000664000175000017500000000041311747026475026521 0ustar00cameroncameron00000000000000PNG  IHDR isBIT|dIDAT8͒ ;@*wyI} $$u(,cWo 33Jpya?o$)I4l8_"RJQ`luR:9'P7+ouYϱ$[k#YMKtwIo }_kU^1_[M>  IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.ColorPicker.png0000664000175000017500000000032411747026475025034 0ustar00cameroncameron00000000000000PNG  IHDR;mGsBIT|dIDAT8Y 0CW?2] D3K]$3eHcs ٙ )$ˠ )$6g>k}8INWzG  :Rd}*)b hY$v@IJuE<)*~ u<IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.FreeformShape.png0000664000175000017500000000032611747026475025350 0ustar00cameroncameron00000000000000PNG  IHDRZsBIT|dIDAT8!D5Pm,+]Ig9|q7Wir굡eq4._VUur'[ ^@ʰP`6^?l p3o_"GLZ䠿x```յntV% B>vp}ӹ#kZ;_xoo%ߏuԼQ}1H˲gkʺe8ȲLVVVqi(m#LbttS"h1_hiPJ9H$2T&yP($ѨXXXpX|B#6A)ݓ=RsllsJAA1YB6(.mvVla#B #3IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.Pencil.png0000664000175000017500000000033511747026475024034 0ustar00cameroncameron00000000000000PNG  IHDR;mGsBIT|dIDAT8=0 >Co'ꐅf0$@%??= /Ћ,$96)AD'Rl (gqz&9f\" p<)|N> 4c{zJ9&)E%@M%WME"rIENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.Recolor.png0000664000175000017500000000035311747026475024227 0ustar00cameroncameron00000000000000PNG  IHDR.sBIT|dIDAT8ݓ Cۛ/s_CۚC8b< ؇ \XvU_ tzN|n9ovjEl բH:oj< gd;n1[|phra,ieЗ ܇?"IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.Rectangle.png0000664000175000017500000000026411747026475024527 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|dkIDAT8I_ eF C tDDIrEsgf>Bl!Z՝Xh9Ñ{Sc7o:N~8IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.RoundedRectangle.png0000664000175000017500000000030511747026475026044 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|d|IDAT8A0yEIz(ta $+vO%x`'WX*~uIbQx"^b.јW" mW`6~jb'KN2IENDB`pinta-1.3/Pinta.Resources/Resources/Cursor.Text.png0000664000175000017500000000022711747026475023546 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|dNIDAT8퓱 B5_DAA| .[$&$&HJP'3L.o0.HIENDB`pinta-1.3/Pinta.Resources/Resources/LayersWidget.Hidden.png0000664000175000017500000000127411747026475025146 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<NIDAT8˕OPƽ?tW{rf좭V.nb˙EZ+Դ2 KKL$OTDDRAD^< ,9;{s%rό-|r}ˉdjvLz\.7j+1cIDHsօ6s5vFH&7iP*<4Ҏ]v&RXŚHg32)x$ ӝy@ݸݹP|kkDwt#<@7=ōC ˎ+,AIA&fze#1Ыwƍ/*Za2hJf,vHpmwq; Юrb8^)qE~G' y5P ~QСҠsP)jD3oMI:߳eo?7Z a 9/ZE_"4( ^~k5u?n*ME'1'jx*;nPv%T/j es U-V6RF]}=xebE+==XB %U'eKK%cG$՗ A (>hEIENDB`pinta-1.3/Pinta.Resources/Resources/LayersWidget.Visible.png0000664000175000017500000000141611747026475025346 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˕KSq}ћHoLL܋"솒!PRtR&$^22p31RiSy7񶔍m^v6n9~.ZZ;MIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Adjustments.AutoLevel.png0000664000175000017500000000071011747026475026446 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs  1IDAT8Oc?Ed%U[_hvp|!HY70 N>ȑ#-[V0w?~a i~ZK3Ww%l;~NNXy;6`Æ =z?""{>nQE ڵk'.N=oq(a@:u*X/XqCŝ3z&vd1^ ?IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Adjustments.BlackAndWhite.png0000664000175000017500000000037511747026475027215 0ustar00cameroncameron00000000000000PNG  IHDR;֕JsRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DXIDAT8Oc`H d4cd(^iU(a@HTь+đ-9o<Ռn#btç)JD59IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Adjustments.BrightnessAndContrast.png0000664000175000017500000000066311747026475031026 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<EIDAT(υ+q_w.NA $#%uYt%Õ+ELN(+edGWD/y u#gy'$O1ݫ@f5B|j{TSPYBpT59UUEjKkI Xq>0 <ғ(Vb kC&7$A|bF,8&  #0!Z u0|rdI#xpagɳ=Qa+aAl E*!q#B1<^f/L3;/.m~Q(QP2+?i8eVIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Adjustments.Curves.png0000664000175000017500000000130611747026475026017 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<XIDAT8c?%L=nEKtw9. ~><26:} 8?|# V4G:~4>αn60<>zx|{Wro.{ؕW#,"d\׼_˦mnQ0,=4tY! {Ջnd -&o[]߹LMz,t`Iw`=][}  '!c ?U~! ?#&;(!pkt%6g8 tw{K~"|!kM M&6cN,_2 =2^X+1ye$P` s#N ]UTB HA[j ){nb?iysG^q! zY[FZ[늡dm0]M\>Bz?FBr7(jD  R 06 c 30sH "p|c՘ lnSpiqVauEM`_!D/ۋJiUbW e_+e}r:/` ,8JC*%IĊ_1$x09"y/}{4eSJp.%MLin2AYh* eׄfv7US F9(cf\ ӣCtC$ NނQvH^ 0Qfe2h&T,FC3a0=>&͆lca!.b'c\jHDIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Edit.Addins.png0000664000175000017500000000147111747026475024341 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥ORayuΫ6LEkQp*:TJb&s:]\S+us:WM}>_ oeDtKZ')(擈`ފXL\*SMHU8D)AIД#Yi*z.T~Zq 1kq6.@זatUgZyP]u}>$8FEgcq)  !+lc&0D7#7 sQ%21}.XGiBiwN'R-8!U| ݁[)8Tbfvwk{;RMvKdD[lds_5739>-`j#~t1+#7@&0 9j~TvGi {K=QWG=0 ` aWhw6pL[D.3 4^;2e?|.t O;eț^@h BPgi긶O9'_{Y0C`~w{ CgED\: Q]񜜜\0J)PKG7O19/Qߪwh/kGYo=+;9-wXkai{^UUM l&&6֓cdd(/(ȥk򿺆L4qqqihlPо#,,aHVN)(Cř՚U+:rrrp Kjacg#h&R Uz('(,">Aa vLL, ȶ111v'%h!I )!>>n~!ny%_T d" iŏ:Ou` y889t J(LQT'4xH*xI(WU N0WQQQ+ (k+bk/GO 2YN2U3GR$#j>Ɏ[md``abbšqi'3!kwVS`IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Edit.FillSelection.png0000664000175000017500000000104711747026475025672 0ustar00cameroncameron00000000000000PNG  IHDRagAMA a pHYs  tEXtSoftwarePaint.NET v3.0/WFIDAT8Oc?dV{ O|v[=!2T, ˬWyv>ó[Ǘ6c)!C 5-sΝ˚aWal4֯k?5G/?gõ/K߽ E lѷ=lg:zgC@"c7vW_yuSw _5q-b azA;A6;ywr1h ;GV=l$ R6 ?]d{@ !? F) VVMX#Pf0Plt\6ш+ & RsIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Edit.InvertSelection.png0000664000175000017500000000035711747026475026256 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DIDAT8Oc`p $`j30_I@%pF3D `oŋ > Ka cSG`I #$$:iE/K/qv3DTXjIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Edit.SelectAll.png0000664000175000017500000000041111747026475025000 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.5dIDAT8OQ CI"fJA+q~ξcZ;-@]>PT,͂ [+ϨdXIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Artistic.InkSketch.png0000664000175000017500000000141011747026475027266 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڄS_HSa?Ou۶{6q:wJT! >f IO>>D*1)҈a$Y4Lm) 'zmMKw~|@ I T#i@R CaX"wgV/;P* DT-3t&t߃į$ 5pZcbYH-F",G`7Zeߕeڿ ۑLzCCQH(世;LNNj8̲PL ϙL{$dZ X̠c`0[ꆪ(*xh꺺TiZZOu<Be%8. MF(WIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Artistic.OilPainting.png0000664000175000017500000000160111747026475027622 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<#IDATxlLeǿJKX܊ ;9-H ]L NF,$3YuL,1.Ƙ83Y a+# !at E^:J{sos\QFpέݭR⑓ DBIAU||M|J(V M#W [Yf20*Yܢ]'t>QGe'k1P &\| .Nx_{!wm[5m\TYq7eeA4%H*ޟǃP(]99;t Bwz]ǔeUTo DF}Jnw|4Ů pdDe Ϟv`d.,^=QBw^tUTAq_*cupo=8g,WydcDM< C} BcB/gh&>=Su) f=[ǯygt_{|NΞXg%%̤Vl,f-L s3?Doڦ.ܣ_8nW8dp+Cq?;:uV_%t8AP_o2:E0E4NMX-eoux(O L)iR(D4E!J߰EYyZ,ǽM!a*?fH>>ƧG9Q7&h޳|}+ n $jcM}w+U;}92XͶ$jxw?Y=“g~Z\-32L>vEdi/ e{;^D tT߈]v5Jh.Az{*xCnHUnQ%+zZpޘcUC߱tK)ffZsXL d5RFT\ϠQ&iJ.`w{{:@> XEU02)4]I2p,xmrŧGEίXfB)`& C=H۝#z2J1@TTb$hWoc!I:V@;]R  -8猚=Jr rsԀ1D0ίc=6a\Ay.2nɕWFÇNTXJMV$ ʭF3}1!TInŒtg|"O ҡ!eBO֖gByzjCւو$"as1mb\S'55)gXWV }IË;o2Wo? <_Bնr>W $O SlFZSK˾yeB+"%է[Gθ&=x)vYXM6 K"PՏzM&cmcTYb( D1ԝ>[f`u+k BílMb \BLQQ#&"TJ:hIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Blurs.RadialBlur.png0000664000175000017500000000140211747026475026732 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSKOQ>36R(4nD%p1$~qqK>D]lB ;3" i v̝mJIΝ;|;=g.q]|By2#4 eƨ86|U%`}׍^m"I"f&.v9z(Z42"7UƑ˩5Y\l,RNñ@'XlmYmZ:E$e`S o?,l+5x崇a\)tH;PĢDz,.̼KT\wZ0ne7iP!WgUHfQMb2?nF, `4Q=i Hhq`h2VS׹锒ݎ朩UVr*a(I8e@DBPgnc5-4t aF ,dU2dr#<1sjiu]D/tlßf6T1XG@Ϥʂ~HB.~ht Gsq K]Mׯ,9*Ye[.Ejwd&̬_MI=رF)P j&}' ;sC07];%τI!ŸiIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Blurs.SurfaceBlur.png0000664000175000017500000000156011747026475027133 0ustar00cameroncameron00000000000000PNG  IHDR(-S4PLTE~}~yvsq~oiwi|^{qc{Urh\qKg^S~{{yvxsog^vQlIwpzk{qdrh\e\QYQF%7NӥϡDԟ~պ{Ҋ¶ؘ;Ӫ}mܵ_ĠTYx~tP\lx}~Δ~m\׫PG{1{عpܶb֬R9vNֺ{̰rhLj}o^OTxڍqyrv|.=SkvLYiBRc5EZ.>U3CX/@UϔȈ_3tRNSXU K8 8UKWVUUUK8 8KUUX IDATW]+KCq&n mhPLpa eQ-"*s нcjiSn'bό@3玜.\^M8&hvZpElE5bq+ɠb۟"!fw+8D*Y$IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Blurs.Unfocus.png0000664000175000017500000000142411747026475026337 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSKLQ=3--t,~(`HDMA6,Mфtư1\HFI1$t0e!m1R(@?_㽃UX{޼{Ͻ7 @B$t:FpPGveYZ*6,Q_ɰ-Y z-5ul$il񍍍^](zOB9]0󬠯=444Lߒ(HQcGGGȅYܜ@ |]EɤaR!JEUf:Vg^c~,CUH$tQ F8L&6;(t^\(-¹jx ΅dWZoncsf?Ǚ|VP PUFQNݷ jՙ8O༃dd9$O8vu59Zߴ;<!$H.W$g۔MHt:VlvPSiBaee9˚d8Pv"kF8È;$4@1G^nC]` sw#2>|'"FpEOTIqޡovJzlCe%ԆG&Zyxw*J?YnA@LE g3ai;VJTJ* K;H< seq1$ʀ[H9WL4 rS*d 2;!5ڛDTv_h4#*QncċBJ/vı?[ѩdVIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Default.png0000664000175000017500000000105111747026475025207 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|dIDAT8oAH2EA*(,AG$*h/AQQAAU:c0JlYuνo+%~xƦM^".B5`r` |G)G@U~eJVyᘔ!:`wGGwNy8Óg{TV(!ۛ}oDQl6IyE2@Dk1'ɈIӔx֚8Zc8K! 2#)2<ǜYcX;ԸHtzKf*@)E$u`oez a@nyI pXt3%?' ~ЉPV j[8 SCe ׳nq^G1ZكyB|:$8 hۈN g5]PT~VmU͛*SӸ Jd5V2Ǒ@FHcU9=_K D2IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Distort.Bulge.png0000664000175000017500000000040111747026475026306 0ustar00cameroncameron00000000000000PNG  IHDR:IDATx^ſJrq!"V]@RKt!^H%PSTC-߳<)"S2K2H=dÃEu=컱N ե(e)WrWo'i'DȒJ̆T5ښ mTSn33"4q Z"횞#o$$X1!+RE @IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Distort.Dents.png0000664000175000017500000000045011747026475026331 0ustar00cameroncameron00000000000000PNG  IHDR:IDAT=(-P] &n2(㹁Ae_oQRpe1I\WKdP B}#Y`JoZh8ftv /MA>=8:9 @--hrEִ+g`1`KoZa-_uSſXؚE}!VT,DrsgízPWr/!WoWbT߻y9$?Ӿx k.-aIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Distort.FrostedGlass.png0000664000175000017500000000057211747026475027661 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs  IDAT8Oc?6`hT￰֭ƪ$26uŏ@ij>  S b4@P6X۰6.Q(*iDVڅb}=0>⿹{U%%MX4࿦SR5 @.٦`A.p:y[t8]/"`HX3IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Distort.Pixelate.png0000664000175000017500000000056511747026475027036 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DIDAT8O͓ Ef(C9| =0B=PԸ"P ~b;/e bݮxsf $zE+$V7b8ysp@öM%^okDk1.,9_]x͠>:s9ˀPwК lu)+ AE?:HR@N'e2Z^^kAwjhh @(H 899TUUX,*uuyyP{{;HfD"Z=WCj ...E ^R)PKKߧDL&Q(333P044R7Lj{lllt:-g6a0552b0CaƉeOC2ڳ٬MS*pzz /`*?LrOoIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Distort.Twist.png0000664000175000017500000000117311747026475026371 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<+tEXtSoftwarePaint.NET v2.6 Release Candidate 1*IDAT8OͪAQOH'FFw"L  S:ucdd3 |egqڝk/ kXg}:>O8NDj/ z{k^WX|Pa `JKz rPFBw$I@H~a CXDcx'@&J~\.4H$P(ll6EFzaLlKA t] p8pRdUe-VZj.HVF 鿵l($()4;!IDATx^U0I'vv~cP q; L\z ǎ"A+HD]!PLJUaM3qdH m0?^m7?f>=~ٗX|iVj_W~e4IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Noise.Median.png0000664000175000017500000000071311747026475026100 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTEB~ħ[kLs>h_QxFng)R"MV}7_/Yup®d`]Y}ĴzxyüPPP렾Ꜻ藶撲䎭㉩aE럾꛺薵摱䍬∨ၢ޶ꞽ隸蕴呯㋫⇧߁FB>tRNS@fIDATWc`49LLL:2bpa6^~A *L@WYM]N&Ү̮€LI喒 03ZB8mlY.n^>`v?FFF D4IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Noise.ReduceNoise.png0000664000175000017500000000057111747026475027112 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE333333C?BECr7CDk-DLRd%LCWEAͮ!@cvvhָr\)w!ydwa*MntRNSO*jxm숇xݭVIDATx^U0޶="T~|BzC7 S9sE+I6R4hw$v;_9oЯt\CcH? snSc?O\3f(@g.~XWIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Photo.Glow.png0000664000175000017500000000141611747026475025630 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˕KSq}ћHoLL܋"솒!PRtR&$^22p31RiSy7񶔍m^v6n9~.ZZ;MIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Photo.RedEyeRemove.png0000664000175000017500000000024511747026475027252 0ustar00cameroncameron00000000000000PNG  IHDRRPLTE@@(HtRNS@f8IDAT[c` *) h&AaA!C9=Q(\RQ:t[*""K2IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Photo.Sharpen.png0000664000175000017500000000033011747026475026312 0ustar00cameroncameron00000000000000PNG  IHDRR*PLTE@@@`` @ @@ @@`@` htRNS@f\IDATc` J 3@YYbf &UGA'0APGAif3AAD JPA͋a"  JaIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Photo.SoftenPortrait.png0000664000175000017500000000153111747026475027701 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.24^HIDAT8OLqcl&.KwGl~5:G7a22l_!ɏbĆJ#6̏]wfl]{a^|?~ޟKek%o?&wztdkj=m.MjCVZ(9\#f})J*MQPdϊdJe/o9KSts&o;+ 02\MQC|4L֐  ɜK BTччcF&2DEx`EɞʴxK c`I6`23CXL#v-D9>v8DC3LL0Űe\2.S ayIcəb^[\-މd sܻGߴ8Zilu}Bō$'}搝hSVckW߈(~9g YdIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Render.Clouds.png0000664000175000017500000000115411747026475026276 0ustar00cameroncameron00000000000000PNG  IHDR(-SDPLTE}}ppq\\\zzzxxxŷ~~~{{|nopooouuuuuujjjkkkȿȾ̃ɾŻsssDz왙м$N.tRNSfU zaeUzټ)зIPljIDATWc` 02 "8RE`\Q1q8GfvwR'H;0(:4,+$ڌ(fkc`ge"6457074bs7374`cooP0H0KT kkji2oIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Render.JuliaFractal.png0000664000175000017500000000203511747026475027405 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYsodtEXtSoftwarePaint.NET v3.11bIDATmhUe{}\z7ԜFZַ zֈH RB7|9+usK݋nwιs<~b[^s/T*ۜyfGI7Bi95xsG2QTOVR}><=8yg /gtW #U6÷B6fʇ[rl#ཾ, z"I[jӲ x7<3|=AJ|+cwcm'aKYpޮO-}da61s+}+m(Kw]%IQ%նɚ&O>پrx[Q Hyֵk]]Sϧ`ɘo*, 8R99Ɂ>0M5N.QNl]Rw|q9b@ZQT8%Ud{% lJĥ( h`uKԓƬ,T `Ֆ 0R'tIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Render.MandelbrotFractal.png0000664000175000017500000000172011747026475030430 0ustar00cameroncameron00000000000000PNG  IHDRagAMA a pHYs(JtEXtSoftwarePaint.NET v3.11NIDATm͋e1I6&&kIvHRV JK.ēoUz (Vd]z0-nM+IwwL23+/2q#a/>_ wg`V2J/@CgWh&`-#^,z由& [P U"E#uF(Nć7qJ{gL0_=LP!I Yzp,Jdz2pX nm$]NVcD%<򼿨j5wMTx'J!1;A)|bp՚5|] X[I"viք)` )͟ AX.4;/N<ίO]:۠Ъ`=lҨۇQ*IN8CxQ{{b^ld`@L5JAƋ,=48:Ϫ?E $^2a'c(z,b#+%ep''Jp|CPTJpa檨Z:{,_HZ#joo DID.cu\y xi0(U,mFn)ld:i77ì^w1 psܻ1c`0f OOV,ƚY59Y۽N4&UrH+m(K1n%&ݚG[ D߅H־S!X8O-zwNh?IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Stylize.EdgeDetect.png0000664000175000017500000000065211747026475027270 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE*X3Tn%F|FtVQ~LyMzylvZ`[.15z58?w}[),2|#v}AoћʕȐǍR;@H/29#(3a0^LzHuCq?l:h3`/],Z*OwtRNS@fIDATx^}E1CQ̽*%EUc@ :p|*cy!R ϓ8J[> T 8Z݊-8`tx2},X7۝!SQNr!D }9o 8LIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Stylize.Emboss.png0000664000175000017500000000063211747026475026521 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DIDAT8OS ${xF(<3@"Z$+2s&w<;o"dw.)e[,{b@nZfb`iJUHѪݘ {RϢ^$:'Tw:=r19o#dK>L0c';i|-ZkHX53G`$c9 vH(YH/XMI4ANjUH!@ R#BIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Effects.Stylize.Outline.png0000664000175000017500000000100411747026475026702 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTEGGGMMMKKKCCCNNNOOO%3KEEE铳䗶*8MJJJFFFHHHIIILLL䚹Z)7L뜻色,9MPPP/=O'5L꘶憯堾ꝼ-;OꜺ薵둰䎮#2J,:N-:N㍬⊪!0I斴摯㍭㋪ᅬㆦ .I)6L呱䏮㌬≩ᇧ߃ޔ&4K$2K#1Jc_]YXҕ刨DDD{tRNS@fIDATx^}E@33f03333oieڽU$rwv@!bʂe2o!$VwFNc[ɨX·0Nqg*1Sub|{g|fz)̾&\ 5\ 0 3i D;`|0>A?Tx4^`oqs`>ʦ`fCv@mX[r\At.)G[ Ì`N1)BWs+:NdsVa*DX.pB&B]H@T3@Pڏڠ wVP63yp-4 Ǽ $H'9{m@U$ZjCX:TgL::?[#{1P=.2F\iA-D 77qXIפb4kaAj% ͼj&Q˫H&s. `jKLE3*ΫX w6_l=@hߊv ,qqIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Help.Translate.png0000664000175000017500000000120411747026475025071 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍOHQڵStSBD,jH hQFtI۲CdBE ,A"HelDݵBumgye}9 X=6=P7NKꥱVd">`m+!tQċZ9~MӒ!wA>>?3ᔿ.Ǯ2 eS7#׸4uf C 'h@boU:}pun P4 ,n^w B=VcW xC`/C*6c=ш &.ǎ]2nB-KzamZ,0AǺK7OM| yL?1vq` ,pB&qv7=hp1tn!ެ)(^/.ކ[u1pJ73AeLqnBIDlXר[Wt?J)˟D IYAa+F=?\J./E.p?!IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Help.Website.png0000664000175000017500000000163311747026475024544 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<-IDAT8UKk\es3d2I&˜JSڦ15B (`$B6n"4U) BKj)$iRB0iK.fƙɜdΜM+|yxx7bg&GG#@0*0"uӑvc L_3,ۈ _Rȟo~ &G-/^l|)J$pY16}KطoP-h3|k u !t"KoST-J>`G0*'>~gϫƂNz$} ǃZ ;SBKym/Wnļ14z]C4#.@)l=۫D v"~SbTHw[LH9wb\gBIw(,E+Msw&`6]໤vT"YKQ[(o6Ll*4MA;(r_!Z"@WMte뤶FpVC< eP !fJn5IşehM=Kx7!H[47v6 TjUCiȱV$V>&d%ױ4lcym wd]ZN&c KSغdr+@/r(ϙ_.(K湅{ zZs(.qim[XUҍ??%f~3s{~OqLJ^B~ e(w3srFIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.CanvasSize.png0000664000175000017500000000131311747026475025335 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.5&IDAT8O]HSaǽ / (*> H.jT" R!VcED'( kn1;<>>lyֿ=/@v {{oY8g32γ΍`z>=$~=~~ ˝Qt_FBߠ84wrh1 ? Pk )/ܥ[0\,˥fЬuEi jm&(}cf#;`Pd2an}WYX+Ru @IJ_k9wE۳ fY=„dD~_tCi'ڮPcWqr+jA_Kx<׫n>8yތWBc/2K~kjP~7*6"rtXllOut:ͦRۅ[0<$Iz !MU'XSXV=n[u@F{G"<qbUVoON! BEP$R)Rj Qߴ[_|<8#IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Crop.png0000664000175000017500000000051711747026475024177 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DIDAT8Oc`@Q If?O&d H7 }+w/:)gbW7[_;`5U<&1^z@E` 0>A\߀A>c;f\oEz 6\\^w8/ ^m4`P FP44J 4J4fPȎ{_INHO'udf6Pʥx&ԡIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Flatten.png0000664000175000017500000000077011747026475024672 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.6%D`IDAT8Oct(/?~37<&pdٛO,hAv]o>9fOy$1ׄdIĸD=]+N&mk '/LoP ,:>!6}nK`;gLF1=歙sMso`oL^1 p ˲3kh 0 ov  2aAw 0%n#D0%O|38 D%w|Lh@Q-  IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.FlipHorizontal.png0000664000175000017500000000062311747026475026236 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDAT8=JQ31>4-M .z nf@D .BA4)Li)I9‰`Y;1OJ3ݍma9 =1!cʓM2y^$&Ak&J)LccJNv#DF- PVʝUkrL X̔nEЦE"$XR aXaa 'a` BS4X\73/D9wbbPN_؞Z`羚 {[ vsx[_%l(!P ag$Do*v.@Xc;#98p!r #k\9jrK],1˾`6<<aN۵>QtŎ􅋙x+Y8uY u6Ӎp7`lETY'M&k[ NW1t;RIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Resize.png0000664000175000017500000000155611747026475024541 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DIDAT8OuMLSYůf.]ą1 GY8!!1dt Ǐ%1Fc4aaDMDZDEQdP)RVXJbIN}9>"kB1k !@$Si%HL)i1.OMt!vnȞ&Tܵv_`>)H}O+ E7*^=כpt&MFAեMMt8>ޅ.v]3^ZY!驥R۠+*vmդdn=Kr6hm&Ķ zRv9{nr^d ҳ87dbdLu+Դ9dbѕY\04B39N.XZ01T4p"c- sJc~f5y%U-}xn_ +#Έ# "OZe *Yz@·sՑ{ qS<2 1/?FIM3HJ PZZ a[qqQ ¨l{PVu  $ؽd#[36? '.t|.ϑ׹lirSZ srWr1:\<{kS/wƽ?`RM,a} *)gѲu}qO5ajHO4Se\`(WQjn[4;e&9\TpKvf4_hbk&:tbՎ,]___yL+U4:F.q^IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Rotate180CW.png0000664000175000017500000000121511747026475025211 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.5IDAT8Oc`4 Y7/ӷwc^vvjb߳e~R?];4msq?ywe;OsrO Ct7'o}sOa.|7@;h;+_L–׋6KNN7@7r\s_ 4gtXk+ΰ1;OO`ڔ7fAW2,u-bNȒ 1;gLfyXei{ꔷ+|v؊7_/ftMsn?/0VG;ti`Crf}7i>[{Gٕu׎F4ƚ–k.:^ _7f+o}k_S=dnIZs.iM4pQ'|Ma.M6]x_<IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Rotate90CCW.png0000664000175000017500000000122011747026475025230 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.5IDAT8Oc``?Aӷ/VX^wpK4wllѯ}Us墟:-J2e_?ms1O>aHŒo*vw0 _k߹' ׍ԃa@Oron0;\zim޹z1-=a@OӧoA+3IWz:Mٟ1 [swR @V5Mڔ7 va7b S=*Ltj1uB\pAԗ}O{UPwms򀶖/fӰ7v؊D4vԣ;zϜ̏sf}Ҭvaku vǎAˁ [7 _L 5|a9tCLRY;21p ~IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Image.Rotate90CW.png0000664000175000017500000000121511747026475025131 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.5IDAT8Oc`4 Y7/ӷwc^vvjb߳e~R?];4msq?ywe;OsrO Ct7'o}sOa.|7@;h;+_L–׋6KNN7@7r\s_ 4gtXk+ΰ1;OO`ڔ7fAW2,u-bNȒ 1;gLfyXei{ꔷ+|v؊7_/ftMsn?/0VG;ti`Crf}7i>[{Gٕu׎F4ƚ–k.:^ _7f+o}k_S=dnIZs.iM4pQ'|Ma.M6]x_<IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.AddNewLayer.png0000664000175000017500000000135111747026475025645 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<{IDAT8ˍOHTQFFR1-T\Y-څPТrQ.MBEwᢍծEI-(V.$Q38{3B&+8?s>LV~vֶ|5Ki~XeBS OL_6_9GoWX&%*JNh0Q t8WTBZ 5*LOq1;SHQ]Y 0 WI'G6tqHa7-@^ೞɪC+eΟT$~ "D:!*4 b{7"D̽|YX$SPhbĢXضK wSnbn|H!%Wʾv"n g`jR)h܏fy֍(Tn?x^ޝ豴a`'ȤqSAK)bW-CTddYin-6" Ic )r4׷\\[$QhcY3? "pOgC?ܵBxdh%+uT":a">LW/'^򞊪ֆi8#M` \v)^tLHIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.DeleteLayer.png0000664000175000017500000000135011747026475025704 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<zIDAT8ˍ;haӤ&V%iAQ/P(Ut(,N:-jqBBV^CS4i8Dik-p{{Ľni-NVj$eV~]|gp=Z}BKU Jyb Ty/Qe#;a4|O16\:Fi!~C˲Ԭ,xoRIϣ3DxWvhrX$PUjR"M(aa Y1% T XԴDi@1ZXcVN0iT`p " !BKQMضF`LBnc*#dD.$ıĪ8f9]Ϧ.&N#­CO3K͞CiҚ-A}401c$I7'3weM4,-3a] [N_Kogq$c8F^U8 Z <`ϩ^C𲟦Xva:+zl熽 /xoLыKZlvBxhpb_MƬ}Ds3+b PQ6j^w#R 8$kV_y[e)g䍟yoMMIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.FlipHorizontal.png0000664000175000017500000000062311747026475026453 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDAT8=JQ31>4-M .z nf@D .BA4)Li)I9‰`Y;1OJ3ݍma9 =1!cʓM2y^$&Ak&J)LccJNv#DF- PVʝUkrL X̔nEЦE"$XR aXaa 'a` BS4X\73/D9wbbPN_؞Z`羚 {[ vsx[_%l(!P ag$Do*v.@Xc;#98p!r #k\9jrK],1˾`6<<aN۵>QtŎ􅋙x+Y8uY u6Ӎp7`lETY'M&k[ NW1t;RIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.ImportFromFile.png0000664000175000017500000000130311747026475026401 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.6%D+IDAT8OOqgͭ=TV[u\$I?l=-%5{`‚Y-gPh g5]Ħ*!Ȼo3Znܧ"\T:8.C%*ɓxᜥ7+ʨBd}lc҃. ]1جKr^2*Ի 9mǾ۹= *P.C"0"2@Y M-`-+hq6՚d}a N'*)ƞWB_WYsp+38_qe :<$oc5V<- Ghk 6TnvT^xFyp2ZYlAtx1>t} _&Пo=y,Ԛ{s֊5p IùK94JTOx! V6×$#H*n)d"9#fdd"L$-=LrœO1^ۏ% uX~f-tws7 h ]yѶ8,IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.LayerProperties.png0000664000175000017500000000135411747026475026642 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<~IDAT8}OQ_pDMƄaF.( Ɲ ƅ!DQl@cP6E~L ZfNAP s{*ab1DQD"aB!E4$Ir2|;B(Y,8DpB(9,Ʌ@ *EQ@ BɮD\&YA+-'IRp\l[ ZB/I;/]L&<O#2z'MJSRGkb8YLwc%(f+f^KdF~yyYyQqY`$mLմEAɌ|.S "B$)DwvU̾"#sڡ2Nl8wIc5ыIX&_`0ߴQej,[pg񛹉QYRnZW}$' ]˞ I2kzU.EJ (DzuĞ$n VӘ> {xpib"n$Q?0tNS5|]΃mU?4"}L!&.|IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.MergeLayerDown.png0000664000175000017500000000112511747026475026371 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥?kTQ}{/!vZ:ISX;M&_AA l33X4[̜vIϿݏ02RF48 ]٧gQFo 2!&dd$X#9?[>I^4Bi<ׂtf8]; _it&8M8U*J$DMӉ~xQ`p4ٝ_U"\Җ9/F(KX(޺#0YD-Ս*m5tLRx,/\ڎ454cZz B p]ۋs+.Ƅk#*}hfvxX lJ] 48+΀-Iy֞$8j{ g53~ '{;ᅵ3A QOz5/HeW@޷J4v 'P0IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.MoveLayerDown.png0000664000175000017500000000057311747026475026246 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<IDAT8Oc`XC׼Ҷ_8r dN;8&h@Jcd]Ot_c)~.JA)Ϝ_!*Y˦}z_މZ#/!Ϙ׷&E/$/̕`X$t>hvIА9맜/ʆfG/]+֌lHp2+I X|ƉlCG#L/IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.MoveLayerUp.png0000664000175000017500000000066711747026475025727 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs   IDAT8Oc?Ed%"`ݡ!4 }p>{߮6А^ 06XS΃ fq^kt= Ԝ1oM^7H:_k+!p'U~9sSJ֧i_^d/!`Ζ o? JO5 0\_7x iU<&^3k iaD"H!׼Ҷ_vIJ<a@@!g&jK<IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.Layers.RotateZoom.png0000664000175000017500000000144311747026475025613 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.6%DIDAT8O]Ha'좋«.ETER *|X~D (?2}@bZa̤fԜ&99߹ݻ,lՁss~NDұ᰸/Ԕqnn44?xmG ,;y{ОʚFmKanj:qbIšř'.޾73,fX7 vfᯐZUh;U6q~ Ӄ':&mAEvThFvIh֋:"-~|`iy*ta0z@bOV ۇBZI<ډwe0J0HlG՝FV`Gb^* ?e|Eiq;uj{MP4 !DGČ_XrkCJv[x=[Ƅ+1Atz!s|%pb21Y5JU>AVq9NẔuL D'(-WqNvtzq|GLf 2 ㊣o-nΕ & Sd2R!žr `L~C%EBIѬqL.\+K=IK3EQQ%IJJL w~NxT5IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.ActualSize.png0000664000175000017500000000121511747026475025224 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs  IDAT8OKQ'.o"(-M\$(Tf7Z[R"MzwpV.7EiPB,(nsvXKx.y>ᜍZi4 ^k\PXo]zF]D>^?#<ҵ zAp|(p N-361n;코V9,-9VVy'x$cPo=QR@Pɥ33b.y ?8fLͦ&ng?3 LxT+b҅K}s)^}J/l:-.l/t86(.)Ls (]yD2,HFtb9ixcnjU8#vk/\<-C*@t8Qf\{Yi(DQA?cKvl+]UE\m[(۳ >7.IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.Grid.png0000664000175000017500000000073011747026475024046 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<VIDAT8Oc`&ț}?̼KpvHI8nd&߄+<g4g9}ʍ)OuD A}*(ߥp;AYSi918Q@64!;;\ܥp' gg 99@g; r2mA(j 8c`0I0-bs?F8d3[[gnoiҪ+D/49A~ 8lF0l6ÝH@~v90MVNZ %(mpX5LBvE*"rr6}#ڹIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.Rulers.png0000664000175000017500000000062511747026475024440 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<IDAT8Oc\ ?# ]@ (_7_[/Sdmk 8_j~; 7 0XH3[e ?|_BwPܺ{l5Psib9gD9 9df:7o,Z?Iw("9 f, Oi#PJ#; /=Ni${a)C=%O^ ګIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.ZoomIn.png0000664000175000017500000000125111747026475024373 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<'IDAT8Ocd,Q*w_^{ySUhBB&:` SlaωO_ʽ36_6a79185GdwJMޣo?W_oüݢ`5dso _/9F6AMX `mGϿ؀[o?x]tu`{6N>~kDKO=ߴ"&h_rwɞϼootѧ?ES7>Հŋj~O`6x^^<h| JmؽU_w@;צw +tr v/L lsMl8ݢ@[//d!y'6!kf;/Q?<{cӵ ŏ 1 _ K! LȆl5_;Pe<+S~~ށxs(=Y7sIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.ZoomOut.png0000664000175000017500000000125711747026475024602 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<-IDAT8O[Hq502z]Duń ͤ@.cQ:[vQ5*VpEc j9eζekVNnmӷi{ oq-̶0b5ڔHGckKJ|*m=bk[~1YgXkv|W5U ׊ohӚy~H TWy>pZAbuzS202C2^wQӓ~3}&IGfozgO6A+7cǢxD־ ً`~B5"Ue~ՃfKc b^ ն gBpј,mP|kf ){Vܼ2cq>qϐdEKqNT^xAe^B d˗CIENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.ZoomToSelection.png0000664000175000017500000000112211747026475026252 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<IDAT8Oc`@0>V+AՁl#F7uJ ;̡-zq’O/pEpȪrthÎ>kOxbOw˂͵pf-^a/ǯ>~3\_TFMdMY+w?ǟ<J"jx (kȭ'|_ox?c%v~gn9ؓ/O>]~oˍqe%XZLԚݥwyλOonF0ңf\\6si?/j jؐPphiɪ;ȨK+KJIG9m:=u ]cӵ*w  JJ*~{[ (+; )))a 6/IENDB`pinta-1.3/Pinta.Resources/Resources/Menu.View.ZoomToWindow.png0000664000175000017500000000116211747026475025600 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<IDAT8Ocd`02a<%kGE\B )Cv5€tkO^_6`G>\ӏ`+wG^{3gS˂u/ǯ> |=;dQSkr?|o,/"׀zoщgS6`8ؓ/O>]~oˍay%\|0#3OyRY pXBQ\?~#'7s?5MbMHpqhiɪ;ȨK+KJIG9m:=u @^@e.Dfbbzֶ`C C9p5 JJ*~{[ (+;dL0qrrp>_xuIENDB`pinta-1.3/Pinta.Resources/Resources/Pinta-16.png0000664000175000017500000000106311747026475022644 0ustar00cameroncameron00000000000000PNG  IHDRaIDATxcd08ϖ2 ۚH_NuZ'ڀtKvg1Hwk,oտь?/amy<xn?{[?o4㊌6#G18~Kڪ?\y=l{Ryp![72Hx"(}W:&ؙιw;{ЖMe"| ºmC׈6_>U!bȡ>V34N!3%_jgLViz*˦0/eCJM6 %_Xq~Ê*o@r)gb\፣ن5B`:jzLs Zn1d.T0|gK&Ab/ d9h'(_wg(D Ae4,B)!uT(pȁ(mxo(g!цNhOy0 H$@5W?+ۖoKAA2y"GdN\/(r<9 ¦M555)eee?<1@Jj_$EBHFv76@\\h4B__8N`Yr뼨\IIInc$CCt ,, C =NTx{kO|*#i B%1_v3R4 ;`6mh`aq捎RVkgiP϶~+Յ*;/dPjW;\fg4z+}Mh :u3ͬN!bi a jx}Z\=Wak ??'HY*6O[O@g/}('9uO[vUJv oH:[S}}(Gv1~z] ɟ‘՜ԯِa:Pf`0ZAg\-\V(-3viRR2ϋ5r\Io_:7==ݲuVނǹj qP( 8y޽ LK/3gOsoM3n…܎;(le0bI5ivk׮ Y 篺xQ OVk׮!COmٹs'iۡ \Uj5Q1 P*-y{FBIǾVm8^B9a?|-V\\z|#ph 00rrr {@$NmTTY10P;(0@aa!c5R;J$3 g:Dz%^} P%''Fk1@;!; H/ScK/8rXɎd돏Rm(qS^[a=~so|oenIENDB`pinta-1.3/Pinta.Resources/Resources/Pinta.png0000664000175000017500000000153011747026475022417 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍSKQS@VT ^(R2%JeDse4MԅѼl˼\NksK2S\MDslj ᧳A=F\|40ZQ8Rj]8Ə:b1djaIaP~ =9_/(0ƏL23ia5FgXG|fPb 4\ I?G`j%?&l}tLD ,3]$2{pj"XEG2i(R^J#F%)hIt d8̶Q&=?؁6xcy[3k:dxA?|#̨ !Kp6HߴlX||QP ,ͰdXlÛp~PKc.^ :Aц97&)\P`,Y61\r>N `Ru6im: o$E-ޏ2 uHAWfLBIJ!*W/gi:L/9zXk9#-cT\)BqIKPyp d0|;3}sHdu{X}2ZaV).EkLǂ(c 6$⾇L8Gܩ`|-a`IǴ# we;FH˝eIĒK1~ )e]CM:nMH31e=w{d |?7b&EQ$Nv_La@\IENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.DownArrow.png0000664000175000017500000000057311747026475025670 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDAT8˥?KQi H*.EA!XX vc!v{;,ӻ\}Ï7Ibc0u2B^h gw`4+@jɥ s5"H hPǁh"H.EBFݜ& 5EɃZn+;l8r9~c$ h>*k>hLLjƳRwUd:<$hݸIENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.Image.png0000664000175000017500000000113611747026475024764 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥=kTA3޽& a#Q`TFURXH? B,LA@Al6ٹ;s"fnH`kU?)4[57/.dɣ,D$gŎw]>|xNih:c;Io]bFxl"= c"@a퐖~д-wiDa(``.&w(Å6iҶ9#!zDNKYNB^ϙ 1J=L :HvL4NrYBgM~mmS668b{N2ElrE@r>?V#ޓtF5@9Ub"^mhlnz*yR 9䤽GE棤/>rE^}^Ulm<%D{c@/*K+# =@)wWs33q-\woړĿIENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.LeftArrow.png0000664000175000017500000000053111747026475025645 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8c?%B0 (=ĻI12$C_?3¿~1`._edj>)*n90_ ѿV\ٿ0aX`ſ4ܟ@_P303'×^ 4G)1vUMB9 i;N@ͺ@Ռ㡻zZIENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.NorthEast.png0000664000175000017500000000056011747026475025651 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<TPLTEÉnj}uŊsm\Td[UNYRZRkbȍf\bYun^VWP~meƉ`Xg_~vɎslGtRNSzIDATxbFĀ.@!@*(+fDGB 3 @Q)iN0 fm kC 0C 0 srRIENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.NorthWest.png0000664000175000017500000000055611747026475025704 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<TPLTEÉnj}uŊsm\Td[UNYRZRkbȍf\bYun^VWP~meƉ`Xg_~vɎslGtRNSxIDATxbFĀ.@!@dD@L  lP8% L|<,`&@la0Z  uR~o=IENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.RightArrow.png0000664000175000017500000000053511747026475026034 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8c?%B0 k_WAPz"e_~ ¿~1d7۷.j3Jؖ?7@&˗zZYj'Me7Xo!o+]r{:g0ARR oܽp{=x -YXPAku1ba7lIENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.SouthEast.png0000664000175000017500000000056011747026475025661 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<TPLTEÉnj}uŊsm\Td[UNYRZRkbȍf\bYun^VWP~meƉ`Xg_~vɎslGtRNSzIDATxbFĀ.@!@a DE 8 @P- l¼`@ b3*).f!@!@tR%,IENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.SouthWest.png0000664000175000017500000000056011747026475025707 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<TPLTEÉnj}uŊsm\Td[UNYRZRkbȍf\bYun^VWP~meƉ`Xg_~vɎslGtRNSzIDATxbFĀ.@!@``f3" ,fDUX $8/ @A1~>@aX @!@!`vDR\ IENDB`pinta-1.3/Pinta.Resources/Resources/ResizeCanvas.UpArrow.png0000664000175000017500000000056411747026475025345 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥?/Qϲhg5j%'F,[ LH 3(vw=fcoN{O~9VM4Q7ܿ)v/WQ=&bpSO ^'&^:\˨6eND!& 9꒣_|?\ srx,g*,(F#d[OaAA*P p1O+C$`)*w`A#0$ *?b&NRIENDB`pinta-1.3/Pinta.Resources/Resources/ShapeTool.Fill.png0000664000175000017500000000043111747026475024126 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v3.0/WFIDAT8Oc`& 🙡? ~$A=@@Mρ?ffiPRhHfT5'B3@or.C& Gu3CLG7?A 2 (آf0-H2fvdl&X %6qo ePԤB{IENDB`pinta-1.3/Pinta.Resources/Resources/ShapeTool.Outline.png0000664000175000017500000000055611747026475024667 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<IDAT8O-0!J$YTr$G@"!Hd-ޗ d$eA;S71Wy+\_wiڳ0(q.|#OMd'ݶK=lS2Dx)0w?NSB9eL\]#G[ Pl@s{4R&lji cf&fZX$jHN4e@*ك Df/F<IENDB`pinta-1.3/Pinta.Resources/Resources/ShapeTool.OutlineFill.png0000664000175000017500000000056511747026475025476 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%D IDAT8OcdO?pCfhd`b h83 gu/ 3DG z3 vu fs~hD6v=C26x0XfJWfRTW oeZlta|X>q bRX0s}dxj"byp@Yc%@CP ! `~b Q``>Nd^J DB,`L5|NUIENDB`pinta-1.3/Pinta.Resources/Resources/StatusBar.CursorXY.png0000664000175000017500000000075311747026475025017 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DFIDAT8Oc`@$s0 r2:hoR ;8K]Bn] `Ák?\a%S:F1 9ͼRZ4W[?n8aC{1٫ho??}ڴP W {vE??|ۯq `:ۏ__ƃO]y0 ȀO_?tǯv"+?{~\V [ãUo!IENDB`pinta-1.3/Pinta.Resources/Resources/TextTool.FillBackground.png0000664000175000017500000000043311747026475026014 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|dIDAT8-NQ "`$aQ(D +C*k7@Y7Bot&9B^rÿ5nQa #o ΀$xU.HNFkM-HFM_qRpyp"YM7CCXMi+.[0رЋ㮂%B"q/]@V;>viҙ/(HZřIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.AntiAliasingDisabledIcon.png0000664000175000017500000000014611747026475027553 0ustar00cameroncameron00000000000000PNG  IHDR7-IDAT(c`!^@PG+84F1)f[tl7IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.AntiAliasingEnabledIcon.png0000664000175000017500000000032711747026475027377 0ustar00cameroncameron00000000000000PNG  IHDR7IDAT(cπ`H``;H-H)  P,pPF;Tă*`09,< ` ~``PoœuZ;Բ 0P5,)X3$| \UF8kȊMd)%IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.BlendingEnabledIcon.png0000664000175000017500000000023511747026475026554 0ustar00cameroncameron00000000000000PNG  IHDRRPLTEP@w;k<]wtRNS\4IDAT[cP8 LCA 2\ Q(q ̂ €fv&IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.BlendingOverwriteIcon.png0000664000175000017500000000021311747026475027204 0ustar00cameroncameron00000000000000PNG  IHDRb PLTE@@VtRNSMUs,IDATc0jժ |} LXU 0R 2V`IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.Bold.png0000664000175000017500000000046011747026475023626 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT(cπ2PKAyBS',aBq} V^1֧O+CAz}h_n-c(H|ߧX|Q ,a2yy4 /@SVjh l=']=K Tz\JZz_IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.CenterAlignment.png0000664000175000017500000000035211747026475026025 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<|IDAT(cπ01PD /0Ű?1&00d 9Ǧd3!?x7ghV#P70ClU/?l #ű V,ѕIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.ColorMode.png0000664000175000017500000000157411747026475024640 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8UMheoٝov+/4 ` PE^O) x"DЋz(XEi)H 5g&ٝ8-=g69! :}gV{L@1;_ο0|q$.6C-ş+eIQx״gcsGm"JDZ#Ģ\G-DE+,(#"Wp!G 6!!6.2z.io/e42iB$B"4`z0rxѪ^5il>6bE`t~w]Wmrwf34H&\_3fu!|Dp@Tܞ4PS#*PF (x`_+3qI$78.0! `;cIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.LeftAlignment.png0000664000175000017500000000032111747026475025473 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<cIDAT(cπ01PD /0Ű?1&Ű8R#یvC_hzo4`>Ll@FL.UIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.LinearGradient.png0000664000175000017500000000014011747026475025631 0ustar00cameroncameron00000000000000PNG  IHDR7'IDAT(cd  +OP # U@#x+֤IENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.LinearReflectedGradient.png0000664000175000017500000000014211747026475027451 0ustar00cameroncameron00000000000000PNG  IHDR7)IDAT(cπ0Td(U@J#VgRIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.MinusButton.png0000664000175000017500000000036511747026475025241 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.0/WFIDAT8Oݒ D."8 uqB:Sn xy9<i c $ޱV9oS_BPJ4w$PI^(xUGk6mZoK)Qqs vIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.PlusButton.png0000664000175000017500000000043711747026475025071 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.0/WFIDAT8Oݒ D4!*MX O;*CbX߮c{B>> vvv333ggg(((^^^)tRNS@f`IDATx^G0@jkf]2 nF9?A~P"jc)q8tpAK߽ݰ7 e̫>X -KUIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.RightAlignment.png0000664000175000017500000000032111747026475025656 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<cIDAT(cπ01PD /0Ű?1&@@P0xhR#یHt^yω6?ݿ3n1`dHLdqIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.TransparentMode.png0000664000175000017500000000034111747026475026052 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<sIDAT8c?Cά@|n@b8Y$jAٞ !a @f8" W0Pp/zJ^( 9WTMZ0/x1C5@| .'|BIENDB`pinta-1.3/Pinta.Resources/Resources/Toolbar.Underline.png0000664000175000017500000000042111747026475024670 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT(cπ2<}~/q}4#cXQ??` rg )pT?IH 1DDRc ׏MyC 2|E H U/? "nyIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.CloneStamp.png0000664000175000017500000000137411747026475024516 0ustar00cameroncameron00000000000000PNG  IHDRagAMA|Q cHRMz%u0`:o_FtEXtSoftwarePaint.NET v2.6%DdIDAT8OKSa ?v m]di5[fJܙnM~8tfk͚,7e*YHbR =ghdF/<<|ϖMg˶myi&}brοkLxu5f +Ìٳབ ꍪuZ~ Q lPqCAygY/wlT&^K]p}Yvt'v#X{r9>h-H|$n k KؖjgFp*ncg[_:iDˌnuMެC2X &Fj5E tj"~`~O `ugGa(E=#?ې΋+-S ͙$wdc*^1*3#ߥݘvf@hڏ'0?Lh{)h4gwcy8 b,xӖ enT۪O2zHG nc2X}yP؉w>1zDu@]Y8?&m)430UJ-?e[,:8''sⲜx$,:e\F&r/&@t,BR&&@(dnO?4~yUIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.ColorPicker.png0000664000175000017500000000113711747026475024662 0ustar00cameroncameron00000000000000PNG  IHDR(-S2PLTE***krnUtnYnV|ckDl@}nZ>W:IrA]\dQmYC_=RyKkjjTFd?bSc[HE`Qٺ|x@j=س֯***ɯ箮rrtϭ]]^***%%&}ox\܄jڠҁۗtlقeqekY0KtRNS%t=n1_?6 FfWibj4~' 5d)*( ?hQIDATx^}@ j۶mIm_UݹMHjyJIįHeAAbsOl \^9-CaE},L${*3fQ,!\TkSlN}hn&zMIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Ellipse.png0000664000175000017500000000057311747026475024046 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE1n1n1n1n1n1n1n1nqgsúzo;tRNSYFjι_,IDATx^E@ IZ235:/3'<7t`0lm\Lo>&!A{v0LeQR syR kOUEpn\A v~1IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.EllipseSelect.png0000664000175000017500000000033211747026475025177 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DnIDAT8Oc`,,,` D$/ ]#:k@6 p Et^!v ` b/BWP?`qJW&k2re&Ph蜆E!(qz IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Eraser.png0000664000175000017500000000057011747026475023667 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%D IDAT8Oc`%j7?:gi;;Vpd?O\|c-4~lH f3HQ3b5M+ R4c@fXH d+.ih1ٚA.ow6^ao7{3q Ɖ!lTU?i%l'ftaK~i3?|NP<Fu ȹIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.FreeformShape.png0000664000175000017500000000070411747026475025173 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE1n1n1n1n1n1n1n1n1n1n1n1n1n1n1nD|H]tRNSjY_bUHPCIDATx^m0і긻1* . (5I cʀ$ڕ^j6,t.-*G|VڝnO1y:'Y!r+{~`ǓmE `|rN2iOooyIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Gradient.png0000664000175000017500000000071111747026475024200 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v3.0/WF]IDAT8O͓-hPDD$*bʠ""F) Ba0SHaP:Ȫ:7977997799797799wvOBl^=7'R;qkTUbltd(0e$AGE}b;j:zzxĕJ*FhrlD lpmk|>:ĭ]?$e'g'o NGʲ:ęE ER 9 , i5؉ٙpN8!'R@ksm4fh8Z[3M@L5 3a"x^nyeu~y|IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.LassoSelect.png0000664000175000017500000000047411747026475024672 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DIDAT8Oc`#@1*""S 8H1f4C>ՀaOmF7{2?6xy52ࣔ5|j~P@IJ D0Cee_q0 @w E)H 5#GPIMؼ(ϏSb;pPgB<1  [ )uIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Line.png0000664000175000017500000000067711747026475023345 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTEoWgWWi_ hWg g h hWWWWWWWgWfWWW ihWW hWW hWWWWWWWW ghWW0Omg hWW'Z<5 j镕Tb̦:tRNS@@Ώp瀿80s Qqn (PiבߙOBzoX]``N"(IDATx^mEAwݚߋl xM%hLsKxCҠh XOj_yl ^ %` Eb Ɋ W(B@әp] pi48IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.MagicWand.png0000664000175000017500000000107211747026475024276 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˕K"aƿS!bteY!!):ME][HZeATʶ, 5}3o&ڋ/{ޗ!S(g1lniXgۆ1KTzd8"P$'ZRK=/MVJA(8١'Mع/VQ^CdGVu$GX~k db8LUPס*&Qh>BF(7dT%H NX,\.hgɟuq.- x7dǃ@ x<<;ц;arMK|n7~?,umgcrC> dB}>8(a| D"=#L `\. ^Gd2hp:BCjJQ07Vв?P vIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Move.png0000664000175000017500000000064611747026475023360 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<$IDAT8Oc`E[N_tO2 2"C@ Y+Y.hq 7pIK  \Զ{XG!32$z_2߀(LYŀo?KzoʞK+Kfl_ݷE%KGo& gL^9c96kԎX544CiL4ZO3HX!59l;LT #ۈ" cx¡]IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.MoveSelection.png0000664000175000017500000000065411747026475025225 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<*IDAT8Oc`E[N_tO2 2"C@?|6dӮd?|ͧ/tҒ$Cm8>}?ym3o58yDdʲ([7[E%4Pozt^.i_?Go& gL^ ?rDN+.Ÿ )Z;s*jhhҘ)h?(f&&?C7-@; )Nt-m JΈ"mExvS[w )\àʏGl nK/D"vLv2XԯE>ae:F^Ǩ?3 r7Fea+s+Yz]bEsLbJR%؜q1;<\f$9F ,3FzOn8NȔKOgb1ȤP(dތ%:ZVxP,AE7jґI@p'? T*:}DB|'\.W bOjhkPbjIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Paintbrush.png0000664000175000017500000000104411747026475024562 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8c?%,MGf J%{x4>X݃wv'U,PO~6?h}g UKyž?^?PsQԬ :DPƭ>hؒ<9VlZ;yӚ9gIk4yno@͂XP#㦵sy7Ui͌f}~skXca ߀U&%+V'ԼuӚy?6oҚ;t@8Sbe 8oOOA`fi/fȒs&N;k[l s,YmZװi~Ħy|%cƽ?IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Pan.png0000664000175000017500000000057511747026475023171 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v3.0/WFIDAT8O0 #`xG`-xń8&F.P%M.^[!m8+!r] EpGjt@% ,Nx,>: ~8m 캎2 \JDw1;CJܶTMӇ_pyb>m9e^8&,a9dʲ\5|'Յ )MSš_D@B ᡟX>Y3Yݳ6IO5 I# IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Pencil.png0000664000175000017500000000070211747026475023655 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<TIDAT8˭?Hq][ p@\hZr0+ʐܲHlHH*$:2,S *A = _B\x7ÖZc<oozڈBЊ" 9!B!>gvڀ,;SRNXjD|D62 ( 8`~vPOoCvs 8 ]|aɄ[ z/Nİ*tuXİ*QT.;kDbՀ̱ <ݏy#~=庠q]}fĝZtlT3R%~>#w -;06m7wU\&IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Recolor.png0000664000175000017500000000075711747026475024062 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DJIDAT8OKA?E A1E(/^?@h8dk&E$p8wކy\:\KCQ8M`7`UgD %}BOF0܀Bm>By8( ف<Q]TѩdW!dդhL [u\Yb.B'!rZr^7 Q`*${e[&]KybtV~e; sPj:=XoŞSpC;hJob&Zg@Q DlUjlVMD航9mMo®kUIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Rectangle.png0000664000175000017500000000037411747026475024354 0ustar00cameroncameron00000000000000PNG  IHDR(-SQPLTEX.tRNS@fYIDATx^@.gsҫtxl1ͮAy!J~p ORWEw"aB b!V@nka9!~ΑdIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.RectangleSelect.png0000664000175000017500000000027011747026475025507 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DLIDAT8Oc`L?1ahFy0HE@] B)6b/Pl^|:S[*l ~IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.RoundedRectangle.png0000664000175000017500000000062211747026475025671 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTEXXXX@*tRNSpYJIDATx^51틙9ž(E(#mS 4gg&5p2EW4G P6M_).%\2;!ȉjg7Y209\u-f[+`ZB :. cx^ #.;IENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Text.png0000664000175000017500000000061611747026475023373 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE>>>tttPPPBBB^^^lllzzzQQQbbbQQQmmmkkkOOOLLLQQQ]]]PPPUUU ___ --- QQQlll>>>ttt^^^PPPzzzbbbBBBx'tRNSR/+aљ13Ԁ #'(&!H4wIDATx^]UP DQ PbJUw>F@wfiÂ, ` v.6!Os09C dPk͕Rzr7 xIENDB`pinta-1.3/Pinta.Resources/Resources/Tools.Zoom.png0000664000175000017500000000114711747026475023373 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥kaǿ$F?P*BEpԭ 8TwݺM;TE!"AVD 1 &oysV$yg>jص֖9b C cxfz ̶3a Bhw#2IdST".N:0 ZcݓTOtE|CC>)qWDk6'w.zkJpQ0 toIO^> o?u(gOĵM?2gV\g6W'ghz"Qh}+FDjދ%7.mIs33\r(~J72ˡIENDB`pinta-1.3/Pinta.Tools/0000775000175000017500000000000011747026475016013 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/.gitignore0000664000175000017500000000003311747026475017777 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.3/Pinta.Tools/Brushes/0000775000175000017500000000000011747026475017426 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/Brushes/CircleBrush.cs0000664000175000017500000000374011747026475022166 0ustar00cameroncameron00000000000000// // CircleBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Tools.Brushes { public class CircleBrush : PaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Circles"); } } public override double StrokeAlphaMultiplier { get { return 0.05; } } protected override Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { int dx = x - lastX; int dy = y - lastY; double d = Math.Sqrt (dx * dx + dy * dy) * 2.0; double cx = Math.Floor (x / 100.0) * 100 + 50; double cy = Math.Floor (y / 100.0) * 100 + 50; int steps = Random.Next (1, 10); double step_delta = d / steps; for (int i = 0; i < steps; i++) { G.Arc (cx, cy, (steps - i) * step_delta, 0, Math.PI * 2); G.Stroke (); } return Gdk.Rectangle.Zero; } } } pinta-1.3/Pinta.Tools/Brushes/GridBrush.cs0000664000175000017500000000366511747026475021660 0ustar00cameroncameron00000000000000// // GridBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Tools.Brushes { public class GridBrush : PaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Grid"); } } public override double StrokeAlphaMultiplier { get { return 0.05; } } protected override Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { double cx = Math.Round (x / 100.0) * 100.0; double cy = Math.Round (y / 100.0) * 100.0; double dx = (cx - x) * 10.0; double dy = (cy - y) * 10.0; for (int i = 0; i < 50; i++) { G.MoveTo (cx, cy); G.QuadraticCurveTo ( x + Random.NextDouble () * dx, y + Random.NextDouble () * dy, cx, cy); G.Stroke (); } return Gdk.Rectangle.Zero; } } } pinta-1.3/Pinta.Tools/Brushes/PaintBrush.cs0000664000175000017500000000433711747026475022043 0ustar00cameroncameron00000000000000// // PaintBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Pinta.Tools; namespace Pinta.Tools.Brushes { public abstract class PaintBrush : BasePaintBrush { private static Random random = new Random (); public Random Random { get { return random; } } public virtual double StrokeAlphaMultiplier { get { return 1; } } public PaintBrushTool Tool { get; set; } protected Cairo.Context G { get { return Tool.Drawable; } } protected Color StrokeColor { get { return Tool.StrokeColor; } } protected ImageSurface Surface { get { return Tool.Surface; } } public virtual void DoMouseUp () { OnMouseUp (); } public virtual void DoMouseDown () { OnMouseDown (); } public virtual Gdk.Rectangle DoMouseMove (int x, int y, int lastX, int lastY) { return OnMouseMove (x, y, lastX, lastY); } protected virtual void OnMouseUp () { } protected virtual void OnMouseDown () { } protected virtual Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { return Gdk.Rectangle.Zero; } } } pinta-1.3/Pinta.Tools/Brushes/PlainBrush.cs0000664000175000017500000000413111747026475022023 0ustar00cameroncameron00000000000000// // PlainBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Tools.Brushes { public class PlainBrush : PaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Normal"); } } public override int Priority { get { return -100; } } protected override Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { // Cairo does not support a single-pixel-long single-pixel-wide line if (x == lastX && y == lastY && G.LineWidth == 1) { Surface.Flush (); ColorBgra source = Surface.GetColorBgra (x, y); source = UserBlendOps.NormalBlendOp.ApplyStatic (source, StrokeColor.ToColorBgra ()); Surface.SetColorBgra (source, x, y); Surface.MarkDirty (); return new Gdk.Rectangle (x - 1, y - 1, 3, 3); } G.MoveTo (lastX + 0.5, lastY + 0.5); G.LineTo (x + 0.5, y + 0.5); G.StrokePreserve (); return G.StrokeExtents ().ToGdkRectangle (); } } } pinta-1.3/Pinta.Tools/Brushes/SplatterBrush.cs0000664000175000017500000000503611747026475022563 0ustar00cameroncameron00000000000000// // SplatterBrush.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Tools.Brushes { public class SplatterBrush : PaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Splatter"); } } public override double StrokeAlphaMultiplier { get { return 0.5; } } protected override Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { int line_width = (int)G.LineWidth; int size; // we want a minimum size of 2 for the splatter (except for when the brush width is 1), since a splatter of size 1 is very small if (line_width == 1) { size = 1; } else { size = Random.Next (2, line_width); } Rectangle r = new Rectangle (x - Random.Next (-15, 15), y - Random.Next (-15, 15), size, size); double rx = r.Width / 2; double ry = r.Height / 2; double cx = r.X + rx; double cy = r.Y + ry; double c1 = 0.552285; G.Save (); G.MoveTo (cx + rx, cy); G.CurveTo (cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry); G.CurveTo (cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy); G.CurveTo (cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry); G.CurveTo (cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy); G.ClosePath (); Rectangle dirty = G.StrokeExtents (); G.Fill (); G.Restore (); return dirty.ToGdkRectangle (); } } } pinta-1.3/Pinta.Tools/Brushes/SquaresBrush.cs0000664000175000017500000000367511747026475022417 0ustar00cameroncameron00000000000000// // SquaresBrush.cs // // Author: // Aaron Bockover // // Copyright (c) 2010 Novell, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; namespace Pinta.Tools.Brushes { public class SquaresBrush : PaintBrush { private static double theta = Math.PI / 2; public override string Name { get { return Mono.Unix.Catalog.GetString ("Squares"); } } protected override Gdk.Rectangle OnMouseMove (int x, int y, int lastX, int lastY) { int dx = x - lastX; int dy = y - lastY; double px = Math.Cos (theta) * dx - Math.Sin (theta) * dy; double py = Math.Sin (theta) * dx + Math.Cos (theta) * dy; G.MoveTo (lastX - px, lastY - py); G.LineTo (lastX + px, lastY + py); G.LineTo (x + px, y + py); G.LineTo (x - px, y - py); G.LineTo (lastX - px, lastY - py); G.StrokePreserve (); return G.StrokeExtents ().ToGdkRectangle (); } } } pinta-1.3/Pinta.Tools/CoreToolsExtension.cs0000664000175000017500000000341311747026475022151 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; using Pinta.Core; namespace Pinta.Tools { [Mono.Addins.Extension] class CoreToolsExtension : IExtension { #region IExtension Members public void Initialize () { PintaCore.PaintBrushes.AddPaintBrush (new Brushes.CircleBrush ()); PintaCore.PaintBrushes.AddPaintBrush (new Brushes.GridBrush ()); PintaCore.PaintBrushes.AddPaintBrush (new Brushes.PlainBrush ()); PintaCore.PaintBrushes.AddPaintBrush (new Brushes.SplatterBrush ()); PintaCore.PaintBrushes.AddPaintBrush (new Brushes.SquaresBrush ()); PintaCore.Tools.AddTool (new RectangleSelectTool ()); PintaCore.Tools.AddTool (new MoveSelectedTool ()); PintaCore.Tools.AddTool (new LassoSelectTool ()); PintaCore.Tools.AddTool (new MoveSelectionTool ()); PintaCore.Tools.AddTool (new EllipseSelectTool ()); PintaCore.Tools.AddTool (new ZoomTool ()); PintaCore.Tools.AddTool (new MagicWandTool ()); PintaCore.Tools.AddTool (new PanTool ()); PintaCore.Tools.AddTool (new PaintBucketTool ()); PintaCore.Tools.AddTool (new GradientTool ()); PintaCore.Tools.AddTool (new PaintBrushTool ()); PintaCore.Tools.AddTool (new EraserTool ()); PintaCore.Tools.AddTool (new PencilTool ()); PintaCore.Tools.AddTool (new ColorPickerTool ()); PintaCore.Tools.AddTool (new CloneStampTool ()); PintaCore.Tools.AddTool (new RecolorTool ()); PintaCore.Tools.AddTool (new TextTool ()); PintaCore.Tools.AddTool (new LineCurveTool ()); PintaCore.Tools.AddTool (new RectangleTool ()); PintaCore.Tools.AddTool (new RoundedRectangleTool ()); PintaCore.Tools.AddTool (new EllipseTool ()); PintaCore.Tools.AddTool (new FreeformShapeTool ()); } public void Uninitialize () { } #endregion } } pinta-1.3/Pinta.Tools/Makefile.am0000664000175000017500000000220311747026475020044 0ustar00cameroncameron00000000000000include $(top_srcdir)/Makefile.include ASSEMBLY = Pinta.Tools TARGET = library ASSEMBLY_BUILD_FLAGS = -unsafe INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR) BUILD_SUBDIR = "/Extensions" REFERENCES = \ -r:Mono.Posix \ -r:System \ -r:System.Core \ -r:System.Xml \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(MONO_CAIRO_LIBS) \ -r:../bin/Pinta.Core.dll \ -r:../bin/System.Composition.ComponentModel.dll SOURCES = \ BaseBrushTool.cs \ Brushes/SplatterBrush.cs \ ColorPickerTool.cs \ EllipseSelectTool.cs \ EllipseTool.cs \ EraserTool.cs \ FloodTool.cs \ FreeformShapeTool.cs \ GradientTool.cs \ LassoSelectTool.cs \ LineCurveTool.cs \ MagicWandTool.cs \ MoveSelectedTool.cs \ MoveSelectionTool.cs \ PaintBrushTool.cs \ PaintBucketTool.cs \ PanTool.cs \ PencilTool.cs \ Properties/AssemblyInfo.cs \ RecolorTool.cs \ RectangleSelectTool.cs \ RectangleTool.cs \ RoundedRectangleTool.cs \ SelectTool.cs \ ShapeTool.cs \ TextTool.cs \ CloneStampTool.cs \ ZoomTool.cs \ Brushes/PaintBrush.cs \ Brushes/GridBrush.cs \ Brushes/SquaresBrush.cs \ Brushes/PlainBrush.cs \ Brushes/CircleBrush.cs \ ToolControl/ToolControl.cs pinta-1.3/Pinta.Tools/Pinta.Tools.csproj0000664000175000017500000001516311747026475021415 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {526152F2-2829-4AA6-B2F2-232579858A77} Library Properties Pinta.Tools Pinta.Tools v4.0 512 3.5 publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false false true true full false ..\bin\ DEBUG;TRACE prompt 4 true AllRules.ruleset pdbonly true ..\bin\Extensions\ TRACE prompt 4 true AllRules.ruleset ..\lib\Mono.Addins.dll False {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Pinta.Core False False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 true False Windows Installer 3.1 true pinta-1.3/Pinta.Tools/Properties/0000775000175000017500000000000011747026475020147 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/Properties/AssemblyInfo.cs0000664000175000017500000000315211747026475023072 0ustar00cameroncameron00000000000000using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Mono.Addins; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle ("Pinta.Tools")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] [assembly: AssemblyCompany ("")] [assembly: AssemblyProduct ("Pinta.Tools")] [assembly: AssemblyCopyright ("")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible (false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid ("411e5713-933e-475c-a051-ab5e63ce77f1")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion ("1.3.0.0")] [assembly: AssemblyFileVersion ("1.3.0.0")] [assembly: Addin ("DefaultTools", "1.3", Category = "Core")] [assembly: AddinName ("Default Tools")] [assembly: AddinDescription ("The default tools and brushes that ship with Pinta")] [assembly: AddinDependency ("Pinta", "1.3")] pinta-1.3/Pinta.Tools/Tools/0000775000175000017500000000000011747026475017113 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/Tools/BaseBrushTool.cs0000664000175000017500000001226211747026475022161 0ustar00cameroncameron00000000000000// // BaseBrushTool.cs // // Author: // Joseph Hillenbrand // // Copyright (c) 2010 Joseph Hillenbrand // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { // This is a base class for brush type tools (paintbrush, eraser, etc) public class BaseBrushTool : BaseTool { protected ToolBarComboBox brush_width; protected ToolBarLabel brush_width_label; protected ToolBarButton brush_width_minus; protected ToolBarButton brush_width_plus; protected ImageSurface undo_surface; protected bool surface_modified; protected uint mouse_button; protected override bool ShowAntialiasingButton { get { return true; } } public virtual int BrushWidth { get { int width; if (Int32.TryParse (brush_width.ComboBox.ActiveText, out width)) { if (width > 0) { (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = width.ToString (); return width; } } (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = DEFAULT_BRUSH_WIDTH.ToString (); return DEFAULT_BRUSH_WIDTH; } set { (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString (); } } #region ToolBar protected override void OnBuildToolBar (Toolbar tb) { base.OnBuildToolBar (tb); if (brush_width_label == null) brush_width_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Brush width"))); tb.AppendItem (brush_width_label); if (brush_width_minus == null) { brush_width_minus = new ToolBarButton ("Toolbar.MinusButton.png", "", Catalog.GetString ("Decrease brush size")); brush_width_minus.Clicked += MinusButtonClickedEvent; } tb.AppendItem (brush_width_minus); if (brush_width == null) brush_width = new ToolBarComboBox (65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "20", "25", "30", "35", "40", "45", "50", "55"); tb.AppendItem (brush_width); if (brush_width_plus == null) { brush_width_plus = new ToolBarButton ("Toolbar.PlusButton.png", "", Catalog.GetString ("Increase brush size")); brush_width_plus.Clicked += PlusButtonClickedEvent; } tb.AppendItem (brush_width_plus); } protected virtual void MinusButtonClickedEvent (object o, EventArgs args) { if (BrushWidth > 1) BrushWidth--; } protected virtual void PlusButtonClickedEvent (object o, EventArgs args) { BrushWidth++; } #endregion #region Mouse Handlers protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (undo_surface != null) { if (surface_modified) doc.History.PushNewItem (new SimpleHistoryItem (Icon, Name, undo_surface, doc.CurrentLayerIndex)); else if (undo_surface != null) (undo_surface as IDisposable).Dispose (); } surface_modified = false; undo_surface = null; mouse_button = 0; } protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { // If we are already drawing, ignore any additional mouse down events if (mouse_button > 0) return; Document doc = PintaCore.Workspace.ActiveDocument; surface_modified = false; undo_surface = doc.CurrentLayer.Surface.Clone (); mouse_button = args.Event.Button; OnMouseMove (canvas, null, point); } #endregion #region Protected Methods protected Gdk.Rectangle GetRectangleFromPoints (Point a, Point b) { int x = Math.Min (a.X, b.X) - BrushWidth - 2; int y = Math.Min (a.Y, b.Y) - BrushWidth - 2; int w = Math.Max (a.X, b.X) - x + (BrushWidth * 2) + 4; int h = Math.Max (a.Y, b.Y) - y + (BrushWidth * 2) + 4; return new Gdk.Rectangle (x, y, w, h); } protected Gdk.Rectangle GetRectangleFromPoints (Gdk.Point a, Gdk.Point b) { int x = Math.Min (a.X, b.X); int y = Math.Min (a.Y, b.Y); int w = Math.Max (a.X, b.X); int h = Math.Max (a.Y, b.Y); var rect = new Gdk.Rectangle (x, y, w, h); rect.Inflate (BrushWidth, BrushWidth); return rect; } #endregion } } pinta-1.3/Pinta.Tools/Tools/CloneStampTool.cs0000664000175000017500000001232411747026475022347 0ustar00cameroncameron00000000000000// // CloneStampTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Pinta.Core; using Mono.Unix; using Gdk; namespace Pinta.Tools { public class CloneStampTool : BaseBrushTool { private bool painting; private Point origin = new Point (int.MinValue, int.MinValue); private Point offset = new Point (int.MinValue, int.MinValue); private Point last_point = new Point (int.MinValue, int.MinValue); public override string Name { get { return Catalog.GetString ("Clone Stamp"); } } public override string Icon { get { return "Tools.CloneStamp.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Ctrl-left click to set origin, left click to paint."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.CloneStamp.png"), 6, 11); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.L; } } public override int Priority { get { return 33; } } protected override bool ShowAntialiasingButton { get { return true; } } protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; // We only do stuff with the left mouse button if (args.Event.Button != 1) return; // Ctrl click is set origin, regular click is begin drawing if (!args.Event.IsControlPressed ()) { if (origin.IsNotSet ()) return; painting = true; if (offset.IsNotSet ()) offset = new Point ((int)point.X - origin.X, (int)point.Y - origin.Y); doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = false; surface_modified = false; undo_surface = doc.CurrentLayer.Surface.Clone (); } else { origin = point.ToGdkPoint (); } } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (!painting || offset.IsNotSet ()) return; int x = (int)point.X; int y = (int)point.Y; if (last_point.IsNotSet ()) { last_point = new Point (x, y); return; } using (var g = doc.CreateClippedToolContext ()) { g.Antialias = UseAntialiasing ? Cairo.Antialias.Subpixel : Cairo.Antialias.None; g.MoveTo (last_point.X, last_point.Y); g.LineTo (x, y); g.SetSource (doc.CurrentLayer.Surface, offset.X, offset.Y); g.LineWidth = BrushWidth; g.LineCap = Cairo.LineCap.Round; g.Stroke (); } var dirty_rect = GetRectangleFromPoints (last_point, new Point (x, y)); last_point = new Point (x, y); surface_modified = true; doc.Workspace.Invalidate (dirty_rect); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; painting = false; using (Cairo.Context g = new Cairo.Context (doc.CurrentLayer.Surface)) { g.SetSource (doc.ToolLayer.Surface); g.Paint (); } base.OnMouseUp (canvas, args, point); offset = new Point (int.MinValue, int.MinValue); last_point = new Point (int.MinValue, int.MinValue); doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = true; doc.Workspace.Invalidate (); } protected override void OnKeyDown (Gtk.DrawingArea canvas, Gtk.KeyPressEventArgs args) { base.OnKeyDown(canvas, args); //note that this WONT work if user presses control key and THEN selects the tool! if (args.Event.Key == Key.Control_L || args.Event.Key == Key.Control_R) { Gdk.Pixbuf icon = PintaCore.Resources.GetIcon ("Cursor.CloneStampSetSource.png"); Gdk.Cursor setSourceCursor = new Gdk.Cursor(PintaCore.Chrome.Canvas.Display, icon, 6, 11); SetCursor(setSourceCursor); } } protected override void OnKeyUp (Gtk.DrawingArea canvas, Gtk.KeyReleaseEventArgs args) { base.OnKeyUp(canvas, args); if (args.Event.Key == Key.Control_L || args.Event.Key == Key.Control_R) SetCursor(DefaultCursor); } protected override void OnDeactivated () { origin = new Point (int.MinValue, int.MinValue); } } } pinta-1.3/Pinta.Tools/Tools/ColorPickerTool.cs0000664000175000017500000001014111747026475022511 0ustar00cameroncameron00000000000000// // ColorPickerTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class ColorPickerTool : BaseTool { private int button_down = 0; private ToolBarComboBox tool_select; private ToolBarLabel tool_select_label; #region Properties public override string Name { get { return Catalog.GetString ("Color Picker"); } } public override string Icon { get { return "Tools.ColorPicker.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to set primary color. Right click to set secondary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.ColorPicker.png"), 1, 16); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.K; } } public override int Priority { get { return 31; } } #endregion #region ToolBar protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (tool_select_label == null) tool_select_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("After select"))); tb.AppendItem (tool_select_label); // TODO: Enable when we have the Pencil tool if (tool_select == null) tool_select = new ToolBarComboBox (170, 0, false, Catalog.GetString ("Do not switch tool"), Catalog.GetString ("Switch to previous tool"), Catalog.GetString ("Switch to Pencil tool")); tb.AppendItem (tool_select); } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (args.Event.Button == 1) button_down = 1; else if (args.Event.Button == 3) button_down = 3; if (!doc.Workspace.PointInCanvas (point)) return; Color color = doc.CurrentLayer.Surface.GetPixel ((int)point.X, (int)point.Y); if (button_down == 1) PintaCore.Palette.PrimaryColor = color; else if (button_down == 3) PintaCore.Palette.SecondaryColor = color; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (button_down == 0) return; if (!doc.Workspace.PointInCanvas (point)) return; Color color = doc.CurrentLayer.Surface.GetPixel ((int)point.X, (int)point.Y); if (button_down == 1) PintaCore.Palette.PrimaryColor = color; else if (button_down == 3) PintaCore.Palette.SecondaryColor = color; } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, PointD point) { button_down = 0; if (tool_select.ComboBox.Active == 1) PintaCore.Tools.SetCurrentTool (PintaCore.Tools.PreviousTool); else if (tool_select.ComboBox.Active == 2) PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Pencil")); } #endregion } } pinta-1.3/Pinta.Tools/Tools/EllipseSelectTool.cs0000664000175000017500000000401411747026475023034 0ustar00cameroncameron00000000000000// // EllipseSelectTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class EllipseSelectTool : SelectTool { public override string Name { get { return Catalog.GetString ("Ellipse Select"); } } public override string Icon { get { return "Tools.EllipseSelect.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw an elliptical selection. Hold shift to constrain to a circle."); } } public override int Priority { get { return 13; } } protected override Rectangle DrawShape (Rectangle r, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Path path = doc.SelectionPath; using (Context g = new Context (l.Surface)) doc.SelectionPath = g.CreateEllipsePath (r); (path as IDisposable).Dispose (); return r; } } } pinta-1.3/Pinta.Tools/Tools/EllipseTool.cs0000664000175000017500000000512511747026475021700 0ustar00cameroncameron00000000000000// // EllipseTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class EllipseTool : ShapeTool { public override string Name { get { return Catalog.GetString ("Ellipse"); } } public override string Icon { get { return "Tools.Ellipse.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw an ellipse (right click for secondary color). Hold shift to constrain to a circle."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.RoundedRectangle.png"), 5, 9); } } public override int Priority { get { return 45; } } public EllipseTool () { } protected override Rectangle DrawShape (Rectangle rect, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Rectangle dirty; using (Context g = new Context (l.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; dirty = rect; if (FillShape && StrokeShape) dirty = g.FillStrokedEllipse (rect, fill_color, outline_color, BrushWidth); else if (FillShape) dirty = g.FillEllipse (rect, outline_color); else dirty = g.DrawEllipse (rect, outline_color, BrushWidth); } return dirty; } } } pinta-1.3/Pinta.Tools/Tools/EraserTool.cs0000664000175000017500000000642011747026475021523 0ustar00cameroncameron00000000000000// // EraserTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class EraserTool : BaseBrushTool { private Point last_point = point_empty; public EraserTool () { } #region Properties public override string Name { get { return Catalog.GetString ("Eraser"); } } public override string Icon { get { return "Tools.Eraser.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to erase to transparent, right click to erase to secondary color. "); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.E; } } public override int Priority { get { return 27; } } #endregion #region Mouse Handlers protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (mouse_button <= 0) { last_point = point_empty; return; } DrawingArea drawingarea1 = (DrawingArea)o; int x = (int)point.X; int y = (int)point.Y; if (last_point.Equals (point_empty)) last_point = new Point (x, y); if (doc.Workspace.PointInCanvas (point)) surface_modified = true; ImageSurface surf = doc.CurrentLayer.Surface; using (Context g = new Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; // Adding 0.5 forces cairo into the correct square: // See https://bugs.launchpad.net/bugs/672232 g.MoveTo (last_point.X + 0.5, last_point.Y + 0.5); g.LineTo (x + 0.5, y + 0.5); // Right-click is erase to background color, left-click is transparent if (mouse_button == 3) g.Color = PintaCore.Palette.SecondaryColor; else g.Operator = Operator.Clear; g.LineWidth = BrushWidth; g.LineJoin = LineJoin.Round; g.LineCap = LineCap.Round; g.Stroke (); } Gdk.Rectangle r = GetRectangleFromPoints (last_point, new Point (x, y)); doc.Workspace.Invalidate (r); last_point = new Point (x, y); } #endregion } } pinta-1.3/Pinta.Tools/Tools/FloodTool.cs0000664000175000017500000002527111747026475021352 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// // Additional code: // // FloodTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Threading.Tasks; using Cairo; using System.Collections.Generic; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public abstract class FloodTool : BaseTool { protected ToolBarLabel mode_label; protected ToolBarDropDownButton mode_button; protected Gtk.ToolItem mode_sep; protected ToolBarLabel tolerance_label; protected ToolBarSlider tolerance_slider; private bool limitToSelection = true; protected IBitVector2D stencil; #region Protected Properties protected bool IsContinguousMode { get { return (bool)mode_button.SelectedItem.Tag; } } protected float Tolerance { get { return (float)(tolerance_slider.Slider.Value / 100); } } protected virtual bool CalculatePolygonSet { get { return true; } } protected bool LimitToSelection { get { return limitToSelection; } set { limitToSelection = value; } } #endregion #region ToolBar protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (mode_label == null) mode_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Flood Mode"))); tb.AppendItem (mode_label); if (mode_button == null) { mode_button = new ToolBarDropDownButton (); mode_button.AddItem (Catalog.GetString ("Contiguous"), "Tools.FreeformShape.png", true); mode_button.AddItem (Catalog.GetString ("Global"), "Menu.Help.Website.png", false); } tb.AppendItem (mode_button); if (mode_sep == null) mode_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (mode_sep); if (tolerance_label == null) tolerance_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Tolerance"))); tb.AppendItem (tolerance_label); if (tolerance_slider == null) tolerance_slider = new ToolBarSlider (0, 100, 1, 0); tb.AppendItem (tolerance_slider); } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; Point pos = new Point ((int)point.X, (int)point.Y); // Don't do anything if we're outside the canvas if (pos.X < 0 || pos.X >= doc.ImageSize.Width) return; if (pos.Y < 0 || pos.Y >= doc.ImageSize.Height) return; base.OnMouseDown (canvas, args, point); Gdk.Region currentRegion = Gdk.Region.Rectangle (doc.GetSelectedBounds (true)); // See if the mouse click is valid if (!currentRegion.PointIn (pos.X, pos.Y) && limitToSelection) { currentRegion.Dispose (); currentRegion = null; return; } ImageSurface surface = doc.CurrentLayer.Surface; ImageSurface stencil_surface = new ImageSurface (Format.Argb32, (int)surface.Width, (int)surface.Height); IBitVector2D stencilBuffer = new BitVector2DSurfaceAdapter (stencil_surface); int tol = (int)(Tolerance * Tolerance * 256); Rectangle boundingBox; if (IsContinguousMode) FillStencilFromPoint (surface, stencilBuffer, pos, tol, out boundingBox, currentRegion, limitToSelection); else FillStencilByColor (surface, stencilBuffer, surface.GetColorBgra (pos.X, pos.Y), tol, out boundingBox, currentRegion, LimitToSelection); stencil = stencilBuffer; OnFillRegionComputed (stencilBuffer); // If a derived tool is only going to use the stencil, // don't waste time building the polygon set if (CalculatePolygonSet) { Point[][] polygonSet = stencilBuffer.CreatePolygonSet (boundingBox, 0, 0); OnFillRegionComputed (polygonSet); } } #endregion #region Private Methods // These methods are ported from PDN. private static bool CheckColor (ColorBgra a, ColorBgra b, int tolerance) { int sum = 0; int diff; diff = a.R - b.R; sum += (1 + diff * diff) * a.A / 256; diff = a.G - b.G; sum += (1 + diff * diff) * a.A / 256; diff = a.B - b.B; sum += (1 + diff * diff) * a.A / 256; diff = a.A - b.A; sum += diff * diff; return (sum <= tolerance * tolerance * 4); } public unsafe static void FillStencilFromPoint (ImageSurface surface, IBitVector2D stencil, Point start, int tolerance, out Rectangle boundingBox, Gdk.Region limitRegion, bool limitToSelection) { ColorBgra cmp = surface.GetColorBgra (start.X, start.Y); int top = int.MaxValue; int bottom = int.MinValue; int left = int.MaxValue; int right = int.MinValue; Gdk.Rectangle[] scans; stencil.Clear (false); if (limitToSelection) { using (Gdk.Region excluded = Gdk.Region.Rectangle (new Gdk.Rectangle (0, 0, stencil.Width, stencil.Height))) { excluded.Xor (limitRegion); scans = excluded.GetRectangles (); } } else { scans = new Gdk.Rectangle[0]; } foreach (Gdk.Rectangle rect in scans) { stencil.Set (rect, true); } Queue queue = new Queue (16); queue.Enqueue (start); while (queue.Count > 0) { Point pt = queue.Dequeue (); ColorBgra* rowPtr = surface.GetRowAddressUnchecked (pt.Y); int localLeft = pt.X - 1; int localRight = pt.X; while (localLeft >= 0 && !stencil.GetUnchecked (localLeft, pt.Y) && CheckColor (cmp, rowPtr[localLeft], tolerance)) { stencil.SetUnchecked (localLeft, pt.Y, true); --localLeft; } int surfaceWidth = surface.Width; while (localRight < surfaceWidth && !stencil.GetUnchecked (localRight, pt.Y) && CheckColor (cmp, rowPtr[localRight], tolerance)) { stencil.SetUnchecked (localRight, pt.Y, true); ++localRight; } ++localLeft; --localRight; Action checkRow = (row) => { int sleft = localLeft; int sright = localLeft; ColorBgra* otherRowPtr = surface.GetRowAddressUnchecked (row); for (int sx = localLeft; sx <= localRight; ++sx) { if (!stencil.GetUnchecked (sx, row) && CheckColor (cmp, otherRowPtr[sx], tolerance)) { ++sright; } else { if (sright - sleft > 0) { queue.Enqueue (new Point (sleft, row)); } ++sright; sleft = sright; } } if (sright - sleft > 0) { queue.Enqueue (new Point (sleft, row)); } }; if (pt.Y > 0) { checkRow (pt.Y - 1); } if (pt.Y < surface.Height - 1) { checkRow (pt.Y + 1); } if (localLeft < left) { left = localLeft; } if (localRight > right) { right = localRight; } if (pt.Y < top) { top = pt.Y; } if (pt.Y > bottom) { bottom = pt.Y; } } foreach (Gdk.Rectangle rect in scans) stencil.Set (rect, false); boundingBox = new Rectangle (left, top, right - left + 1, bottom - top + 1); } public unsafe static void FillStencilByColor (ImageSurface surface, IBitVector2D stencil, ColorBgra cmp, int tolerance, out Rectangle boundingBox, Gdk.Region limitRegion, bool limitToSelection) { int top = int.MaxValue; int bottom = int.MinValue; int left = int.MaxValue; int right = int.MinValue; Gdk.Rectangle[] scans; stencil.Clear (false); if (limitToSelection) { using (Gdk.Region excluded = Gdk.Region.Rectangle (new Gdk.Rectangle (0, 0, stencil.Width, stencil.Height))) { excluded.Xor (limitRegion); scans = excluded.GetRectangles (); } } else { scans = new Gdk.Rectangle[0]; } foreach (Gdk.Rectangle rect in scans) stencil.Set (rect, true); Parallel.For(0, surface.Height, y => { bool foundPixelInRow = false; ColorBgra* ptr = surface.GetRowAddressUnchecked(y); int surfaceWidth = surface.Width; for (int x = 0; x < surfaceWidth; ++x) { if (CheckColor(cmp, *ptr, tolerance)) { stencil.SetUnchecked(x, y, true); if (x < left) { left = x; } if (x > right) { right = x; } foundPixelInRow = true; } ++ptr; } if (foundPixelInRow) { if (y < top) { top = y; } if (y >= bottom) { bottom = y; } } }); foreach (Gdk.Rectangle rect in scans) stencil.Set (rect, false); boundingBox = new Rectangle (left, top, right - left + 1, bottom - top + 1); } protected virtual void OnFillRegionComputed (Point[][] polygonSet) {} protected virtual void OnFillRegionComputed (IBitVector2D stencil) {} #endregion } } pinta-1.3/Pinta.Tools/Tools/FreeformShapeTool.cs0000664000175000017500000001521311747026475023030 0ustar00cameroncameron00000000000000// // FreeformShapeTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class FreeformShapeTool : BaseBrushTool { private Point last_point = point_empty; protected ToolBarLabel fill_label; protected ToolBarDropDownButton fill_button; protected Gtk.SeparatorToolItem fill_sep; private Path path; private Color fill_color; private Color outline_color; public FreeformShapeTool () { } #region Properties public override string Name { get { return Catalog.GetString ("Freeform Shape"); } } public override string Icon { get { return "Tools.FreeformShape.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to draw with primary color, right click to draw with secondary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.FreeformShape.png"), 6, 10); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.O; } } public override int Priority { get { return 47; } } #endregion #region ToolBar protected override void OnBuildToolBar (Toolbar tb) { base.OnBuildToolBar(tb); if (fill_sep == null) fill_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (fill_sep); if (fill_label == null) fill_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Fill Style"))); tb.AppendItem (fill_label); if (fill_button == null) { fill_button = new ToolBarDropDownButton (); fill_button.AddItem (Catalog.GetString ("Outline Shape"), "ShapeTool.Outline.png", 0); fill_button.AddItem (Catalog.GetString ("Fill Shape"), "ShapeTool.Fill.png", 1); fill_button.AddItem (Catalog.GetString ("Fill and Outline Shape"), "ShapeTool.OutlineFill.png", 2); } tb.AppendItem (fill_button); } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; surface_modified = false; undo_surface = doc.CurrentLayer.Surface.Clone (); path = null; doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = false; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if ((args.Event.State & Gdk.ModifierType.Button1Mask) == Gdk.ModifierType.Button1Mask) { outline_color = PintaCore.Palette.PrimaryColor; fill_color = PintaCore.Palette.SecondaryColor; } else if ((args.Event.State & Gdk.ModifierType.Button3Mask) == Gdk.ModifierType.Button3Mask) { outline_color = PintaCore.Palette.SecondaryColor; fill_color = PintaCore.Palette.PrimaryColor; } else { last_point = point_empty; return; } DrawingArea drawingarea1 = (DrawingArea)o; int x = (int)point.X; int y = (int)point.Y; if (last_point.Equals (point_empty)) { last_point = new Point (x, y); return; } if (doc.Workspace.PointInCanvas (point)) surface_modified = true; doc.ToolLayer.Clear (); ImageSurface surf = doc.ToolLayer.Surface; using (Context g = new Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); } g.LineTo (x, y); path = g.CopyPath (); g.ClosePath (); g.LineWidth = BrushWidth; g.LineJoin = LineJoin.Round; g.LineCap = LineCap.Round; g.FillRule = FillRule.EvenOdd; if (FillShape && StrokeShape) { g.Color = fill_color; g.FillPreserve (); g.Color = outline_color; g.Stroke (); } else if (FillShape) { g.Color = outline_color; g.Fill (); } else { g.Color = outline_color; g.Stroke (); } } doc.Workspace.Invalidate (); last_point = new Point (x, y); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Hidden = true; if (surface_modified) PintaCore.History.PushNewItem (new SimpleHistoryItem (Icon, Name, undo_surface, doc.CurrentLayerIndex)); else if (undo_surface != null) (undo_surface as IDisposable).Dispose (); surface_modified = false; ImageSurface surf = doc.CurrentLayer.Surface; using (Context g = new Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); path = null; } g.ClosePath (); g.LineWidth = BrushWidth; g.LineJoin = LineJoin.Round; g.LineCap = LineCap.Round; g.FillRule = FillRule.EvenOdd; if (FillShape && StrokeShape) { g.Color = fill_color; g.FillPreserve (); g.Color = outline_color; g.Stroke (); } else if (FillShape) { g.Color = outline_color; g.Fill (); } else { g.Color = outline_color; g.Stroke (); } } doc.Workspace.Invalidate (); } #endregion #region Private Methods protected bool StrokeShape { get { return (int)fill_button.SelectedItem.Tag % 2 == 0; } } protected bool FillShape { get { return (int)fill_button.SelectedItem.Tag >= 1; } } #endregion } } pinta-1.3/Pinta.Tools/Tools/GradientTool.cs0000664000175000017500000001761011747026475022042 0ustar00cameroncameron00000000000000// // GradientTool.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class GradientTool : BaseTool { Cairo.PointD startpoint; bool tracking; protected ImageSurface undo_surface; uint button; static GradientTool () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Toolbar.LinearGradient.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.LinearGradient.png"))); fact.Add ("Toolbar.LinearReflectedGradient.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.LinearReflectedGradient.png"))); fact.Add ("Toolbar.DiamondGradient.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.DiamondGradient.png"))); fact.Add ("Toolbar.RadialGradient.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.RadialGradient.png"))); fact.Add ("Toolbar.ConicalGradient.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.ConicalGradient.png"))); fact.Add ("Toolbar.ColorMode.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.ColorMode.png"))); fact.Add ("Toolbar.TransparentMode.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.TransparentMode.png"))); fact.AddDefault (); } public override string Name { get { return Catalog.GetString ("Gradient"); } } public override string Icon { get { return "Tools.Gradient.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw gradient from primary to secondary color. Right click to reverse."); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.G; } } public override int Priority { get { return 23; } } #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; // Protect against history corruption if (tracking) return; startpoint = point; tracking = true; button = args.Event.Button; undo_surface = doc.CurrentLayer.Surface.Clone (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (!tracking || args.Event.Button != button) return; tracking = false; doc.History.PushNewItem (new SimpleHistoryItem (Icon, Name, undo_surface, doc.CurrentLayerIndex)); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (tracking) { GradientRenderer gr = CreateGradientRenderer (); if (button == 3) { // Right-click gr.StartColor = PintaCore.Palette.SecondaryColor.ToColorBgra (); gr.EndColor = PintaCore.Palette.PrimaryColor.ToColorBgra (); } else { //1 Left-click gr.StartColor = PintaCore.Palette.PrimaryColor.ToColorBgra (); gr.EndColor = PintaCore.Palette.SecondaryColor.ToColorBgra (); } gr.StartPoint = startpoint; gr.EndPoint = point; gr.AlphaBlending = UseAlphaBlending; gr.BeforeRender (); Gdk.Rectangle selection_bounds = doc.GetSelectedBounds (true); ImageSurface scratch_layer = doc.ToolLayer.Surface; gr.Render (scratch_layer, new Gdk.Rectangle[] { selection_bounds }); using (var g = doc.CreateClippedContext ()) { g.SetSource (scratch_layer); g.Paint (); } doc.ToolLayer.Clear (); selection_bounds.Inflate (5, 5); doc.Workspace.Invalidate (selection_bounds); } } private GradientRenderer CreateGradientRenderer () { var normalBlendOp = new UserBlendOps.NormalBlendOp (); bool alpha_only = SelectedGradientColorMode == GradientColorMode.Transparency; switch (SelectedGradientType) { case GradientType.Linear: return new GradientRenderers.LinearClamped (alpha_only, normalBlendOp); case GradientType.LinearReflected: return new GradientRenderers.LinearReflected (alpha_only, normalBlendOp); case GradientType.Radial: return new GradientRenderers.Radial (alpha_only, normalBlendOp); case GradientType.Diamond: return new GradientRenderers.LinearDiamond (alpha_only, normalBlendOp); case GradientType.Conical: return new GradientRenderers.Conical (alpha_only, normalBlendOp); } throw new ArgumentOutOfRangeException ("Unknown gradient type."); } #endregion #region ToolBar private ToolBarLabel gradient_label; private ToolBarDropDownButton gradient_button; //private ToolBarLabel mode_label; //private ToolBarDropDownButton mode_button; protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (gradient_label == null) gradient_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Gradient"))); tb.AppendItem (gradient_label); if (gradient_button == null) { gradient_button = new ToolBarDropDownButton (); gradient_button.AddItem (Catalog.GetString ("Linear Gradient"), "Toolbar.LinearGradient.png", GradientType.Linear); gradient_button.AddItem (Catalog.GetString ("Linear Reflected Gradient"), "Toolbar.LinearReflectedGradient.png", GradientType.LinearReflected); gradient_button.AddItem (Catalog.GetString ("Linear Diamond Gradient"), "Toolbar.DiamondGradient.png", GradientType.Diamond); gradient_button.AddItem (Catalog.GetString ("Radial Gradient"), "Toolbar.RadialGradient.png", GradientType.Radial); gradient_button.AddItem (Catalog.GetString ("Conical Gradient"), "Toolbar.ConicalGradient.png", GradientType.Conical); } tb.AppendItem (gradient_button); // Hide TransparentMode. The core issue is we can't just paint it on top of the // current layer because it's transparent. Will require significant effort to support. //tb.AppendItem (new Gtk.SeparatorToolItem ()); //if (mode_label == null) // mode_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Mode"))); //tb.AppendItem (mode_label); //if (mode_button == null) { // mode_button = new ToolBarDropDownButton (); // mode_button.AddItem (Catalog.GetString ("Color Mode"), "Toolbar.ColorMode.png", GradientColorMode.Color); // mode_button.AddItem (Catalog.GetString ("Transparency Mode"), "Toolbar.TransparentMode.png", GradientColorMode.Transparency); //} //tb.AppendItem (mode_button); } private GradientType SelectedGradientType { get { return (GradientType)gradient_button.SelectedItem.Tag; } } private GradientColorMode SelectedGradientColorMode { // get { return (GradientColorMode)mode_button.SelectedItem.Tag; } get { return GradientColorMode.Color; } } #endregion enum GradientType { Linear, LinearReflected, Diamond, Radial, Conical } } } pinta-1.3/Pinta.Tools/Tools/LassoSelectTool.cs0000664000175000017500000000714511747026475022530 0ustar00cameroncameron00000000000000// // LassoSelectTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class LassoSelectTool : SelectTool { private Path path; public LassoSelectTool () { } #region Properties public override string Name { get { return Catalog.GetString ("Lasso Select"); } } public override string Icon { get { return "Tools.LassoSelect.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw the outline for a selection area."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.LassoSelect.png"), 13, 13); } } public override int Priority { get { return 9; } } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { base.OnMouseDown (canvas, args, point); path = null; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (!is_drawing) return; double x = Utility.Clamp (point.X, 0, doc.ImageSize.Width - 1); double y = Utility.Clamp (point.Y, 0, doc.ImageSize.Height - 1); doc.ShowSelection = true; ImageSurface surf = doc.ToolLayer.Surface; using (Context g = new Context (surf)) { g.Antialias = Antialias.Subpixel; if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); } g.LineTo (x, y); path = g.CopyPath (); g.FillRule = FillRule.EvenOdd; g.ClosePath (); Path old = doc.SelectionPath; doc.SelectionPath = g.CopyPath (); (old as IDisposable).Dispose (); } doc.Workspace.Invalidate (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; base.OnMouseUp (canvas, args, point); ImageSurface surf = doc.CurrentLayer.Surface; using (Context g = new Context (surf)) { if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); path = null; } g.FillRule = FillRule.EvenOdd; g.ClosePath (); Path old = doc.SelectionPath; doc.SelectionPath = g.CopyPath (); (old as IDisposable).Dispose (); } doc.Workspace.Invalidate (); } #endregion } } pinta-1.3/Pinta.Tools/Tools/LineCurveTool.cs0000664000175000017500000000600511747026475022175 0ustar00cameroncameron00000000000000// // LineCurveTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class LineCurveTool : ShapeTool { public override string Name { get { return Catalog.GetString ("Line"); } } public override string Icon { get { return "Tools.Line.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to draw with primary color, right click for secondary color. Hold Shift key to snap to angles."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Line.png"), 7, 11); } } protected override bool ShowStrokeComboBox { get { return false; } } public override int Priority { get { return 39; } } protected override Rectangle DrawShape (Rectangle rect, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Rectangle dirty; using (Context g = new Context (l.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; dirty = g.DrawLine (shape_origin, current_point , outline_color, BrushWidth); } return dirty; } /// /// Forces the line to snap to angles. /// protected override Rectangle DrawShape (Rectangle r, Layer l, bool shiftkey_pressed) { if (shiftkey_pressed) { PointD dir = new PointD(current_point.X - shape_origin.X, current_point.Y - shape_origin.Y); double theta = Math.Atan2(dir.Y, dir.X); double len = Math.Sqrt(dir.X * dir.X + dir.Y * dir.Y); theta = Math.Round(12 * theta / Math.PI) * Math.PI / 12; current_point = new PointD((shape_origin.X + len * Math.Cos(theta)), (shape_origin.Y + len * Math.Sin(theta))); } return DrawShape (r, l); } } } pinta-1.3/Pinta.Tools/Tools/MagicWandTool.cs0000664000175000017500000000741711747026475022143 0ustar00cameroncameron00000000000000// // MagicWandTool.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class MagicWandTool : FloodTool { private CombineMode combineMode; public override Gdk.Key ShortcutKey { get { return Gdk.Key.S; } } public MagicWandTool () { LimitToSelection = false; } public override string Name { get { return Catalog.GetString ("Magic Wand Select"); } } public override string Icon { get { return "Tools.MagicWand.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click to select region of similar color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.MagicWand.png"), 0, 0); } } public override int Priority { get { return 17; } } private enum CombineMode { Union, Xor, Exclude, Replace } // nothing = replace // Ctrl = union // RMB = exclude // Ctrl+RMB = xor protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; //SetCursor (Cursors.WaitCursor); if (args.Event.IsControlPressed () && args.Event.Button == 1) this.combineMode = CombineMode.Union; else if (args.Event.IsControlPressed () && args.Event.Button == 3) this.combineMode = CombineMode.Xor; else if (args.Event.Button == 3) this.combineMode = CombineMode.Exclude; else this.combineMode = CombineMode.Replace; base.OnMouseDown (canvas, args, point); doc.ShowSelection = true; } protected override void OnFillRegionComputed (Point[][] polygonSet) { Document doc = PintaCore.Workspace.ActiveDocument; SelectionHistoryItem undoAction = new SelectionHistoryItem (this.Icon, this.Name); undoAction.TakeSnapshot (); Path path = doc.SelectionPath; using (Context g = new Context (PintaCore.Layers.CurrentLayer.Surface)) { PintaCore.Layers.SelectionPath = g.CreatePolygonPath (polygonSet); switch (combineMode) { case CombineMode.Union: g.AppendPath (path); break; case CombineMode.Xor: //not supported break; case CombineMode.Exclude: //not supported break; case CombineMode.Replace: //do nothing break; } } (path as IDisposable).Dispose (); //Selection.PerformChanging(); //Selection.SetContinuation(polygonSet, this.combineMode); //Selection.CommitContinuation(); //Selection.PerformChanged(); doc.History.PushNewItem (undoAction); doc.Workspace.Invalidate (); } } }pinta-1.3/Pinta.Tools/Tools/MoveSelectedTool.cs0000664000175000017500000001071711747026475022665 0ustar00cameroncameron00000000000000// // MoveSelectedTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class MoveSelectedTool : BaseTool { private PointD origin_offset; private bool is_dragging; private MovePixelsHistoryItem hist; public override string Name { get { return Catalog.GetString ("Move Selected Pixels"); } } public override string Icon { get { return "Tools.Move.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Drag the selection to move selected content."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Move.png"), 0, 0); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.M; } } public override int Priority { get { return 7; } } #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { // If we are already drawing, ignore any additional mouse down events if (is_dragging) return; Document doc = PintaCore.Workspace.ActiveDocument; origin_offset = point; is_dragging = true; hist = new MovePixelsHistoryItem (Icon, Name, doc); hist.TakeSnapshot (!doc.ShowSelectionLayer); if (!doc.ShowSelectionLayer) { // Copy the selection to the temp layer doc.CreateSelectionLayer (); doc.ShowSelectionLayer = true; using (Cairo.Context g = new Cairo.Context (doc.SelectionLayer.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.SetSource (doc.CurrentLayer.Surface); g.Clip (); g.Paint (); } Cairo.ImageSurface surf = doc.CurrentLayer.Surface; using (Cairo.Context g = new Cairo.Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Operator = Cairo.Operator.Clear; g.Fill (); } } canvas.GdkWindow.Invalidate (); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { if (!is_dragging) return; Document doc = PintaCore.Workspace.ActiveDocument; PointD new_offset = new PointD (point.X, point.Y); double dx = origin_offset.X - new_offset.X; double dy = origin_offset.Y - new_offset.Y; Path path = doc.SelectionPath; using (Cairo.Context g = new Cairo.Context (doc.CurrentLayer.Surface)) { g.AppendPath (path); g.Translate (dx, dy); doc.SelectionPath = g.CopyPath (); } (path as IDisposable).Dispose (); doc.SelectionLayer.Offset = new PointD (doc.SelectionLayer.Offset.X - dx, doc.SelectionLayer.Offset.Y - dy); origin_offset = new_offset; (o as Gtk.DrawingArea).GdkWindow.Invalidate (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { is_dragging = false; if (hist != null) PintaCore.History.PushNewItem (hist); hist = null; } #endregion protected override void OnCommit () { try { PintaCore.Workspace.ActiveDocument.FinishSelection (); } catch (Exception) { // Ignore an error where ActiveDocument fails. } } protected override void OnDeactivated () { base.OnDeactivated (); PintaCore.Workspace.ActiveDocument.FinishSelection (); } } } pinta-1.3/Pinta.Tools/Tools/MoveSelectionTool.cs0000664000175000017500000000654711747026475023070 0ustar00cameroncameron00000000000000// // MoveSelectionTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class MoveSelectionTool : BaseTool { private PointD origin_offset; private bool is_dragging; private SelectionHistoryItem hist; public override string Name { get { return Catalog.GetString ("Move Selection"); } } public override string Icon { get { return "Tools.MoveSelection.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Drag the selection to move selection outline."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.MoveSelection.png"), 0, 0); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.M; } } public override int Priority { get { return 11; } } #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { // If we are already drawing, ignore any additional mouse down events if (is_dragging) return; origin_offset = point; is_dragging = true; hist = new SelectionHistoryItem (Icon, Name); hist.TakeSnapshot (); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { if (!is_dragging) return; Document doc = PintaCore.Workspace.ActiveDocument; PointD new_offset = point; double dx = origin_offset.X - new_offset.X; double dy = origin_offset.Y - new_offset.Y; using (Cairo.Context g = new Cairo.Context (doc.CurrentLayer.Surface)) { Path old = doc.SelectionPath; g.FillRule = FillRule.EvenOdd; g.AppendPath (doc.SelectionPath); g.Translate (dx, dy); doc.SelectionPath = g.CopyPath (); (old as IDisposable).Dispose (); } origin_offset = new_offset; doc.ShowSelection = true; (o as Gtk.DrawingArea).GdkWindow.Invalidate (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { is_dragging = false; if (hist != null) PintaCore.Workspace.ActiveDocument.History.PushNewItem (hist); hist = null; } #endregion } } pinta-1.3/Pinta.Tools/Tools/PaintBrushTool.cs0000664000175000017500000001256711747026475022372 0ustar00cameroncameron00000000000000// // PaintBrushTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; using Pinta.Tools.Brushes; namespace Pinta.Tools { public class PaintBrushTool : BaseBrushTool { #region Properties public override string Name { get { return Catalog.GetString ("Paintbrush"); } } public override string Icon { get { return "Tools.Paintbrush.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to draw with primary color, right click to draw with secondary color."); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.B; } } public override int Priority { get { return 25; } } public Color StrokeColor { get; private set; } public Color FillColor { get; private set; } public Point LastPoint { get; private set; } public Cairo.Context Drawable { get; private set; } public ImageSurface Surface { get; private set; } #endregion private PaintBrush default_brush; private PaintBrush active_brush; private ToolBarLabel brush_label; private ToolBarComboBox brush_combo_box; protected override void OnBuildToolBar (Toolbar tb) { base.OnBuildToolBar (tb); if (brush_label == null) brush_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Type"))); if (brush_combo_box == null) { brush_combo_box = new ToolBarComboBox (100, 0, false); brush_combo_box.ComboBox.Changed += (o, e) => { Gtk.TreeIter iter; if (brush_combo_box.ComboBox.GetActiveIter (out iter)) { active_brush = (PaintBrush)brush_combo_box.Model.GetValue (iter, 1); } else { active_brush = default_brush; } }; foreach (var brush in PintaCore.PaintBrushes) { if (default_brush == null) default_brush = (PaintBrush)brush; brush_combo_box.Model.AppendValues (brush.Name, brush); } brush_combo_box.ComboBox.Active = 0; } tb.AppendItem (brush_label); tb.AppendItem (brush_combo_box); } #region Mouse Handlers protected override void OnMouseDown (DrawingArea canvas, ButtonPressEventArgs args, PointD point) { base.OnMouseDown (canvas, args, point); active_brush.DoMouseDown (); } protected override void OnMouseUp (DrawingArea canvas, ButtonReleaseEventArgs args, PointD point) { base.OnMouseUp (canvas, args, point); active_brush.DoMouseUp (); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (mouse_button == 1) { StrokeColor = PintaCore.Palette.PrimaryColor; FillColor = PintaCore.Palette.SecondaryColor; } else if (mouse_button == 3) { StrokeColor = PintaCore.Palette.SecondaryColor; FillColor = PintaCore.Palette.PrimaryColor; } else { LastPoint = point_empty; return; } // TODO: also multiply by pressure StrokeColor = new Color (StrokeColor.R, StrokeColor.G, StrokeColor.B, StrokeColor.A * active_brush.StrokeAlphaMultiplier); int x = (int)point.X; int y = (int)point.Y; if (LastPoint.Equals (point_empty)) LastPoint = new Point (x, y); if (doc.Workspace.PointInCanvas (point)) surface_modified = true; var surf = doc.CurrentLayer.Surface; var invalidate_rect = Gdk.Rectangle.Zero; var brush_width = BrushWidth; Surface = surf; using (Drawable = new Context (surf)) { Drawable.AppendPath (doc.SelectionPath); Drawable.FillRule = FillRule.EvenOdd; Drawable.Clip (); Drawable.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; Drawable.LineWidth = brush_width; Drawable.LineJoin = LineJoin.Round; Drawable.LineCap = BrushWidth == 1 ? LineCap.Butt : LineCap.Round; Drawable.Color = StrokeColor; active_brush.Tool = this; invalidate_rect = active_brush.DoMouseMove (x, y, LastPoint.X, LastPoint.Y); active_brush.Tool = null; } Surface = null; Drawable = null; // If we draw partially offscreen to the left or top, Cairo // gives us a bogus dirty rectangle, so redraw everything if (invalidate_rect.IsEmpty || invalidate_rect.Top < 0 || invalidate_rect.Left < 0) { doc.Workspace.Invalidate (); } else { doc.Workspace.Invalidate (invalidate_rect); } LastPoint = new Point (x, y); } #endregion } } pinta-1.3/Pinta.Tools/Tools/PaintBucketTool.cs0000664000175000017500000000702311747026475022513 0ustar00cameroncameron00000000000000// // PaintBucketTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using System.Threading.Tasks; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class PaintBucketTool : FloodTool { private Color fill_color; public override string Name { get { return Catalog.GetString ("Paint Bucket"); } } public override string Icon { get { return "Tools.PaintBucket.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to fill a region with the primary color, right click to fill with the secondary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.PaintBucket.png"), 13, 13); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.F; } } public override int Priority { get { return 21; } } protected override bool CalculatePolygonSet { get { return false; } } protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, PointD point) { if (args.Event.Button == 1) fill_color = PintaCore.Palette.PrimaryColor; else fill_color = PintaCore.Palette.SecondaryColor; base.OnMouseDown (canvas, args, point); } protected unsafe override void OnFillRegionComputed (IBitVector2D stencil) { Document doc = PintaCore.Workspace.ActiveDocument; ImageSurface surf = doc.ToolLayer.Surface; using (var g = new Context (surf)) { g.Operator = Operator.Source; g.SetSource (doc.CurrentLayer.Surface); g.Paint (); } SimpleHistoryItem hist = new SimpleHistoryItem (Icon, Name); hist.TakeSnapshotOfLayer (doc.CurrentLayer); ColorBgra color = fill_color.ToColorBgra (); ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; int width = surf.Width; surf.Flush (); // Color in any pixel that the stencil says we need to fill Parallel.For (0, stencil.Width, x => { for (int y = 0; y < stencil.Height; y++) if (stencil.GetUnchecked (x, y)) surf.SetColorBgra (dstPtr, width, color, x, y); }); surf.MarkDirty (); // Transfer the temp layer to the real one, // respecting any selection area using (var g = doc.CreateClippedContext ()) { g.Operator = Operator.Source; g.SetSource (surf); g.Paint (); } doc.ToolLayer.Clear (); doc.History.PushNewItem (hist); doc.Workspace.Invalidate (); } } } pinta-1.3/Pinta.Tools/Tools/PanTool.cs0000664000175000017500000000551011747026475021017 0ustar00cameroncameron00000000000000// // PanTool.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class PanTool : BaseTool { public override string Name { get { return Catalog.GetString ("Pan"); } } public override string Icon { get { return "Tools.Pan.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to navigate image."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Pan.png"), 0, 0); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.H; } } public override int Priority { get { return 19; } } private bool active; private PointD last_point; protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, PointD point) { // If we are already panning, ignore any additional mouse down events if (active) return; Document doc = PintaCore.Workspace.ActiveDocument; // Don't scroll if the whole canvas fits (no scrollbars) if (!doc.Workspace.CanvasFitsInWindow) active = true; last_point = new PointD (args.Event.XRoot, args.Event.YRoot); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, PointD point) { active = false; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, PointD point) { if (active) { Document doc = PintaCore.Workspace.ActiveDocument; doc.Workspace.ScrollCanvas ((int)(last_point.X - args.Event.XRoot), (int)(last_point.Y - args.Event.YRoot)); last_point = new PointD (args.Event.XRoot, args.Event.YRoot); } } } } pinta-1.3/Pinta.Tools/Tools/PencilTool.cs0000664000175000017500000001270211747026475021514 0ustar00cameroncameron00000000000000// // PencilTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class PencilTool : BaseTool { private Point last_point = point_empty; private ImageSurface undo_surface; private bool surface_modified; public PencilTool () { } #region Properties public override string Name { get { return Catalog.GetString ("Pencil"); } } public override string Icon { get { return "Tools.Pencil.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to draw freeform, one-pixel wide lines with the primary color, right click to use the secondary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Pencil.png"), 1, 14); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.P; } } public override int Priority { get { return 29; } } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { if (surface_modified) return; surface_modified = false; undo_surface = PintaCore.Workspace.ActiveDocument.CurrentLayer.Surface.Clone (); Color tool_color; if (args.Event.Button == 1) // left tool_color = PintaCore.Palette.PrimaryColor; else if (args.Event.Button == 3) // right tool_color = PintaCore.Palette.SecondaryColor; else { last_point = point_empty; return; } Draw (canvas, tool_color, point, true); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Color tool_color; if ((args.Event.State & Gdk.ModifierType.Button1Mask) != 0) tool_color = PintaCore.Palette.PrimaryColor; else if ((args.Event.State & Gdk.ModifierType.Button3Mask) != 0) tool_color = PintaCore.Palette.SecondaryColor; else { last_point = point_empty; return; } Draw ((DrawingArea) o, tool_color, point, false); } private void Draw (DrawingArea drawingarea1, Color tool_color, Cairo.PointD point, bool first_pixel) { int x = (int)point.X; int y = (int) point.Y; if (last_point.Equals (point_empty)) { last_point = new Point (x, y); if (!first_pixel) return; } Document doc = PintaCore.Workspace.ActiveDocument; if (doc.Workspace.PointInCanvas (point)) surface_modified = true; ImageSurface surf = doc.CurrentLayer.Surface; if (first_pixel) { // Does Cairo really not support a single-pixel-long single-pixel-wide line? surf.Flush (); int shiftedX = (int)point.X; int shiftedY = (int)point.Y; ColorBgra source = surf.GetColorBgra (shiftedX, shiftedY); source = UserBlendOps.NormalBlendOp.ApplyStatic (source, tool_color.ToColorBgra ()); surf.SetColorBgra (source, shiftedX, shiftedY); surf.MarkDirty (); } else { using (Context g = new Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = Antialias.None; // Adding 0.5 forces cairo into the correct square: // See https://bugs.launchpad.net/bugs/672232 g.MoveTo (last_point.X + 0.5, last_point.Y + 0.5); g.LineTo (x + 0.5, y + 0.5); g.Color = tool_color; g.LineWidth = 1; g.LineCap = LineCap.Square; g.Stroke (); } } Gdk.Rectangle r = GetRectangleFromPoints (last_point, new Point (x, y)); doc.Workspace.Invalidate (r); last_point = new Point (x, y); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (surface_modified) doc.History.PushNewItem (new SimpleHistoryItem (Icon, Name, undo_surface, doc.CurrentLayerIndex)); else if (undo_surface != null) (undo_surface as IDisposable).Dispose (); surface_modified = false; } #endregion #region Private Methods private Gdk.Rectangle GetRectangleFromPoints (Point a, Point b) { int x = Math.Min (a.X, b.X) - 2 - 2; int y = Math.Min (a.Y, b.Y) - 2 - 2; int w = Math.Max (a.X, b.X) - x + (2 * 2) + 4; int h = Math.Max (a.Y, b.Y) - y + (2 * 2) + 4; return new Gdk.Rectangle (x, y, w, h); } #endregion } } pinta-1.3/Pinta.Tools/Tools/RecolorTool.cs0000664000175000017500000001624411747026475021714 0ustar00cameroncameron00000000000000// // RecolorTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // Some methods from Paint.Net: ///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; using Gtk; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class RecolorTool : BaseBrushTool { protected ToolBarLabel tolerance_label; protected ToolBarSlider tolerance_slider; private Point last_point = point_empty; private bool[,] stencil; private int myTolerance; public RecolorTool () { } #region Properties public override string Name { get { return Catalog.GetString ("Recolor"); } } public override string Icon { get { return "Tools.Recolor.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to replace the secondary color with the primary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Recolor.png"), 6, 11); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.R; } } protected float Tolerance { get { return (float)(tolerance_slider.Slider.Value / 100); } } public override int Priority { get { return 35; } } #endregion #region ToolBar protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (tolerance_label == null) tolerance_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Tolerance"))); tb.AppendItem (tolerance_label); if (tolerance_slider == null) tolerance_slider = new ToolBarSlider (0, 100, 1, 50); tb.AppendItem (tolerance_slider); } #endregion #region Mouse Handlers protected override void OnMouseDown (DrawingArea canvas, ButtonPressEventArgs args, PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); stencil = new bool[doc.ImageSize.Width, doc.ImageSize.Height]; base.OnMouseDown (canvas, args, point); } protected unsafe override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; ColorBgra old_color; ColorBgra new_color; if (mouse_button == 1) { old_color = PintaCore.Palette.PrimaryColor.ToColorBgra (); new_color = PintaCore.Palette.SecondaryColor.ToColorBgra (); } else if (mouse_button == 3) { old_color = PintaCore.Palette.SecondaryColor.ToColorBgra (); new_color = PintaCore.Palette.PrimaryColor.ToColorBgra (); } else { last_point = point_empty; return; } int x = (int)point.X; int y = (int)point.Y; if (last_point.Equals (point_empty)) last_point = new Point (x, y); if (doc.Workspace.PointInCanvas (point)) surface_modified = true; ImageSurface surf = doc.CurrentLayer.Surface; ImageSurface tmp_layer = doc.ToolLayer.Surface; Gdk.Rectangle roi = GetRectangleFromPoints (last_point, new Point (x, y)); roi = PintaCore.Workspace.ClampToImageSize (roi); myTolerance = (int)(Tolerance * 256); tmp_layer.Flush (); ColorBgra* tmp_data_ptr = (ColorBgra*)tmp_layer.DataPtr; int tmp_width = tmp_layer.Width; ColorBgra* surf_data_ptr = (ColorBgra*)surf.DataPtr; int surf_width = surf.Width; // The stencil lets us know if we've already checked this // pixel, providing a nice perf boost // Maybe this should be changed to a BitVector2DSurfaceAdapter? for (int i = roi.X; i < roi.Right; i++) for (int j = roi.Y; j < roi.Bottom; j++) { if (stencil[i, j]) continue; if (IsColorInTolerance (new_color, surf.GetColorBgra (surf_data_ptr, surf_width, i, j))) *tmp_layer.GetPointAddressUnchecked (tmp_data_ptr, tmp_width, i, j) = AdjustColorDifference (new_color, old_color, surf.GetColorBgra (surf_data_ptr, surf_width, i, j)); stencil[i, j] = true; } tmp_layer.MarkDirty (); using (Context g = new Context (surf)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; g.MoveTo (last_point.X, last_point.Y); g.LineTo (x, y); g.LineWidth = BrushWidth; g.LineJoin = LineJoin.Round; g.LineCap = LineCap.Round; g.SetSource (tmp_layer); g.Stroke (); } doc.Workspace.Invalidate (roi); last_point = new Point (x, y); } #endregion #region Private PDN Methods private bool IsColorInTolerance (ColorBgra colorA, ColorBgra colorB) { return Utility.ColorDifference (colorA, colorB) <= myTolerance; } private static bool CheckColor (ColorBgra a, ColorBgra b, int tolerance) { int sum = 0; int diff; diff = a.R - b.R; sum += (1 + diff * diff) * a.A / 256; diff = a.G - b.G; sum += (1 + diff * diff) * a.A / 256; diff = a.B - b.B; sum += (1 + diff * diff) * a.A / 256; diff = a.A - b.A; sum += diff * diff; return (sum <= tolerance * tolerance * 4); } private ColorBgra AdjustColorDifference (ColorBgra oldColor, ColorBgra newColor, ColorBgra basisColor) { ColorBgra returnColor; // eliminate testing for the "equal to" case returnColor = basisColor; returnColor.B = AdjustColorByte (oldColor.B, newColor.B, basisColor.B); returnColor.G = AdjustColorByte (oldColor.G, newColor.G, basisColor.G); returnColor.R = AdjustColorByte (oldColor.R, newColor.R, basisColor.R); return returnColor; } private byte AdjustColorByte (byte oldByte, byte newByte, byte basisByte) { if (oldByte > newByte) return Utility.ClampToByte (basisByte - (oldByte - newByte)); else return Utility.ClampToByte (basisByte + (newByte - oldByte)); } #endregion } } pinta-1.3/Pinta.Tools/Tools/RectangleSelectTool.cs0000664000175000017500000000416511747026475023352 0ustar00cameroncameron00000000000000// // RectangleSelectTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class RectangleSelectTool : SelectTool { public override string Name { get { return Catalog.GetString ("Rectangle Select"); } } public override string Icon { get { return "Tools.RectangleSelect.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw a rectangular selection. Hold shift to constrain to a square."); } } public override int Priority { get { return 5; } } protected override Rectangle DrawShape (Rectangle r, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Path path = doc.SelectionPath; using (Context g = new Context (l.Surface)) doc.SelectionPath = g.CreateRectanglePath (r); (path as IDisposable).Dispose (); // Add some padding for invalidation return new Rectangle (r.X, r.Y, r.Width + 2, r.Height + 2); } } } pinta-1.3/Pinta.Tools/Tools/RectangleTool.cs0000664000175000017500000000503611747026475022210 0ustar00cameroncameron00000000000000// // RectangleTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class RectangleTool : ShapeTool { public override string Name { get { return Catalog.GetString ("Rectangle"); } } public override string Icon { get { return "Tools.Rectangle.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw a rectangle (right click for secondary color). Hold shift to constrain to a square."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Rectangle.png"), 5, 9); } } public override int Priority{ get { return 41; } } protected override Rectangle DrawShape (Rectangle rect, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Rectangle dirty; using (Context g = new Context (l.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; if (FillShape && StrokeShape) dirty = g.FillStrokedRectangle (rect, fill_color, outline_color, BrushWidth); else if (FillShape) dirty = g.FillRectangle (rect, outline_color); else dirty = g.DrawRectangle (rect, outline_color, BrushWidth); } return dirty; } } } pinta-1.3/Pinta.Tools/Tools/RoundedRectangleTool.cs0000664000175000017500000001140311747026475023524 0ustar00cameroncameron00000000000000// // RoundedRectangleTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class RoundedRectangleTool : ShapeTool { protected ToolBarComboBox radius; protected ToolBarLabel radius_label; protected ToolBarButton radius_minus; protected ToolBarButton radius_plus; protected Gtk.SeparatorToolItem radius_sep; public override string Name { get { return Catalog.GetString ("Rounded Rectangle"); } } public override string Icon { get { return "Tools.RoundedRectangle.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Click and drag to draw a rounded rectangle (right click for secondary color). Hold shift to constrain to a square."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.RoundedRectangle.png"), 5, 9); } } public override int Priority { get { return 43; } } public double Radius { get { double rad; if (Double.TryParse (radius.ComboBox.ActiveText, out rad)) if (rad >= 0) { (radius.ComboBox as Gtk.ComboBoxEntry).Entry.Text = rad.ToString (); return rad; } else { (radius.ComboBox as Gtk.ComboBoxEntry).Entry.Text = BrushWidth.ToString (); return BrushWidth; } else { (radius.ComboBox as Gtk.ComboBoxEntry).Entry.Text = BrushWidth.ToString (); return BrushWidth; } } set { (radius.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString (); } } protected override void BuildToolBar (Gtk.Toolbar tb) { base.BuildToolBar (tb); if (radius_sep == null) radius_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (radius_sep); if (radius_label == null) radius_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Radius"))); tb.AppendItem (radius_label); if (radius_minus == null) { radius_minus = new ToolBarButton ("Toolbar.MinusButton.png", "", Catalog.GetString ("Decrease rectangle's corner radius")); radius_minus.Clicked += RadiusMinusButtonClickedEvent; } tb.AppendItem (radius_minus); if (radius == null) radius = new ToolBarComboBox (65, 2, true, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "20", "25", "30", "35", "40", "45", "50", "55"); tb.AppendItem (radius); if (radius_plus == null) { radius_plus = new ToolBarButton ("Toolbar.PlusButton.png", "", Catalog.GetString ("Increase rectangle's corner radius")); radius_plus.Clicked += RadiusPlusButtonClickedEvent; } tb.AppendItem (radius_plus); } protected override Rectangle DrawShape (Rectangle rect, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; Rectangle dirty; using (Context g = new Context (l.Surface)) { g.AppendPath (doc.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; if (FillShape && StrokeShape) dirty = g.FillStrokedRoundedRectangle (rect, Radius, fill_color, outline_color, BrushWidth); else if (FillShape) dirty = g.FillRoundedRectangle (rect, Radius, outline_color); else dirty = g.DrawRoundedRectangle (rect, Radius, outline_color, BrushWidth); } return dirty; } private void RadiusMinusButtonClickedEvent (object o, EventArgs args) { if (Math.Truncate(Radius) > 0) Radius = Math.Truncate(Radius) - 1; } private void RadiusPlusButtonClickedEvent (object o, EventArgs args) { Radius = Math.Truncate(Radius) + 1; } } } pinta-1.3/Pinta.Tools/Tools/SelectTool.cs0000664000175000017500000002376411747026475021533 0ustar00cameroncameron00000000000000// // SelectTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gtk; using Pinta.Core; namespace Pinta.Tools { public abstract class SelectTool : ShapeTool { private PointD reset_origin; private PointD shape_end; private ToolControl [] controls = new ToolControl [8]; protected SelectionHistoryItem hist; public override Gdk.Key ShortcutKey { get { return Gdk.Key.S; } } protected override bool ShowAntialiasingButton { get { return false; } } bool handler_active = false; private Gdk.Cursor cursor_hand; bool is_hand_cursor = false; public SelectTool () { CreateHandler (); cursor_hand = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Pan.png"), 0, 0); } #region ToolBar // We don't want the ShapeTool's toolbar protected override void BuildToolBar (Toolbar tb) { } #endregion #region Mouse Handlers protected override void OnMouseDown (DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point) { // Ignore extra button clicks while drawing if (is_drawing) return; reset_origin = args.Event.GetPoint (); Document doc = PintaCore.Workspace.ActiveDocument; if (!handler_active || !HandleResize (point.X, point.Y)) { double x = Utility.Clamp (point.X, 0, doc.ImageSize.Width - 1); double y = Utility.Clamp (point.Y, 0, doc.ImageSize.Height - 1); shape_origin = new PointD (x, y); is_drawing = true; } hist = new SelectionHistoryItem (Icon, Name); hist.TakeSnapshot (); } protected override void OnMouseUp (DrawingArea canvas, ButtonReleaseEventArgs args, Cairo.PointD point) { // If the user didn't move the mouse, they want to deselect int tolerance = 0; if (Math.Abs (reset_origin.X - args.Event.X) <= tolerance && Math.Abs (reset_origin.Y - args.Event.Y) <= tolerance) { PintaCore.Actions.Edit.Deselect.Activate (); hist.Dispose (); hist = null; handler_active = false; Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); } else { if (hist != null) PintaCore.Workspace.ActiveDocument.History.PushNewItem (hist); handler_active = true; hist = null; } is_drawing = false; } protected override void OnDeactivated () { base.OnDeactivated (); handler_active = false; if (PintaCore.Workspace.HasOpenDocuments) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); } } protected override void OnCommit () { base.OnCommit (); handler_active = false; if (PintaCore.Workspace.HasOpenDocuments) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); } } protected override void OnMouseMove (object o, MotionNotifyEventArgs args, Cairo.PointD point) { if (!is_drawing) { CheckHandlerCursor (point.X, point.Y); return; } Document doc = PintaCore.Workspace.ActiveDocument; double x = Utility.Clamp (point.X, 0, doc.ImageSize.Width - 1); double y = Utility.Clamp (point.Y, 0, doc.ImageSize.Height - 1); shape_end = new PointD (x, y); ReDraw (args.Event.State); } protected void RefreshHandler (Cairo.Rectangle r) { /*controls[0].Position = new PointD (r.X, r.Y); controls[1].Position = new PointD (r.X, r.GetBottom ()); controls[2].Position = new PointD (r.GetRight (), r.Y); controls[3].Position = new PointD (r.GetRight (), r.GetBottom ()); controls[4].Position = new PointD (r.X, r.Y + (r.Height / 2)); controls[5].Position = n(ew PointD (r.X + (r.Width / 2), r.Y); controls[6].Position = new PointD (r.GetRight (), r.Y + (r.Height / 2)); controls[7].Position = new PointD (r.X + (r.Width / 2), r.GetBottom ()); */ controls[0].Position = new PointD (shape_origin.X, shape_origin.Y); controls[1].Position = new PointD (shape_origin.X, shape_end.Y); controls[2].Position = new PointD (shape_end.X, shape_origin.Y); controls[3].Position = new PointD (shape_end.X, shape_end.Y); controls[4].Position = new PointD (shape_origin.X, (shape_origin.Y + shape_end.Y) / 2); controls[5].Position = new PointD ((shape_origin.X + shape_end.X) / 2, shape_origin.Y); controls[6].Position = new PointD (shape_end.X, (shape_origin.Y + shape_end.Y) / 2); controls[7].Position = new PointD ((shape_origin.X + shape_end.X) / 2, shape_end.Y); } public void ReDraw (Gdk.ModifierType state) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ShowSelection = true; doc.ToolLayer.Hidden = false; bool constraint = (state & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask; if (constraint) { double dx = Math.Abs (shape_end.X - shape_origin.X); double dy = Math.Abs (shape_end.Y - shape_origin.Y); if (dx <= dy) if (shape_end.X >= shape_origin.X) shape_end.X = shape_origin.X + dy; else shape_end.X = shape_origin.X - dy; else if (shape_end.Y >= shape_origin.Y) shape_end.Y = shape_origin.Y + dx; else shape_end.Y = shape_origin.Y - dx; } Cairo.Rectangle rect = Utility.PointsToRectangle (shape_origin, shape_end, constraint); RefreshHandler (rect); Rectangle dirty = DrawShape (rect, doc.SelectionLayer); DrawHandler (doc.ToolLayer); doc.Workspace.Invalidate (); last_dirty = dirty; } protected void CreateHandler () { controls[0] = new ToolControl ((x, y, s) => { shape_origin.X = x; shape_origin.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { if (shape_end.X - shape_origin.X <= shape_end.Y - shape_origin.Y) shape_origin.X = shape_end.X - shape_end.Y + shape_origin.Y; else shape_origin.Y = shape_end.Y - shape_end.X + shape_origin.X; } ReDraw (s); }); controls[1] = new ToolControl ((x, y, s) => { shape_origin.X = x; shape_end.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { if (shape_end.X - shape_origin.X <= shape_end.Y - shape_origin.Y) shape_origin.X = shape_end.X - shape_end.Y + shape_origin.Y; else shape_end.Y = shape_origin.Y + shape_end.X - shape_origin.X; } ReDraw (s); }); controls[2] = new ToolControl ((x, y, s) => { shape_end.X = x; shape_origin.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { if (shape_end.X - shape_origin.X <= shape_end.Y - shape_origin.Y) shape_end.X = shape_origin.X + shape_end.Y - shape_origin.Y; else shape_origin.Y = shape_end.Y - shape_end.X + shape_origin.X; } ReDraw (s); }); controls[3] = new ToolControl ((x, y, s) => { shape_end.X = x; shape_end.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { if (shape_end.X - shape_origin.X <= shape_end.Y - shape_origin.Y) shape_end.X = shape_origin.X + shape_end.Y - shape_origin.Y; else shape_end.Y = shape_origin.Y + shape_end.X - shape_origin.X; } ReDraw (s); }); controls[4] = new ToolControl ((x, y, s) => { shape_origin.X = x; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { double d = shape_end.X - shape_origin.X; shape_origin.Y = (shape_origin.Y + shape_end.Y - d) / 2; shape_end.Y = (shape_origin.Y + shape_end.Y + d) / 2; } ReDraw (s); }); controls[5] = new ToolControl ((x, y, s) => { shape_origin.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { double d = shape_end.Y - shape_origin.Y; shape_origin.X = (shape_origin.X + shape_end.X - d) / 2; shape_end.X = (shape_origin.X + shape_end.X + d) / 2; } ReDraw (s); }); controls[6] = new ToolControl ((x, y, s) => { shape_end.X = x; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { double d = shape_end.X - shape_origin.X; shape_origin.Y = (shape_origin.Y + shape_end.Y - d) / 2; shape_end.Y = (shape_origin.Y + shape_end.Y + d) / 2; } ReDraw (s); }); controls[7] = new ToolControl ((x, y, s) => { shape_end.Y = y; if ((s & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask) { double d = shape_end.Y - shape_origin.Y; shape_origin.X = (shape_origin.X + shape_end.X - d) / 2; shape_end.X = (shape_origin.X + shape_end.X + d) / 2; } ReDraw (s); }); } public bool HandleResize (double x, double y) { foreach (ToolControl ct in controls) { if (ct.Handle (this, new PointD (x, y ))) { return true; } } return false; } public void DrawHandler (Layer layer) { layer.Clear (); foreach (ToolControl ct in controls) ct.Render (layer); } public void CheckHandlerCursor (double x, double y) { foreach (ToolControl ct in controls) { if (ct.IsInside (x, y)) { if (!is_hand_cursor) { SetCursor (cursor_hand); is_hand_cursor = true; } return; } } if (is_hand_cursor) { SetCursor (DefaultCursor); is_hand_cursor = false; } } #endregion } } pinta-1.3/Pinta.Tools/Tools/ShapeTool.cs0000664000175000017500000002137211747026475021345 0ustar00cameroncameron00000000000000// // ShapeTool.cs // // Author: // Jonathan Pobst // // Copyright (c) 2010 Jonathan Pobst // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public abstract class ShapeTool : BaseTool { protected bool is_drawing = false; protected PointD shape_origin; protected PointD current_point; protected Color outline_color; protected Color fill_color; protected ToolBarComboBox brush_width; protected ToolBarLabel brush_width_label; protected ToolBarButton brush_width_minus; protected ToolBarButton brush_width_plus; protected ToolBarLabel fill_label; protected ToolBarDropDownButton fill_button; protected Gtk.SeparatorToolItem fill_sep; protected Rectangle last_dirty; protected ImageSurface undo_surface; protected bool surface_modified; public ShapeTool () { } static ShapeTool () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("ShapeTool.Outline.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.Outline.png"))); fact.Add ("ShapeTool.Fill.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.Fill.png"))); fact.Add ("ShapeTool.OutlineFill.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.OutlineFill.png"))); fact.AddDefault (); } #region Properties protected int BrushWidth { get { int width; if (Int32.TryParse (brush_width.ComboBox.ActiveText, out width)) { if (width > 0) { (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = width.ToString (); return width; } } (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = DEFAULT_BRUSH_WIDTH.ToString (); return DEFAULT_BRUSH_WIDTH; } set { (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString (); } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.O; } } protected override bool ShowAntialiasingButton { get { return true; } } #endregion #region ToolBar protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); BuildToolBar (tb); } // Do this in a separate method so SelectTool can override it as // a no-op, but still get the BaseShape.OnBuildToolBar logic. protected virtual void BuildToolBar (Gtk.Toolbar tb) { if (brush_width_label == null) brush_width_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Brush width"))); tb.AppendItem (brush_width_label); if (brush_width_minus == null) { brush_width_minus = new ToolBarButton ("Toolbar.MinusButton.png", "", Catalog.GetString ("Decrease brush size")); brush_width_minus.Clicked += MinusButtonClickedEvent; } tb.AppendItem (brush_width_minus); if (brush_width == null) brush_width = new ToolBarComboBox (65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "20", "25", "30", "35", "40", "45", "50", "55"); tb.AppendItem (brush_width); if (brush_width_plus == null) { brush_width_plus = new ToolBarButton ("Toolbar.PlusButton.png", "", Catalog.GetString ("Increase brush size")); brush_width_plus.Clicked += PlusButtonClickedEvent; } tb.AppendItem (brush_width_plus); if (ShowStrokeComboBox) { if (fill_sep == null) fill_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (fill_sep); if (fill_label == null) fill_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Fill Style"))); tb.AppendItem (fill_label); if (fill_button == null) { fill_button = new ToolBarDropDownButton (); fill_button.AddItem (Catalog.GetString ("Outline Shape"), "ShapeTool.Outline.png", 0); fill_button.AddItem (Catalog.GetString ("Fill Shape"), "ShapeTool.Fill.png", 1); fill_button.AddItem (Catalog.GetString ("Fill and Outline Shape"), "ShapeTool.OutlineFill.png", 2); } tb.AppendItem (fill_button); } } protected virtual void MinusButtonClickedEvent (object o, EventArgs args) { if (BrushWidth > 1) BrushWidth--; } protected virtual void PlusButtonClickedEvent (object o, EventArgs args) { BrushWidth++; } #endregion #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { // If we are already drawing, ignore any additional mouse down events if (is_drawing) return; Document doc = PintaCore.Workspace.ActiveDocument; shape_origin = point; current_point = point; is_drawing = true; if (args.Event.Button == 1) { outline_color = PintaCore.Palette.PrimaryColor; fill_color = PintaCore.Palette.SecondaryColor; } else { outline_color = PintaCore.Palette.SecondaryColor; fill_color = PintaCore.Palette.PrimaryColor; } doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = false; surface_modified = false; undo_surface = doc.CurrentLayer.Surface.Clone (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; double x = point.X; double y = point.Y; current_point = point; doc.ToolLayer.Hidden = true; DrawShape (Utility.PointsToRectangle (shape_origin, new PointD (x, y), args.Event.IsShiftPressed ()), doc.CurrentLayer, args.Event.IsShiftPressed ()); Gdk.Rectangle r = GetRectangleFromPoints (shape_origin, new PointD (x, y)); doc.Workspace.Invalidate (last_dirty.ToGdkRectangle ()); is_drawing = false; if (surface_modified) doc.History.PushNewItem (CreateHistoryItem ()); else if (undo_surface != null) (undo_surface as IDisposable).Dispose (); surface_modified = false; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { if (!is_drawing) return; Document doc = PintaCore.Workspace.ActiveDocument; current_point = point; double x = point.X; double y = point.Y; doc.ToolLayer.Clear (); bool shiftkey_pressed = (args.Event.State & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask; Rectangle dirty = DrawShape (Utility.PointsToRectangle (shape_origin, new PointD (x, y), shiftkey_pressed), doc.ToolLayer, shiftkey_pressed); dirty = dirty.Clamp (); doc.Workspace.Invalidate (last_dirty.ToGdkRectangle ()); doc.Workspace.Invalidate (dirty.ToGdkRectangle ()); last_dirty = dirty; if (doc.Workspace.PointInCanvas (point)) surface_modified = true; } #endregion #region Virtual Methods protected virtual Rectangle DrawShape (Rectangle r, Layer l) { return r; } /// /// Override this to implement features on shift, like line snapping. /// protected virtual Rectangle DrawShape (Rectangle r, Layer l, bool shiftkey_pressed) { return DrawShape (r, l); } protected virtual BaseHistoryItem CreateHistoryItem () { return new ClippedSurfaceHistoryItem (Icon, Name, new IrregularSurface (undo_surface, Gdk.Region.Rectangle (last_dirty.ToGdkRectangle ())), PintaCore.Workspace.ActiveDocument.CurrentLayerIndex); } #endregion #region Protected Methods protected Gdk.Rectangle GetRectangleFromPoints (PointD a, PointD b) { int x = (int)Math.Min (a.X, b.X) - BrushWidth - 2; int y = (int)Math.Min (a.Y, b.Y) - BrushWidth - 2; int w = (int)Math.Max (a.X, b.X) - x + (BrushWidth * 2) + 4; int h = (int)Math.Max (a.Y, b.Y) - y + (BrushWidth * 2) + 4; return new Gdk.Rectangle (x, y, w, h); } protected bool StrokeShape { get { return (int)fill_button.SelectedItem.Tag % 2 == 0; } } protected bool FillShape { get { return (int)fill_button.SelectedItem.Tag >= 1; } } protected virtual bool ShowStrokeComboBox { get { return true; } } #endregion } } pinta-1.3/Pinta.Tools/Tools/TextTool/0000775000175000017500000000000011747026475020675 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/Tools/TextTool/EditingMode.cs0000664000175000017500000000137211747026475023417 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Tools { enum EditingMode { NotEditing, EmptyEdit, Editing } } pinta-1.3/Pinta.Tools/Tools/TextTool/Position.cs0000664000175000017500000000203211747026475023025 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Tools { sealed class Position { private int line; private int offset; public Position (int line, int offset) { this.line = line; this.offset = offset; } public int Line { get { return line; } set { line = Math.Max (value, 0); } } public int Offset { get { return offset; } set { offset = Math.Max (value, 0); } } } } pinta-1.3/Pinta.Tools/Tools/TextTool/TextAlignment.cs0000664000175000017500000000136111747026475024010 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // ///////////////////////////////////////////////////////////////////////////////// using System; namespace Pinta.Tools { enum TextAlignment { Right, Center, Left } } pinta-1.3/Pinta.Tools/Tools/TextTool/TextEngine.cs0000664000175000017500000002561511747026475023307 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // // Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.Text; using Gdk; using Pinta.Core; namespace Pinta.Tools { class TextEngine { private Point origin; private Pango.Layout layout; private List lines; private int linePos; private int textPos; bool underline; public TextEngine () { lines = new List (); layout = new Pango.Layout (PintaCore.Chrome.Canvas.PangoContext); } #region Public Properties public Position CurrentPosition { get { return new Position (linePos, textPos); } } public EditingMode EditMode { get { if (lines.Count == 1 && lines[0] == string.Empty) return EditingMode.EmptyEdit; return EditingMode.Editing; } } public int FontHeight { get { return GetCursorLocation ().Height; } } public Pango.Layout Layout { get { return layout; } } public int LineCount { get { return lines.Count; } } public Point Origin { get { return origin; } set { origin = value; } } #endregion #region Public Methods public void Clear () { lines.Clear (); lines.Add (string.Empty); linePos = 0; textPos = 0; origin = Point.Zero; Recalculate (); } public Rectangle GetCursorLocation () { Pango.Rectangle weak, strong; int index = PositionToIndex (CurrentPosition); layout.GetCursorPos (index, out strong, out weak); int x = Pango.Units.ToPixels (strong.X) + origin.X; int y = Pango.Units.ToPixels (strong.Y) + origin.Y; int w = Pango.Units.ToPixels (strong.Width); int h = Pango.Units.ToPixels (strong.Height); return new Rectangle (x, y, w, h); } public Rectangle GetLayoutBounds () { Pango.Rectangle ink, logical; layout.GetPixelExtents (out ink, out logical); Rectangle r = new Rectangle (ink.X + origin.X, ink.Y + origin.Y, ink.Width, ink.Height); return r; } public Position PointToTextPosition (Point point) { int index, trailing; int x = Pango.Units.FromPixels (point.X - origin.X); int y = Pango.Units.FromPixels (point.Y - origin.Y); layout.XyToIndex (x, y, out index, out trailing); return IndexToPosition (index + trailing); } public override string ToString () { StringBuilder sb = new StringBuilder (); foreach (string s in lines) sb.AppendLine (s); return sb.ToString (); } public void SetAlignment (TextAlignment alignment) { switch (alignment) { case TextAlignment.Right: layout.Alignment = Pango.Alignment.Right; break; case TextAlignment.Center: layout.Alignment = Pango.Alignment.Center; break; case TextAlignment.Left: layout.Alignment = Pango.Alignment.Left; break; } } public void SetCursorPosition (Position position) { linePos = position.Line; textPos = position.Offset; } public void SetFont (string face, int size, bool bold, bool italic, bool underline) { var font = Pango.FontDescription.FromString (string.Format ("{0} {1}", face, size)); font.Weight = bold ? Pango.Weight.Bold : Pango.Weight.Normal; font.Style = italic ? Pango.Style.Italic : Pango.Style.Normal; layout.FontDescription = font; this.underline = underline; Recalculate (); } public Point TextPositionToPoint (Position p) { int index = PositionToIndex (p); var rect = layout.IndexToPos (index); int x = Pango.Units.ToPixels (rect.X) + origin.X; int y = Pango.Units.ToPixels (rect.Y) + origin.Y; return new Point (x, y); } #endregion #region Key Handlers public void InsertCharIntoString (uint c) { byte[] bytes = { (byte)c, (byte)(c >> 8), (byte)(c >> 16), (byte)(c >> 24) }; string unicodeChar = System.Text.Encoding.UTF32.GetString (bytes); lines[linePos] = lines[linePos].Insert (textPos, unicodeChar); textPos++; Recalculate (); } public void PerformEnter () { string currentLine = lines[linePos]; if (textPos == currentLine.Length) { // If we are at the end of a line, insert an empty line at the next line lines.Insert (linePos + 1, string.Empty); } else { lines.Insert (linePos + 1, currentLine.Substring (textPos, currentLine.Length - textPos)); lines[linePos] = lines[linePos].Substring (0, textPos); } linePos++; textPos = 0; Recalculate (); } public void PerformBackspace () { // We're at the beginning of a line and there's // a line above us, go to the end of the prior line if (textPos == 0 && linePos > 0) { int ntp = lines[linePos - 1].Length; lines[linePos - 1] = lines[linePos - 1] + lines[linePos]; lines.RemoveAt (linePos); linePos--; textPos = ntp; Recalculate (); } else if (textPos > 0) { // We're in the middle of a line, delete the previous character string ln = lines[linePos]; // If we are at the end of a line, we don't need to place a compound string if (textPos == ln.Length) lines[linePos] = ln.Substring (0, ln.Length - 1); else lines[linePos] = ln.Substring (0, textPos - 1) + ln.Substring (textPos); textPos--; Recalculate (); } } public void PerformDelete () { // Where are we?! if ((linePos == lines.Count - 1) && (textPos == lines[lines.Count - 1].Length)) { // The cursor is at the end of the text block return; } else if (textPos == lines[linePos].Length) { // End of a line, must merge strings lines[linePos] = lines[linePos] + lines[linePos + 1]; lines.RemoveAt (linePos + 1); } else { // Middle of a line somewhere lines[linePos] = lines[linePos].Substring (0, textPos) + (lines[linePos]).Substring (textPos + 1); } Recalculate (); } public void PerformLeft (bool control) { if (control) { PerformControlLeft (); return; } // Move caret to the left, or to the previous line if (textPos > 0) textPos--; else if (textPos == 0 && linePos > 0) { linePos--; textPos = lines[linePos].Length; } } public void PerformControlLeft () { // Move caret to the left to the beginning of the word/space/etc. if (textPos > 0) { int ntp = textPos; string currentLine = lines[linePos]; if (System.Char.IsLetterOrDigit (currentLine[ntp - 1])) { while (ntp > 0 && (System.Char.IsLetterOrDigit (currentLine[ntp - 1]))) ntp--; } else if (System.Char.IsWhiteSpace (currentLine[ntp - 1])) { while (ntp > 0 && (System.Char.IsWhiteSpace (currentLine[ntp - 1]))) ntp--; } else if (ntp > 0 && System.Char.IsPunctuation (currentLine[ntp - 1])) { while (ntp > 0 && System.Char.IsPunctuation (currentLine[ntp - 1])) ntp--; } else { ntp--; } textPos = ntp; } else if (textPos == 0 && linePos > 0) { linePos--; textPos = lines[linePos].Length; } } public void PerformRight (bool control) { if (control) { PerformControlRight (); return; } // Move caret to the right, or to the next line if (textPos < lines[linePos].Length) { textPos++; } else if (textPos == lines[linePos].Length && linePos < lines.Count - 1) { linePos++; textPos = 0; } } public void PerformControlRight () { // Move caret to the right to the end of the word/space/etc. if (textPos < lines[linePos].Length) { int ntp = textPos; string currentLine = lines[linePos]; if (System.Char.IsLetterOrDigit (currentLine[ntp])) { while (ntp < currentLine.Length && (System.Char.IsLetterOrDigit (currentLine[ntp]))) ntp++; } else if (System.Char.IsWhiteSpace (currentLine[ntp])) { while (ntp < currentLine.Length && (System.Char.IsWhiteSpace (currentLine[ntp]))) ntp++; } else if (ntp > 0 && System.Char.IsPunctuation (currentLine[ntp])) { while (ntp < currentLine.Length && System.Char.IsPunctuation (currentLine[ntp])) ntp++; } else { ntp++; } textPos = ntp; } else if (textPos == lines[linePos].Length && linePos < lines.Count - 1) { linePos++; textPos = 0; } } public void PerformHome (bool control) { // For Ctrl-Home, we go to the top line if (control) linePos = 0; // Go to the beginning of the line textPos = 0; } public void PerformEnd (bool control) { // For Ctrl-End, we go to the last line if (control) linePos = lines.Count - 1; // Go to the end of the line textPos = lines[linePos].Length; } public void PerformUp () { // Move to the letter above this one Point point = TextPositionToPoint (CurrentPosition); point.Y -= FontHeight; Position pos = PointToTextPosition (point); SetCursorPosition (pos); } public void PerformDown () { if (CurrentPosition.Line == LineCount - 1) { // Last line -> don't do squat } else { // Move to the letter below this one Point point = TextPositionToPoint (CurrentPosition); point.Y += FontHeight; Position pos = PointToTextPosition (point); SetCursorPosition (pos); } } #endregion #region Private Methods private Position IndexToPosition (int index) { int current = 0; int line = 0; int offset = 0; foreach (string s in lines) { // It's past this line, move along if (current + StringToByteSize(s) < index) { current += StringToByteSize(s) + 1; line++; continue; } // It's in this line offset = index - current; offset = ByteOffsetToCharacterOffset(lines[line], offset); return new Position (line, offset); } // It's below all of our lines, return the end of the last line return new Position (lines.Count - 1, lines[lines.Count - 1].Length); } private int PositionToIndex (Position p) { int index = 0; for (int i = 0; i < p.Line; i++) index += StringToByteSize(lines[i]) + 1; index += StringToByteSize(lines[p.Line].Substring(0, p.Offset)); return index; } private int StringToByteSize(string s) { System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); return (enc.GetBytes(s)).Length; } private int ByteOffsetToCharacterOffset(string s, int offset) { int i = 0; for(i = 0; i < offset; i++) { if(StringToByteSize(s.Substring(0, i)) >= offset) break; } return i; } private void Recalculate () { string markup = ToString (); if (underline) markup = string.Format ("{0}", markup); layout.SetMarkup (markup); } #endregion } } pinta-1.3/Pinta.Tools/Tools/TextTool/TextTool.cs0000664000175000017500000005175611747026475023024 0ustar00cameroncameron00000000000000///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // // // // Ported to Pinta by: Olivier Dufour // // Jonathan Pobst // ///////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using Gdk; using Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Tools { public class TextTool : BaseTool { // Variables for dragging private Cairo.PointD startMouseXY; private Point startClickPoint; private bool tracking; private Gdk.Cursor cursor_hand; private Point clickPoint; private bool is_editing; private Rectangle old_bounds = Rectangle.Zero; private Rectangle old_cursor_bounds = Rectangle.Zero; private TextEngine engine; public override string Name { get { return Catalog.GetString ("Text"); } } public override string Icon { get { return "Tools.Text.png"; } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.T; } } public override int Priority { get { return 37; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to place cursor, then type desired text. Text color is primary color."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Text.png"), 8, 0); } } #region Constructor public TextTool () { cursor_hand = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Pan.png"), 0, 0); engine = new TextEngine (); } static TextTool () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("ShapeTool.Outline.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.Outline.png"))); fact.Add ("ShapeTool.Fill.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.Fill.png"))); fact.Add ("ShapeTool.OutlineFill.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ShapeTool.OutlineFill.png"))); fact.Add ("TextTool.FillBackground.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("TextTool.FillBackground.png"))); fact.AddDefault (); } #endregion #region ToolBar private ToolBarLabel font_label; private ToolBarFontComboBox font_combo; private ToolBarComboBox size_combo; private ToolBarToggleButton bold_btn; private ToolBarToggleButton italic_btn; private ToolBarToggleButton underscore_btn; private ToolBarToggleButton left_alignment_btn; private ToolBarToggleButton center_alignment_btn; private ToolBarToggleButton Right_alignment_btn; private ToolBarLabel spacer_label; private ToolBarLabel fill_label; private ToolBarDropDownButton fill_button; private SeparatorToolItem fill_sep; private ToolBarComboBox outline_width; private ToolBarLabel outline_width_label; private ToolBarButton outline_width_minus; private ToolBarButton outline_width_plus; protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (font_label == null) font_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Font"))); tb.AppendItem (font_label); if (font_combo == null) { var fonts = PintaCore.System.Fonts.GetInstalledFonts (); fonts.Sort (); // Default to Arial or first in list int index = Math.Max (fonts.IndexOf ("Arial"), 0); font_combo = new ToolBarFontComboBox (150, index, fonts.ToArray ()); font_combo.ComboBox.Changed += HandleFontChanged; } tb.AppendItem (font_combo); if (spacer_label == null) spacer_label = new ToolBarLabel (" "); tb.AppendItem (spacer_label); if (size_combo == null) { size_combo = new ToolBarComboBox (65, 0, true); size_combo.ComboBox.Changed += HandleSizeChanged; (size_combo.ComboBox as Gtk.ComboBoxEntry).Entry.FocusOutEvent += new Gtk.FocusOutEventHandler (HandleFontSizeFocusOut); (size_combo.ComboBox as Gtk.ComboBoxEntry).Entry.FocusInEvent += new Gtk.FocusInEventHandler (HandleFontSizeFocusIn); } tb.AppendItem (size_combo); tb.AppendItem (new SeparatorToolItem ()); if (bold_btn == null) { bold_btn = new ToolBarToggleButton ("Toolbar.Bold.png", Catalog.GetString ("Bold"), Catalog.GetString ("Bold")); bold_btn.Toggled += HandleBoldButtonToggled; } tb.AppendItem (bold_btn); if (italic_btn == null) { italic_btn = new ToolBarToggleButton ("Toolbar.Italic.png", Catalog.GetString ("Italic"), Catalog.GetString ("Italic")); italic_btn.Toggled += HandleItalicButtonToggled; } tb.AppendItem (italic_btn); if (underscore_btn == null) { underscore_btn = new ToolBarToggleButton ("Toolbar.Underline.png", Catalog.GetString ("Underline"), Catalog.GetString ("Underline")); underscore_btn.Toggled += HandleUnderscoreButtonToggled; } tb.AppendItem (underscore_btn); tb.AppendItem (new SeparatorToolItem ()); if (left_alignment_btn == null) { left_alignment_btn = new ToolBarToggleButton ("Toolbar.LeftAlignment.png", Catalog.GetString ("Left Align"), Catalog.GetString ("Left Align")); left_alignment_btn.Active = true; left_alignment_btn.Toggled += HandleLeftAlignmentButtonToggled; } tb.AppendItem (left_alignment_btn); if (center_alignment_btn == null) { center_alignment_btn = new ToolBarToggleButton ("Toolbar.CenterAlignment.png", Catalog.GetString ("Center Align"), Catalog.GetString ("Center Align")); center_alignment_btn.Toggled += HandleCenterAlignmentButtonToggled; } tb.AppendItem (center_alignment_btn); if (Right_alignment_btn == null) { Right_alignment_btn = new ToolBarToggleButton ("Toolbar.RightAlignment.png", Catalog.GetString ("Right Align"), Catalog.GetString ("Right Align")); Right_alignment_btn.Toggled += HandleRightAlignmentButtonToggled; } tb.AppendItem (Right_alignment_btn); if (fill_sep == null) fill_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (fill_sep); if (fill_label == null) fill_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Text Style"))); tb.AppendItem (fill_label); if (fill_button == null) { fill_button = new ToolBarDropDownButton (); fill_button.AddItem (Catalog.GetString ("Normal"), "ShapeTool.Fill.png", 0); fill_button.AddItem (Catalog.GetString ("Normal and Outline"), "ShapeTool.OutlineFill.png", 1); fill_button.AddItem (Catalog.GetString ("Outline"), "ShapeTool.Outline.png", 2); fill_button.AddItem (Catalog.GetString ("Fill Background"), "TextTool.FillBackground.png", 3); fill_button.SelectedItemChanged += HandleBoldButtonToggled; } tb.AppendItem (fill_button); if (outline_width_label == null) outline_width_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Outline width"))); tb.AppendItem (outline_width_label); if (outline_width_minus == null) { outline_width_minus = new ToolBarButton ("Toolbar.MinusButton.png", "", Catalog.GetString ("Decrease outline size")); outline_width_minus.Clicked += MinusButtonClickedEvent; } tb.AppendItem (outline_width_minus); if (outline_width == null) { outline_width = new ToolBarComboBox (65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "20", "25", "30", "35", "40", "45", "50", "55"); (outline_width.Child as ComboBoxEntry).Changed += HandleSizeChanged; } tb.AppendItem (outline_width); if (outline_width_plus == null) { outline_width_plus = new ToolBarButton ("Toolbar.PlusButton.png", "", Catalog.GetString ("Increase outline size")); outline_width_plus.Clicked += PlusButtonClickedEvent; } tb.AppendItem (outline_width_plus); UpdateFontSizes (); } string temp_size; private void HandleFontSizeFocusIn (object o, FocusInEventArgs args) { size_combo.ComboBox.Changed -= HandleSizeChanged; temp_size = size_combo.ComboBox.ActiveText; } private void HandleFontSizeFocusOut (object o, FocusOutEventArgs args) { string text = size_combo.ComboBox.ActiveText; int size; if (!int.TryParse (text, out size)) { (size_combo.ComboBox as Gtk.ComboBoxEntry).Entry.Text = temp_size; return; } PintaCore.Chrome.Canvas.GrabFocus (); UpdateFont (); size_combo.ComboBox.Changed += HandleSizeChanged; } private void HandleFontChanged (object sender, EventArgs e) { PintaCore.Chrome.Canvas.GrabFocus (); UpdateFontSizes (); UpdateFont (); } private void UpdateFontSizes () { string oldval = size_combo.ComboBox.ActiveText; ListStore model = (ListStore)size_combo.ComboBox.Model; model.Clear (); List sizes = PintaCore.System.Fonts.GetSizes (FontFamily); foreach (int i in sizes) size_combo.ComboBox.AppendText (i.ToString ()); int index; if (string.IsNullOrEmpty (oldval)) index = sizes.IndexOf (12); else index = sizes.IndexOf (int.Parse (oldval)); if (index == -1) index = 0; size_combo.ComboBox.Active = index; } private void HandleSizeChanged (object sender, EventArgs e) { PintaCore.Chrome.Canvas.GrabFocus (); UpdateFont (); } private Pango.FontFamily FontFamily { get { return PintaCore.System.Fonts.GetFamily (font_combo.ComboBox.ActiveText); } } private int FontSize { get { return int.Parse (size_combo.ComboBox.ActiveText); } } private TextAlignment Alignment { get { if (Right_alignment_btn.Active) return TextAlignment.Right; else if (center_alignment_btn.Active) return TextAlignment.Center; else return TextAlignment.Left; } } private string Font { get { return font_combo.ComboBox.ActiveText; } } private void HandlePintaCorePalettePrimaryColorChanged (object sender, EventArgs e) { if (is_editing) RedrawText (true, true); } private void HandleLeftAlignmentButtonToggled (object sender, EventArgs e) { if (left_alignment_btn.Active) { Right_alignment_btn.Active = false; center_alignment_btn.Active = false; } else if (!Right_alignment_btn.Active && !center_alignment_btn.Active) { left_alignment_btn.Active = true; } UpdateFont (); } private void HandleCenterAlignmentButtonToggled (object sender, EventArgs e) { if (center_alignment_btn.Active) { Right_alignment_btn.Active = false; left_alignment_btn.Active = false; } else if (!Right_alignment_btn.Active && !left_alignment_btn.Active) { center_alignment_btn.Active = true; } UpdateFont (); } private void HandleRightAlignmentButtonToggled (object sender, EventArgs e) { if (Right_alignment_btn.Active) { center_alignment_btn.Active = false; left_alignment_btn.Active = false; } else if (!center_alignment_btn.Active && !left_alignment_btn.Active) { Right_alignment_btn.Active = true; } UpdateFont (); } private void HandleUnderscoreButtonToggled (object sender, EventArgs e) { UpdateFont (); } private void HandleItalicButtonToggled (object sender, EventArgs e) { UpdateFont (); } private void HandleBoldButtonToggled (object sender, EventArgs e) { UpdateFont (); } private void UpdateFont () { engine.SetAlignment (Alignment); engine.SetFont (Font, FontSize, bold_btn.Active, italic_btn.Active, underscore_btn.Active); if (is_editing) RedrawText (true, true); } protected virtual void MinusButtonClickedEvent (object o, EventArgs args) { if (OutlineWidth > 1) OutlineWidth--; } protected virtual void PlusButtonClickedEvent (object o, EventArgs args) { OutlineWidth++; } protected int OutlineWidth { get { int width; if (Int32.TryParse (outline_width.ComboBox.ActiveText, out width)) { if (width > 0) { (outline_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = width.ToString (); return width; } } (outline_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = "2"; return 2; } set { (outline_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString (); } } protected bool StrokeText { get { return ((int)fill_button.SelectedItem.Tag >= 1 && (int)fill_button.SelectedItem.Tag != 3); } } protected bool FillText { get { return (int)fill_button.SelectedItem.Tag <= 1 || (int)fill_button.SelectedItem.Tag == 3; } } protected bool BackgroundFill { get { return (int)fill_button.SelectedItem.Tag == 3; } } #endregion #region Activation/Deactivation protected override void OnActivated () { base.OnActivated (); // We may need to redraw our text when the color changes PintaCore.Palette.PrimaryColorChanged += HandlePintaCorePalettePrimaryColorChanged; PintaCore.Palette.SecondaryColorChanged += HandlePintaCorePalettePrimaryColorChanged; // We always start off not in edit mode is_editing = false; } protected override void OnCommit () { StopEditing (); } protected override void OnDeactivated () { base.OnDeactivated (); // Stop listening for color change events PintaCore.Palette.PrimaryColorChanged -= HandlePintaCorePalettePrimaryColorChanged; PintaCore.Palette.SecondaryColorChanged -= HandlePintaCorePalettePrimaryColorChanged; StopEditing (); } #endregion #region Mouse Handlers protected override void OnMouseDown (DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point) { Point pt = point.ToGdkPoint (); // Grab focus so we can get keystrokes PintaCore.Chrome.Canvas.GrabFocus (); // If we're in editing mode, a right click // allows you to move the text around if (is_editing && (args.Event.Button == 3)) { tracking = true; startMouseXY = point; startClickPoint = clickPoint; SetCursor (cursor_hand); return; } // The user clicked the left mouse button if (args.Event.Button == 1) { // If we're editing and the user clicked within the text, // move the cursor to the click location if (is_editing && old_bounds.ContainsCorrect (pt)) { Position p = engine.PointToTextPosition (pt); engine.SetCursorPosition (p); RedrawText (true, true); return; } // We're already editing and the user clicked outside the text, // commit the user's work, and start a new edit if (is_editing) { switch (engine.EditMode) { // We were editing, save and stop case EditingMode.Editing: StopEditing (); break; // We were editing, but nothing had been // keyed. Stop editing. case EditingMode.EmptyEdit: StopEditing (); break; } } // Start editing at the cursor location clickPoint = pt; StartEditing (); engine.Origin = clickPoint; RedrawText (true, true); PintaCore.Workspace.Invalidate (); } } protected override void OnMouseMove (object o, MotionNotifyEventArgs args, Cairo.PointD point) { // If we're dragging the text around, do that if (tracking) { Cairo.PointD delta = new Cairo.PointD (point.X - startMouseXY.X, point.Y - startMouseXY.Y); clickPoint = new Point ((int)(startClickPoint.X + delta.X), (int)(startClickPoint.Y + delta.Y)); engine.Origin = clickPoint; RedrawText (true, true); } } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { // If we were dragging the text around, finish that up if (tracking) { Cairo.PointD delta = new Cairo.PointD (point.X - startMouseXY.X, point.Y - startMouseXY.Y); clickPoint = new Point ((int)(startClickPoint.X + delta.X), (int)(startClickPoint.Y + delta.Y)); engine.Origin = clickPoint; RedrawText (false, true); tracking = false; SetCursor (null); } } #endregion #region Keyboard Handlers protected override void OnKeyDown (DrawingArea canvas, KeyPressEventArgs args) { Gdk.ModifierType modifier = args.Event.State; // If we are dragging the text, we // aren't going to handle key presses if (tracking) return; // Ignore anything with Alt pressed if ((modifier & Gdk.ModifierType.Mod1Mask) != 0) return; // Assume that we are going to handle the key bool keyHandled = true; if (is_editing) { switch (args.Event.Key) { case Gdk.Key.BackSpace: engine.PerformBackspace (); break; case Gdk.Key.Delete: engine.PerformDelete (); break; case Gdk.Key.KP_Enter: case Gdk.Key.Return: engine.PerformEnter (); break; case Gdk.Key.Left: engine.PerformLeft ((modifier & Gdk.ModifierType.ControlMask) != 0); break; case Gdk.Key.Right: engine.PerformRight ((modifier & Gdk.ModifierType.ControlMask) != 0); break; case Gdk.Key.Up: engine.PerformUp (); break; case Gdk.Key.Down: engine.PerformDown (); break; case Gdk.Key.Home: engine.PerformHome ((modifier & Gdk.ModifierType.ControlMask) != 0); break; case Gdk.Key.End: engine.PerformEnd ((modifier & Gdk.ModifierType.ControlMask) != 0); break; case Gdk.Key.Next: case Gdk.Key.Prior: break; case Gdk.Key.Escape: StopEditing (); break; default: // Try to handle it as a character uint ch = Gdk.Keyval.ToUnicode (args.Event.KeyValue); if (ch != 0) { engine.InsertCharIntoString (ch); RedrawText (true, true); } else { // We didn't handle the key keyHandled = false; } break; } // If we processed a key, update the display if (keyHandled) RedrawText (true, true); } else { // If we're not editing, allow the key press to be handled elsewhere (e.g. for selecting another tool). keyHandled = false; } args.RetVal = keyHandled; } #endregion #region Start/Stop Editing private void StartEditing () { is_editing = true; engine.Clear (); PintaCore.Workspace.ActiveDocument.ToolLayer.Hidden = false; } private void StopEditing () { // If we don't have an open document, some of this stuff will crash if (!PintaCore.Workspace.HasOpenDocuments) return; if (!is_editing) return; try { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = true; if (engine.EditMode == EditingMode.Editing) { SimpleHistoryItem hist = new SimpleHistoryItem (Icon, Name); hist.TakeSnapshotOfLayer (doc.CurrentLayerIndex); // Redraw the text without the cursor, // and on to the real layer RedrawText (false, false); doc.History.PushNewItem (hist); } engine.Clear (); doc.Workspace.Invalidate (old_bounds); old_bounds = Rectangle.Zero; is_editing = false; } catch (Exception) { // Just ignore the error } } #endregion #region Text Drawing Methods private void RedrawText (bool showCursor, bool useToolLayer) { Cairo.ImageSurface surf; var invalidate_cursor = old_cursor_bounds; if (!useToolLayer) surf = PintaCore.Workspace.ActiveDocument.CurrentLayer.Surface; else { surf = PintaCore.Workspace.ActiveDocument.ToolLayer.Surface; surf.Clear (); } using (var g = new Cairo.Context (surf)) { g.Save (); g.AppendPath (PintaCore.Workspace.ActiveDocument.SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.MoveTo (new Cairo.PointD (engine.Origin.X, engine.Origin.Y)); g.Color = PintaCore.Palette.PrimaryColor; //Fill in background if (BackgroundFill) { using (var g2 = new Cairo.Context (surf)) { g2.FillRectangle (engine.GetLayoutBounds ().ToCairoRectangle (), PintaCore.Palette.SecondaryColor); } } // Draw the text if (FillText) Pango.CairoHelper.ShowLayout (g, engine.Layout); if (FillText && StrokeText) { g.Color = PintaCore.Palette.SecondaryColor; g.LineWidth = OutlineWidth; Pango.CairoHelper.LayoutPath (g, engine.Layout); g.Stroke (); } else if (StrokeText) { g.Color = PintaCore.Palette.PrimaryColor; g.LineWidth = OutlineWidth; Pango.CairoHelper.LayoutPath (g, engine.Layout); g.Stroke (); } if (showCursor) { var loc = engine.GetCursorLocation (); g.Antialias = Cairo.Antialias.None; g.DrawLine (new Cairo.PointD (loc.X, loc.Y), new Cairo.PointD (loc.X, loc.Y + loc.Height), new Cairo.Color (0, 0, 0, 1), 1); loc.Inflate (2, 10); old_cursor_bounds = loc; } g.Restore (); } Rectangle r = engine.GetLayoutBounds (); r.Inflate (10 + OutlineWidth, 10 + OutlineWidth); PintaCore.Workspace.Invalidate (old_bounds); PintaCore.Workspace.Invalidate (invalidate_cursor); PintaCore.Workspace.Invalidate (r); old_bounds = r; } #endregion } } pinta-1.3/Pinta.Tools/Tools/ToolControl/0000775000175000017500000000000011747026475021371 5ustar00cameroncameron00000000000000pinta-1.3/Pinta.Tools/Tools/ToolControl/ToolControl.cs0000664000175000017500000000446111747026475024203 0ustar00cameroncameron00000000000000// // ToolControl.cs // // Author: // Olivier Dufour // // Copyright (c) 2011 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Gdk; using Pinta.Core; namespace Pinta.Tools { public class ToolControl { public ToolControl (MouseHandler moveAction) { this.action = moveAction; Position = new PointD (-5, -5); } int tolerance = 3; MouseHandler action; public PointD Position {get; set;} public bool Handle (BaseTool tool, Cairo.PointD point) { if (IsInside (point.X, point.Y)) { tool.MouseMoved += action; tool.MouseReleased += (x, y, s) => {tool.MouseMoved -= action;}; //TODO unregister mouse release return true; } return false; } public bool IsInside (double x, double y) { return (Math.Abs (x - Position.X) <= tolerance) && (Math.Abs (y - Position.Y) <= tolerance); } public void Render (Layer layer) { double scale_factor = (1.0 / PintaCore.Workspace.ActiveWorkspace.Scale); using (Context g = new Context (layer.Surface)) g.FillStrokedRectangle (new Cairo.Rectangle (Position.X - scale_factor * 2, Position.Y - scale_factor * 2, scale_factor * 4, scale_factor * 4), new Cairo.Color (0, 0, 1, 0.5), new Cairo.Color (0, 0, 1, 0.7), 1); } } } pinta-1.3/Pinta.Tools/Tools/ZoomTool.cs0000664000175000017500000001322411747026475021226 0ustar00cameroncameron00000000000000// // ZoomTool.cs // // Author: // Olivier Dufour // // Copyright (c) 2010 Olivier Dufour // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Cairo; using Pinta.Core; using Mono.Unix; namespace Pinta.Tools { public class ZoomTool : BaseTool { private Gdk.Cursor cursorZoomIn; private Gdk.Cursor cursorZoomOut; private Gdk.Cursor cursorZoom; private Gdk.Cursor cursorZoomPan; private uint mouseDown; private bool is_drawing; protected PointD shape_origin; private Rectangle last_dirty; private static readonly int tolerance = 10; public override string Name { get { return Catalog.GetString ("Zoom"); } } public override string Icon { get { return "Tools.Zoom.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to zoom in. Right click to zoom out. Click and drag to zoom in selection."); } } public override Gdk.Cursor DefaultCursor { get { return cursorZoom; } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.Z; } } public override int Priority { get { return 15; } } public ZoomTool () { this.mouseDown = 0; cursorZoomIn = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Menu.View.ZoomIn.png"), 0, 0); cursorZoomOut = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Menu.View.ZoomOut.png"), 0, 0); cursorZoom = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Zoom.png"), 0, 0); cursorZoomPan = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Tools.Pan.png"), 0, 0); } protected void UpdateRectangle (PointD point) { if (!is_drawing) return; Document doc = PintaCore.Workspace.ActiveDocument; Rectangle r = PointsToRectangle (shape_origin, point); Rectangle dirty; doc.ToolLayer.Clear (); doc.ToolLayer.Hidden = false; using (Context g = new Context (doc.ToolLayer.Surface)) { g.Antialias = Antialias.Subpixel; dirty = g.FillStrokedRectangle (r, new Color (0, 0.4, 0.8, 0.1), new Color (0, 0, 0.9), 1); dirty = dirty.Clamp (); doc.Workspace.Invalidate (last_dirty.ToGdkRectangle ()); doc.Workspace.Invalidate (dirty.ToGdkRectangle ()); last_dirty = dirty; } } protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { // If we are already tracking, ignore any additional mouse down events if (mouseDown > 0) return; shape_origin = point; switch (args.Event.Button) { case 1://left SetCursor (cursorZoomIn); break; case 2://midle SetCursor (cursorZoomPan); break; case 3://right SetCursor (cursorZoomOut); break; } mouseDown = args.Event.Button; } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { base.OnMouseMove (o, args, point); Document doc = PintaCore.Workspace.ActiveDocument; if (mouseDown == 1) { if (Math.Abs (shape_origin.X - point.X) > tolerance || Math.Abs (shape_origin.Y - point.Y) > tolerance) // if they've moved the mouse more than 10 pixels since they clicked is_drawing = true; //still draw rectangle after we have draw it one time... UpdateRectangle (point); } else if (mouseDown == 2) { doc.Workspace.ScrollCanvas ((int)((shape_origin.X - point.X) * doc.Workspace.Scale), (int)((shape_origin.Y - point.Y) * doc.Workspace.Scale)); } } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; double x = point.X; double y = point.Y; doc.ToolLayer.Hidden = true; if (mouseDown == 1 || mouseDown == 3) { //left or right if (args.Event.Button == 1) { //left if (Math.Abs (shape_origin.X - x) <= tolerance && Math.Abs (shape_origin.Y - y) <= tolerance) { doc.Workspace.ZoomIn (); doc.Workspace.RecenterView (x, y); } else { doc.Workspace.ZoomToRectangle (PointsToRectangle (shape_origin, point)); } } else { doc.Workspace.ZoomOut (); doc.Workspace.RecenterView (x, y); } } mouseDown = 0; is_drawing = false; SetCursor (cursorZoom);//restore regular cursor } Rectangle PointsToRectangle (Cairo.PointD p1, Cairo.PointD p2) { double x, y, w, h; if (p1.Y <= p2.Y) { y = p1.Y; h = p2.Y - y; } else { y = p2.Y; h = p1.Y - y; } if (p1.X <= p2.X) { x = p1.X; w = p2.X - x; } else { x = p2.X; w = p1.X - x; } return new Rectangle (x, y, w, h); } } } pinta-1.3/po/0000775000175000017500000000000011747026510014245 5ustar00cameroncameron00000000000000pinta-1.3/po/POTFILES.in0000664000175000017500000000002511747026475016031 0ustar00cameroncameron00000000000000xdg/pinta.desktop.in pinta-1.3/po/af.po0000664000175000017500000012454611747026475015221 0ustar00cameroncameron00000000000000# Afrikaans translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:06+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Afrikaans \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto Vlak" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Vlakke" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Swart en Wit" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurves" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Helderheid / Kontras" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Vlak Verstelling" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Invoer Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Invoer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Uitset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Uitset Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Herset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rooi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Groen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blou" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Gekoppel" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Oorplasing diagram" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Ligsterkte" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rooi " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blou " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Wenk: Klik regs om die kontrole punte te verwyder" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Wolke" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Fritz https://launchpad.net/~fritzlubbe" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ar.po0000664000175000017500000015252211747026475015230 0ustar00cameroncameron00000000000000# Arabic translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Ibrahim Saed \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "اضبط المستويات تلقائيا" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "اعكس الألوان" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "المستويات" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "تأثير اللّون البنّي الدّاكن" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "تأثير الملصقات" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "أسود وأبيض" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "منحنيات" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "السطوع / التباين" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "درجة اللون / الإشباع" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "ضبط المستويات" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "الرسم البياني للمُدخَلات" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "المُدخََلات" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "المُخرجَات" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "الرسم البياني للمُخرجَات" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "آلي" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "أعد الضبط" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "أحمر" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "أخضر" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "أزرق" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "مرتبط" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "نقل الخريطة" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "ح‌خ‌ز" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "الإشراق" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256، 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "أحمر " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "أزرق " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "تلميح: انقر بالزر الأيمن لحذف نقاط التحكم." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "اخفض الضّوضاء" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "ضوضاء" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "تفتيت" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "غشاوة" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "غيوم" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "صيّر" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "ألغِ التّركيز" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "إزالة احمرار العين" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "صورة" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "رمز مندلبروت" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "توهّج" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "تحديد الحواف" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "كسوة" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "غشاوة دورانية" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "تأثير الزجاج المثلج" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "تشويه" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "رسم زيتيّ" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "فنّي" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "رمز جوليا" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "تنعيم الصورة" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "تضريس" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "رسم بالحبر" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "متوسط" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "تجسيم" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "غشاوة غَوْسِيّة" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "اصقل" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "أضف ضوضاء" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "انعكاس بلاط" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "بكسلة" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "غشاوة حركية" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "انعكاس قطبي" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "انتفاخ" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "غشاوة تقريبيّة" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "رسم بقلم رصاص" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "حد خارجي" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "لفّ" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "لصاقة1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "لصاقة" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "ضوضاء عشوائيّة" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "اختر اللّون الأساسيّ" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "اختر اللّون الثّانويّ" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "اختر لون لوحة الألوان" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "تحديد مستطيل" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "انقر واسحب لرسم تحديد مستطيل. اضغط على shift أثناء السحب لرسم مربع." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "المستنسخ" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "انقر على زر Ctrl الأيسر لتعيين نقطة الأصل، وارسم بالزر الأيسر للفأرة." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "عصا التحديد السحرية" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "انقر لتحديد مساحة بألوان متقاربة." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "مستطيل" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "انقر واسحب لرسم مستطيل (أو انقر بالزّرّ الأيمن للفأرة لرسمه باللّون " "الثّانويّ). اضغط مطولا على زرّ Shift أثناء السحب لرسم مربّع." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "تحريك التحديد" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "اسحب المنطقة المُحددة لتحريك التحديد." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "تدرّج" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "انقر واسحب لرسم تدرّج من اللون الأساسي لللون الثانوي، وانقر الزر الأيمن لعمل " "العكس." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "تدرّج خطي" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "تدرّج خطي منعكس" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "تدرّج خطي ماسّي" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "تدرّج قطري" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "تدرّج مخروطي" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "نمط التحديد" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "متّصل" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "شامل" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "السماحية" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "فرشاة تلوين" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "انقر بالزر الأيسر للرسم باللون الأساسي، وبالزر الأيمن للرسم باللون الثانوي." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "النوع" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "قلم رصاص" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "يُستخدم للرسم الحُر بعرض بكسل واحد. استخدم الزر الأيسر للرسم باللون الأساسي، " "والزر الأيمن للرسم باللون الثانوي." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "تحديد بيضاوي" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "انقر واسحب لرسم تحديد بيضاوي. اضغط على Shift أثناء السحب لرسم دائرة." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "خط" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "استخدم الزر الأيسر للرسم باللون الأساسي، والزر الأيمن للرسم باللون الثانوي. " "اضغط مطولا على Shift للانجذاب للزوايا." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "ممحاة" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "استخدم الزر الأيسر للمحو إلى الشفافية، والزر الأيمن للمحو إلى اللون الثانوي. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "انتقل" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "انقر واسحب لتصفّح الصّورة" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "لاقط الألوان" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "استخدم الزر الأيسر لاختيار اللون الأساسي، والزر الأيمن لاختيار اللون الثانوي." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "بعد لقط اللون" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "لا تغيّر الأداة" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "غيّر إلى الأداة السابقة" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "بدّل إلى القلم الرصاص" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "مستطيل ذو زوايا مستديرة" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "نصف القطر" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "قلِّل نصف قٌطر أركان المستطيل" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "زِد نصف قُطر أركان المستطيل" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "تحريك البكسلات المُحددة" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "اسحب التحديد لتحريك الجزء المُحدد من الصورة." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "إعادة تلوين" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "انقر بالزر الأيسر لاستبدال اللون الثانوي باللون الأساسي." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "دلو الطلاﺀ" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "استخدم الزر الأيسر لتعبئة منطقة باللون الأساسي، والزر الأيمن للتعبئة باللون " "الثانوي." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "إهليج" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "انقر واسحب لرسم شكل بيضاوي (استخدم الزر الأيمن للرسم باللون الثانوي). اضغط " "مطولا على Shift لرسم دائرة." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "نصّ" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "انقر بالزّر الأيسر للفأرة لتعيين موضع المؤشّر، ثمّ اكتب النّص. لون النّص " "يوافق اللّون الأساسيّ." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "الخطّ" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "غليظ" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "مائل" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "خط سُفليّ" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "محاذاة لليسار" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "محاذاة للوسط" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "محاذاة لليمين" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "نمط النص" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "طبيعي" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "عادي مع حد خارجي" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "عبأ الخلفية" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "عرض الحد الخارجي" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "قلِّل مقاس الحد الخارجي" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "زِد مقاس الحد الخارجي" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "عرض الفرشاة" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "قلِّل مقاس الفرشاة" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "زِد مقاس الفرشاة" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "نمط التعبئة" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "شكل بحدود خارجية فقط" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "شكل معبأ" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "شكل معبأ مع حدود خارجية" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "دوائر" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "خطوط شبيكة" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "مربعات" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "بخاخ" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "تكبير/تصغير" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "انقر بالزر الأيسر للتكبير، وانقر بالزر الأيمن للتصغير. أو اضغط واسحب لتحديد " "مساحة لتكبيرها أو تصغيرها." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "تحديد حُر" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "انقر واسحب لرسم تحديد حُر." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "شكل حُر" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "عنْ" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_ملف" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "ت_حرير" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_عرض" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "الصورة" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "ال_طبقات" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "ت_عديلات" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "تأثيرات" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_نافذة" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "نوافذ الأدوات" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "م_ساعدة" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "الأدوات" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "لوحة الألوان" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "المستندات" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "الطبقات" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "التاريخ" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "أخفِ" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "ترصيف" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "اخفاء تلقائي" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "قابل للترصيف" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "عائم" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "خُذ لقطة للشاشة" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "المُهلة قبل أخذ لقطة للشاشة (بالثوانِ):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "هل تريد حفظ التغييرات على الصورة \"{0}\" قبل الإغلاق؟" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "إذا لم تحفظ، ستضيع جميع التغييرات نهائيًا." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "أغلق دون حفظ" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "تغيير مقاس لوحة الألوان" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "المقاس الجديد للوحة الألوان:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "الصق في طبقة جديدة" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "إعتام الطبقة" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "غيّر اسم الطبقة" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "أخف الطبقة" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "إظهار الطبقة" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "خصائص الطبقة" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "فتح ملفّ صورة" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "ملفات الصور" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "كل الملفّات" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "حفظ ملف صورة" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "لايدعم بِنْتا الصور المحفوظة بهذه الصيغ." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "خطأ" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "الملف المُسمى \"{0}\" موجود حاليًا. هل تريد استبداله؟" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "الملف موجود حاليًا في \"{1}\". استبداله سوف يكتبه على المحتويات الموجود " "مسبقًا." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "جودة JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "الجودة: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "العنوان" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "الإصدار" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "المسار" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "المساهمون في هذه الإصداره" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "المساهمون السابقون" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ibrahim Saed https://launchpad.net/~ibraheem5000\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " KMan https://launchpad.net/~mail-kalgorithmist\n" " Omar https://launchpad.net/~omar-w-kh\n" " Rafy https://launchpad.net/~rafy\n" " Said Mohammed AlRamadhani https://launchpad.net/~darknesscore0\n" " amine https://launchpad.net/~active-be\n" " daifallah https://launchpad.net/~daif\n" " xDev https://launchpad.net/~mf393" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "ترجمة:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "إستخدام بعض الأيقونات من:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "عنْ بِنْتا" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "معلومات النسخة" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "الترخيص" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "حقوق النشر" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "بواسطة مساهمين بينتا" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "الاسم:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "مرئي" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "الإعتام:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "تغيير مقاس مساحة الرسم" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "بالنسبة المئوية" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "بالمقاس المُطلق:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "العرض:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "بكسلات" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "الطول:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "حافظ على نسبة الطول إلى العرض" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "تغيير مقاس الصورة" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "صورة جديدة" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "المقاس الجديد للصورة " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "اختيار" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "تأثير التّصيير" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "صورة لم تُحفَظ {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "الخلفيّة" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "افتح صورة" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "لم يستطع فتح الملف: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "الصق" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "دوّر 180 درجة" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "اقلب الصورة أفقيًّا" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "اقلب الصورة رأسيًّا" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "دوّر 90 درجة باتّجاه عقارب السّاعة" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "دوّر 90 درجة باتّجاه عكس عقارب السّاعة" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "اقلب الطبقة أفقيًّا" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "اقلب الطبقة رأسيًّا" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "أنهِ البكسلات" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "موقع البرنامج" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "سجّل ثغرة" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "ترجم هذا التّطبيق" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "احفظ الكلّ" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "أغلق الكلّ" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "جديد..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "لقطة جديدة للشّاشة..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "افتح..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "افتح ملفًّا من الملفّات الأخيرة..." #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "أغلق" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "احفظ" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "احفظ كـ..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "اطبع" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "أنهِ" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "جديد" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "افتح" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "أضف طبقة جديدة" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "احذف الطّبقة" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "كرر الطبقة" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "ادمج الطّبقة مع الطّبقة تحتها" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "استورد من ملفّ..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "اقلب أفقيًّا" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "اقلب رأسيًّا" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "تحريك الطبقة لأعلى" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "تحريك الطبقة لأسفل" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "خصائص الطّبقة..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "استورد من ملفّ" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "قصّ وفقًا للتّحديد" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "قص آلي" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "غيّر مقاس الصورة..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "غيّر مقاس مساحة الرسم..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "سطّح" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "كبّر" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "صغّر" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "أفضل ملائمة" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "عدّل الحجم ليناسب التحديد" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "الحجم الطبيعي" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "شريط الأدوات" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "شبكة البكسلات" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "المساطر" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "بكسلات" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "بوصات" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "سنتيمترات" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "كامل الشاشة" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "وحدات المسطرة" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "النافذة" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "تراجع" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "كَرِّر" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "قُصّ" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "انسخ" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "الصق في صورة جديدة" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "احذف البكسلات المُحددة" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "عبّأ المنطقة المُحددة" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "اعكس التّحديد" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "حدّد الكلّ" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "أزل التحديد عن الكل" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "أعد إلى الحالة المبدئيّة" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "عيّن عدد الألوان" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "امحُ التّحديد" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "أزل التّحديد" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "افتح ملفّ لوحة ألوان" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "ملفات ألواح الألوان (*.txt، *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "لم يستطع فتح ملفّ لوحة الألون: {0}\n" "رجاءً، تأكّد أنّك تحاول فتح ملف لوحة ألوان لبرنامج GIMP أو Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "احفظ ملفّ لوحة الألوان" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "ملفّ لوحة ألوان لبرنامج Paint.NET (*.xt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "لوحة ألوان لبرنامج GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "الطبقة" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "انسخ" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "الأداة" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "مفتاح الاختصار" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "خلط عاديّ" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "الكتابة فوق" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "فعّل التنعيم" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "عطّل التنعيم" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} صورة ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "عامّ" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "القيمة" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "الزاويه" #: CloudsEffect dialog msgid "Antialias" msgstr "التنعيم" #: GlowEffect dialog msgid "Blend Mode" msgstr "نمط المزج" #: OilPaintingEffect dialog msgid "Brightness" msgstr "السطوع" #: PixelateData dialog msgid "Brush Size" msgstr "مقاس الفرشاة" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "مقاس الخلية" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "انزياح المركز" #: OilPaintingEffect dialog msgid "Centered" msgstr "توسيط" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "الخشونة" #: AddNoiseEffect dialog msgid "Color Range" msgstr "مدى اللون" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "التلوين" #: AddNoiseEffect dialog msgid "Contrast" msgstr "التباين" #: FragmentEffect dialog msgid "Coverage" msgstr "نطاق التغطية" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "المسافة" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "سلوك الحافة" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "المعامل" #: InkSketchEffect dialog msgid "Fragments" msgstr "الفُتات" #: TileEffect dialog msgid "Ink Outline" msgstr "حد الحبر" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "الكثافة" #: RadialBlurEffect dialog msgid "Lighting" msgstr "الإضاءة" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "الانزياح" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "حجم سن قلم الرصاص" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "القوة" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "الجودة" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "الدوران" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "المقياس" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "تليين" #: OutlineEffect dialog msgid "Strength" msgstr "الشدة" #: TileEffect dialog msgid "Thickness" msgstr "الثخانة" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "مقاس البلاطة" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "استخدم جودة منخفضة للمُصغّرات، والصور الصغيرة، والزوايا الصغيرة. واستخدام " "جودة مرتفعة للجودة النهائية، والصور الكبيرة، والزوايا الكبيرة." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "تلميح: للحصول على أفضل نتيجة، استخدم أولًا أدوات التحديد وحدد كل عين على حدة." #: pinta.desktop.in msgid "Pinta" msgstr "بنتا" #: pinta.desktop.in msgid "Image Editor" msgstr "محرر صور" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "أنشئ وحرّر الصور بسهولة" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "محرّر الصور بنتا" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "صور" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "لايمكن حفظ الملفات المُخصصة للقراءة فقط." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "الصورة المُلصقة أكبر من مساحة الرسم. ماذا تحب أن تفعل؟" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "وسّع مساحة الرسم" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "لا تغّير مقاس مساحة الرسم" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/bg.po0000664000175000017500000015315511747026475015221 0ustar00cameroncameron00000000000000# Bulgarian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-22 14:05+0000\n" "Last-Translator: Ve4ernik \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Автоматични нива" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Обръщане на цветовете" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Нива" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Сепия" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Намаляване на цветовете (ефект постеризиране)" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Черно и бяло" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Криви" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Яркост / Контраст" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Тон / Насищане" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Настройка на нивата" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Входна хистограма" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Вход" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Изход" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Изходна хистограма" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Автоматично" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Изчистване" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Червено" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Зелено" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Синьо" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Свързано" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Трансферна карта" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "ЧЗС" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Блясък" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Червено " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Синьо " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Подсказка: Натиснете десен бутон, за да премахнете контролните точки." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Намаляване на шума" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Шум" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Фрагментиране" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Замъгляване" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Облаци" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Генериране" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Разфокусиране" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Премахване на червени очи" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Снимка" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Фрактал на Манделброт" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Блясък" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Обработка на контури" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Стилизирани" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Радиално замъгляване" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Замръзнало стъкло" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Изкривяване" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Маслени бои" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Художествени" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Фрактал на Джулия" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Омекотен портрет" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Релефност" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Скициране с мастило" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Медиана" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Щампа" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Гаусово замъгляване" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Изостряне" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Добавяне на шум" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Отражение мозайка" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Пикселизиране" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Насочено замъгляване" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Полярна инверсия" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Издатина" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Мащабно замъгляване" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Скица с молив" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Контури" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Усукване" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "етикет1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "етикет" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Произволно замъгляване" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Разсей" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Избери основен цвят" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Избери втори цвят" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Избери цветова палитра" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Правоъгълник" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Кликнете и влачете за правоъгълно селектиране.Задръжте Shift за квадрат." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Клониране" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+ляв бутон за начало, ляв бутон за рисуване." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Вълшебна пръчица" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Кликнете за да изберете регион със подобни цветове." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Правоъгълник" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Кликнете и влачете за да нарисувате правоъгълник(десен бутон за втори " "цвят).Задръжте Shift за квадрат." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Преместване на избраното" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Влачете селектираното за да преместите очертанията." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Преливка" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Кликнете и влачете за да нарисувате преливка от основен цвят към втори.Десен " "бутон за обратното." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Линеен" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Линеен отразен" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Ромбоиден" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Радиален" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Коничен" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Режим" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Последователен" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Глобален" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Допустимост" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Четка" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "Ляв бутон за рисуване с основния цвят, десен бутон за втория." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Вид" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Молив" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Ляв бутон за рисуване на свободна форма с основния цвят, десен бутон за " "втория." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Елипса" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Кликнете и влачете за елипсовидно селектиране.Задръжте Shift за окръжност." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Линия" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Гума" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Ляв бутон за изтриване до прозрачност, десен бутон за изтриване до втория " "цвят. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Ръка" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Ляв бутон и влачете за да преместите изображението." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Избор на цвят" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Ляв бутон за да зададете като основен цвят, десен бутон - втори цвят." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "След използване" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Без смяна на инструмента" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Връщане към предния инструмент" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Сменяне с Молив" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Заоблен правоъгълник" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Радиус" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Намали радиуса" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Увеличи радиуса" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Премести селектираните пиксели" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Влачете селекцията за да преместите съдържанието й." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Оцветяване" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Ляв бутин за да заместите втория цвят със основният." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Боички" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Ляв бутон за да запълните регион със основният цвят, десен бутон за да " "запълните със вторият." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Елипса" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Натиснете ляв бутон и влачете за да нарисувате елипса(десен бутон за втория " "цвят).Задръжте Shift за окръжност." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Текст" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Ляв бутон за да укажете мястото за въвеждане на избраният текст.За цвят ще " "се използва основният." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Шрифт" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Удебелен" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Наклонен" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Подчертан" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Ляво подравняване" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Централно подравняване" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Дясно подравняване" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Стил" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Нормален" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Нормален и контури" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Дебелина на контура" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Намали" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Увеличи" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Дебелина на четката" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Намали" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Увеличи" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Стил" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Контур" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Плътен" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Плътен с контур" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Кръгове" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Мрежа" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Квадрати" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Спрей" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Увеличение" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Ляв бутон за увеличение, десен бутон за намаление.Натиснете ляв бутон и " "влачете за да увеличите селекция." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Ласо" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Натиснете ляв бутон и влачете за да селектирате област." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Свободна форма" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "За програмата" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Файл" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Редактиране" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "И_зглед" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Изображение" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Слоеве" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Корекция" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Ефекти" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Прозорци" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Прозорци" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "Помо_щ" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Инструменти" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Палитра" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Документи" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Слоеве" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "История" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Скрий" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Прикрепяне" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Автоматично скриване" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прикрепяем" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плаващ" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Направи снимка на екрана" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Закъснение преди снимката на екрана(секунди):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Запази промените на изображение \"{0}\" преди излизане?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ако не запазите, всички промени ще бъдат загубени." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Затваряне без запазване" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Преоразмеряване на палитрата" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Нов размер:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Постави в нов слой" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Непрозрачност на слоя" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Преименуване на слоя" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Скрий слоя" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Покажи слоя" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Настройки на слоя" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Отвори изображение" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Изображения" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Всички файлове" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Запази изображение" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не поддържа запазването на изображения в този формат." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Грешка" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл с име \"{0}\" вече съществува.Желаете ли да се замести?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Файлът вече съществува в \"{1}\" .Заместването му ще презапише негово " "съдържание." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Качество на JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Качество: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Заглавие" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Версия" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Път" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Разработчици в тази версия" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Разработчици в предишни версии" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Ve4ernik https://launchpad.net/~ve4ernik\n" " Viktor Reseleshki https://launchpad.net/~vikktor91" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Преведено от:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Програмата е базирана на Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Използват се следните икони:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Относно Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Информация за версията" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Лиценз" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Публикувано под MIT X11 лиценз." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Авторски права" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "от разработчиците на Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Име:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Видим" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Непрозрачност:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Преоразмеряване на платното" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "По процент" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "По абсолютен размер" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Широчина:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "пиксели" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Височина:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Запазване на съотношението" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Посока" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Преоразмеряване на изображение" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Ново изображение" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Нов размер " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Ефект при рендиране" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Незапазено изображение {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Фон" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Отваряне на изображение" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Файлът не може да се отвори: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Поставяне" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Завърти на 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Обърни хоризонтално" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Обърни вертикално" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Въртене 90° надясно" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Въртене 90° наляво" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Обърни хоризонтално" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Обърни вертикално" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Уебсайт" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Добави бъг" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Преведи тази програма" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Запази всичко" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Затваряне на всичко" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Нов..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Нова снимка на екрана..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Отваряне..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Последно използвани" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Затваряне" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Запазване" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Запазване като…" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Печат" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Изход" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Нов" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Отваряне" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Добави нов слой" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Изтриване на слоя" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Дублиране на слоя" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Обедини с долния слой" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Вмъкване от файл..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Обръщане хоризонтално" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Обръщане вертикално" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Местене на слоя нагоре" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Местене на слоя надолу" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Свойства на слоя" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Вмъкване от файл" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Изрязване на селекцията" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Плоскост" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Увеличение" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Намаляване" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Напасване по екрана" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Увеличение до избраното" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Нормален размер" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Лента с инструменти" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Мрежа" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Линии" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Пиксели" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Инчове" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Сантиметри" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Цял екран" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Мерни единици" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Прозорец" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Отмяна" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Връщане" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Отрязване" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Копиране" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Постави в ново изображение" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Изтриване на селекцията" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Запълни селекцията" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Обръщане на селекцията" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Избиране на всичко" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Отказване от всички избрано" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Reset to Default" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Задай брой на цветове" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Отрязване на селекцията" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Деселектиране" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Отвори палитра" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Палитри (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "Не може да се отвори палитра: {0}." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Запази палитра" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET палитри (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP палитри (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Слой" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "копиране" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Инструмент" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Пряк път" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Презаписване" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Изглаждане включено" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Изглаждане изключено" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} изображение ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Основен" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Сума" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ъгъл" #: CloudsEffect dialog msgid "Antialias" msgstr "Заглаждане" #: GlowEffect dialog msgid "Blend Mode" msgstr "Смесване" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Яркост" #: PixelateData dialog msgid "Brush Size" msgstr "Размер на четката" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Размер на клетка" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Center Offset" #: OilPaintingEffect dialog msgid "Centered" msgstr "Центрирано" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Грапавост" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Цветови обхват" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Наситеност на цветовете" #: GlowEffect dialog msgid "Coloring" msgstr "Оцветяване" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Контраст" #: FragmentEffect dialog msgid "Coverage" msgstr "Обхват" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Разстояние" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Поведение на контурите" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Фактор" #: InkSketchEffect dialog msgid "Fragments" msgstr "Фрагменти" #: TileEffect dialog msgid "Ink Outline" msgstr "Мастилени очертания" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Интензивност" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Център" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Размер на молива" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "Сила" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Качество" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Завъртене" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Процент на наситеност" #: CloudsEffect dialog msgid "Scale" msgstr "Мащаб" #: SoftenPortraitData dialog msgid "Seed" msgstr "Разпръскване" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "Сила" #: TileEffect dialog msgid "Thickness" msgstr "Дебелина" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Размер на полето" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Топлина" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Използвай ниско качество за визуализациите, малките изображения и малки " "ъгли.Използвай високо качество за големите изображения и големи ъгли." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Подсказка: За най-добри резултати, първо използвайте инструмент за " "селектиране и селектирайте всяко око." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Редактор на изображения" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Създавайте и редактирайте с лекота изображения" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/br.po0000664000175000017500000014415511747026475015234 0ustar00cameroncameron00000000000000# Breton translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-01-31 19:20+0000\n" "Last-Translator: Alan \n" "Language-Team: Breton \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Live emgefreek" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Tuginañ al livioù" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Liveoù" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Skritellaat" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Du ha Gwenn" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krommennoù" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Lintr/Dargemm" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Arliv/Peurvec'hiañ" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Kengeidadur al liveoù" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Tellun enankañ" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Enankad" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Ec'hankad" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Tellun ec'hankañ" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Emgefreek" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Adderaouekaat" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Ruz" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Gwer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Glas" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Ereet" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Kartenn dreuzkas" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGG" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Lintr" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Ruz " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Glas " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tun : Klikañ a-zehou da zilemel ar poentoù reoliñ." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Digreskiñ an trouz" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Trouz" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Darnaouiñ" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Ruzedoù" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Koumoul" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Deouez" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Distiañ" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Dilamadur an daoulagad ruz" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Luc'hskeudenn" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Brevennoù mod Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Skleur" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Dinoiñ ar riblennoù" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilaat" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Ruzed skinek" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Gwerenn dilufr" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Torrgammoù" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Livadur dre eoul" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Arzek" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Brevennoù mod Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Kuñvaat ar poltred" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Torosennadur" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Brastres dre huz" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Krenn" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Stampiñ" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Ruzed mod Gausse" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Lemmañ" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Ouzhpennañ trouz" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Disvannadur er marelloù" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselaat" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Ruzed dre fiñval" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Tuginadur bleinek" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bos" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Ruzed dre zoumañ" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Brastres gant ur c'hreion" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Trolinenn" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Gweañ" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "skritell1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "skritell" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Trouz dargouezhek" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Hadañ en-dro" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Dibab al liv kentael" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Dibab al liv eilvedel" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Dibab al livaoueg" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Diuzañ dre ur reizhkorn" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikañ ha riklañ a-benn tresañ un diuzad reizhkornek. Pouezañ war Pennlizh. " "a-benn tresañ ur c'harrez." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Stampon klonañ" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl-klik kleiz a-benn spislec'hiañ an orin, klik kleiz a-benn livañ." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Diuzad dre ar walenn hudus" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikañ a-benn diuzañ maezioù gant livioù damheñvel" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Reizhkorn" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikañ ha riklañ a-benn tresañ ur reizhkorn (klik dehou evut ul liv " "eilvedel). Pouezañ war Pennlizh. da dresañ ur c'harrez." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Dilec'hiañ an diuzad" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Riklañ an diuzad da zilec'hiañ trolinenn an diuzad." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Ilrezenn" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klikañ ha riklañ a-benn tresañ un ilrezenn eus ul liv kentael d'ul liv " "eilvedel. Klik dehou da cheñch tu." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Ilrezenn linennek" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Ilrezenn linennek disvannet" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Ilrezenn linennek e doare diamant" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Ilrezenn skinek" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Ilrezenn kernennek" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mod aloubiñ" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Kevelek" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Hollek" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Aotrevarz" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Broust livañ" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Klik kleiz a-benn trasañ gant ul liv kentael, klik dehou a-benn tresañ gant " "ul liv eilvedel." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Rizh" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Kreion" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Klik kleiz a-benn tresañ ul lun gant an dorn, he linennoù ur piksel o zevder " "gant al liv kentael. Klik dehou a-benn ober gant al liv eilvedel." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Diuzañ dre an elipsenn" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klikañ ha riklañ a-benn tresañ un diuzad elipsennek. Pouezañ war Pennlizh. a-" "benn tresañ ur c'helc'h." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linenn" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Klik kleiz da dresañ gant ul liv kentael, klik dehou evit ul liv eilvedel. " "Mirout ar stokell Pennlizh (shift) a-benn desteudañ ouzh ar c'hornioù." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gomenn" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Klikañ a-gleiz da ziverkañ betek boull, klikañ a-zehou da ziverkañ ha lakaat " "al liv eilvedel. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Dilec'hiañ" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikañ ha riklañ a-benn merdeiñ war ar skeudenn." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Gwalenn da dapout ul liv" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Klik kleiz da arventennañ ul liv kentael. Klik dehou da arventennañ al liv " "eilvedel." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Goude bezañ diuzet" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Arabat kemmañ ar benveg" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Kemmañ d'ar benveg kent" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Kemmañ d'ar benveg Kreion" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Reizhkorn rontaet" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Skin" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Digreskiñ skin korn ar reizhkorn" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Kreskiñ skin kornioù ar reizhkorn" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Dilec'hiañ ar pikselioù bet diuzet" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Riklañ an diuzad da zilec'hiañ an endalc'had diuzet" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Adlivañ" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Klik kleiz a-benn amsaviñ al liv eilvedel gant al liv kentael." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Sailh da livañ" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Klik kleiz da leuniañ ur maez gant ul liv kentael, klik dehou a-benn leuniañ " "gant al liv eilvedel." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsenn" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikañ ha riklañ a-benn tresañ un elipsenn (klik dehou evit ul liv " "eilvedel). Pouezañ war Pennlizh. da dresañ ur c'helc'h." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Testenn" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Klikit kleiz da lakaat ar reti, biziatait neuze an destenn a fell deoc'h. " "Liv an destenn a vo al liv kentael." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Nodrezh" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Tev" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Stouet" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Islinennet" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Marzekaat war an tu kleiz" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Marzekaat e-kreiz" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Marzekaat war an tu dehou" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stil an destenn" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Reizh" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Reizh ha trolinenn" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Leuniañ an drekleur" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Tevder an drolinenn" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Moanaat tevder an drolinenn" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Tevaat tevder an drolinenn" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Led ar broust" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Digreskiñ ment ar broust" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Kreskiñ ment ar broust" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stil leuniañ" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Lun an drolinenn" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Lun leuniañ" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Lun leuniañ ha lun an drolinenn" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Kelc'hioù" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Kael" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Karrezioù" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Strimpadenn" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoum" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Klik kleiz evit ar zoum brasaat. Klik dehou a-benn dizoumañ. Klikañ ha " "riklañ a-benn zoumañ war an diuzad." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Diuzañ gant al las-bann" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikañ ha riklañ a-benn tresañ un drolinenn evit maez un diuzad." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Lun dre zorn" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Diwar-benn" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Restr" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Embann" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Gwelout" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Skeudenn" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Treuzfollenn" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Kengeidadurioù" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_doù" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Prenestr" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Prenestr an ostilhoù" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Skoazell" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Binvioù" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Livaoueg" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Teulioù" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Treuzfollennoù" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Roll istor" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Kuzhañ" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Kae" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Kuzhañ emgefreek" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Kaeadus" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "War neuñv" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ober ur skrammad" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Pred a-raok ma vo graet ar skrammad (eilennoù) :" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Enrollañ ar c'hemmoù graet d'ar skeudenn \"{0}\" kent serriñ ?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ma ne enrollot ket e vo kollet an holl gemmoù da vat." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Serriñ hep enrollañ" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Admentañ al livaoueg" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Ment nevez al livaoueg :" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Pegañ war un dreuzfollenn nevez" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Demerez an dreuzfollenn" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Adenvel an dreuzfollenn" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Kuzhañ an dreuzfollenn" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Diskouez an dreuzfollenn" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Perzhioù an dreuzfollenn" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Digeriñ ur restr skeudenn" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Restroù skeudenn" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "An holl restroù" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Enrollañ restr ar skeudenn" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne skor ket an enrollañ skeudennoù gant ar mentrezh restr-mañ." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Fazi" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" "Ur restr anvet \"{0}\" ez eus anezhi endeo. Ha fellout a ra deoc'h hec'h " "amsaviñ ?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Ar restr ez eus anezhi e \"{1}\". Mar bez amsavet e vo flastret hec'h " "endalc'had." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Perzhded JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Perzhded : " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titl" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Handelv" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Treug" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Perzhiaded evit an handelv-mañ" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Perzhiaded kent" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alan https://launchpad.net/~alan-m.\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Skolajidi Diwan https://launchpad.net/~gireg-konan" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Troet gant :" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Diazezet war al labour graet evit Paint.NET :" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Arver arlunioù zo digant :" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "A-zivout Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Titouroù an handelv" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lañvaz" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Savet dindan Lañvaz MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "gant perzhiaded Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Anv :" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Hewelus" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Demerez :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Adventañ ar steuenn" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Dre zregantad :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Dre ar vent dizave :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Led :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "a bikselioù" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Sav :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Mirout kenfeur an neuz" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Eor :" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Adventañ ar skeudenn" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Skeudenn nevez" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Ment ar skeudenn nevez " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "niver a neudennoù da arverañ evit an deouez" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Anv an dibarzh" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efed gant an deouez" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Skeudenn dienroll {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Drekva" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Digeriñ ur skeudenn" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "N'hall ket digeriñ ar restr : {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Pegañ" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "C'hwelañ dre 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Gwintañ ar skeudenn a-blaen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Gwintañ ar skeudenn a-serzh" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "C'hwelañ dre 90° gant roud ar bizied" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "C'hwelañ dre 90° gant roud gin ar bizied" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Gwintañ an dreuzfollenn a-blaen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Gwintañ an dreuzfollenn a-serzh" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Peurlipat ar pikselioù" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Lec'hienn Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Kas un danevell a-zivout ur beug" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Treiñ an arload-mañ" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Enrollañ an holl anezho" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Serriñ an holl anezho" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nevez..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Skeudenn nevez diwar ar skramm..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Digeriñ..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Digeriñ ur restr krouet nevez zo" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Serriñ" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Enrollañ" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Enrollañ evel..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Moullañ" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Mont kuit" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nevez" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Digeriñ" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Ouzhpennañ un dreuzfollenn nevez" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Dilemel an dreuzfollenn" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Eilañ an dreuzfollenn" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Toueziañ gant an dreuzfollenn a-zindan" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Enporzhiañ diouzh ur restr..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Gwintañ a-blaen" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Gwintañ a-serzh" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "C'hwelañ/Zoumaat ouzh an drezufollenn..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Treuzfollenn d'an nec'h" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Treuzfollenn d'an traoñ" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Perzhioù an dreuzfollenn..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Enporzhiañ diouzh ur restr" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Didroc'hañ ouzh an diuzad" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Didroc'hañ emgefreek" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Adventañ ar skeudenn..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Adventañ ar steuenn..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Plataat" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoum brasaat" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoum bihanaat" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Ment peurvat" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoumañ da framm an diuzad" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Ment reizh" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barrenn ostilhoù" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Kael ar pikselioù" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Reolennoù" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikselioù" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Meutadoù" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Kentimetroù" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Skrammad a-bezh" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unanennoù ar reolenn" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Prenestr" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Dizober" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Adober" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Troc'hañ" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Eilañ" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Pegañ war ur skeudenn nevez" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Dilemel an diuzad" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Leuniañ an diuzad" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Tuginañ an diuzad" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Diuzañ pep tra" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Diziuzañ pep tra" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Adderaouekaat" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Arventennañ niver al livioù" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Diverkañ an diuzad" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Diziuzañ" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Digeriñ ur restr livaoueg" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Restroù livaouegoù (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "N'hall ket digeriñ ar restr livaoueg : {0}.\n" "Gwiriit emaoc'h o klask digeriñ ul livaoueg talvoudek mod GIMP pe Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Enrollañ ar restr livaoueg" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Livaoueg mod Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Livaoueg mod GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Treuzfollenn" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "eilañ" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Benveg" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Berradenn glavier" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Meskadur reizh" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Flastrañ" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Gweredekaat al lufrañ" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Diweredekaat al lufrañ" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} skeudenn ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Hollek" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Kementad" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kornad" #: CloudsEffect dialog msgid "Antialias" msgstr "Lufrañ" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mod kemmeskañ" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Lintr" #: PixelateData dialog msgid "Brush Size" msgstr "Ment ar broust" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Ment ar gellig" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Linkad ar c'hreiz" #: OilPaintingEffect dialog msgid "Centered" msgstr "Kreizet" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Diguñvder" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Ledad livioù" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Peurvec'hiañ liv" #: GlowEffect dialog msgid "Coloring" msgstr "Livadur" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Dargemm" #: FragmentEffect dialog msgid "Coverage" msgstr "Keitad" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Pellder" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Emzalc'h ar riblenn" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Parenn" #: InkSketchEffect dialog msgid "Fragments" msgstr "Darnoù" #: TileEffect dialog msgid "Ink Outline" msgstr "Trolinenn dre huz" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Kreñvder" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Goulaouiñ" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Linkañ" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Ment min ar c'hreion" #: CloudsEffect dialog msgid "Percentile" msgstr "Kantranner" #: RadialBlurEffect dialog msgid "Power" msgstr "Galloud" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Perzhded" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "C'hwelañ" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Tregantad ar peurvec'hiañ" #: CloudsEffect dialog msgid "Scale" msgstr "Skeulaat" #: SoftenPortraitData dialog msgid "Seed" msgstr "Hadañ" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Kuñvder" #: OutlineEffect dialog msgid "Strength" msgstr "Kreñvder" #: TileEffect dialog msgid "Thickness" msgstr "Tevder" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Ment ar marelloù" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Tommder" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Arverañ ur berzhded izel evit an alberzioù, skeudennoù bihan ha kornadoù " "bihan. Arverañ ur berzhded uhel evit an disoc'h diwezhel, skeudennoù bras ha " "kornadoù bras." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Un ali : evit un disoc'h gwellañ, grit da gentañ gant an benveg diuzañ a-" "benn diuzañ pep lagad." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Embanner skeudennoù" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Krouiñ hag embann skeudennoù gant un doare aes" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Embanner skeudennoù Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Skeudennoù" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "N'haller ket enrollañ ar skeudennoù e mod lenn nemetken." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Brasoc'h eo ar skeudenn bet peget eget ment ar steuenn. Petra a fell deoc'h " "ober ?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Astenn ar steuenn" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Arabat kemm ment ar steuenn" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "C'hwelañ/Zoumaat ouzh an drezufollenn" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/bs.po0000664000175000017500000014213411747026475015230 0ustar00cameroncameron00000000000000# Bosnian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Kenan Dervišević \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto nivoi" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Izvrni boje" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivoi" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Napravi plakat" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Crno-bijelo" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krivulje" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Osvetljenost/kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nijansa / Zasićenje" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Podešavanje nivoa" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Ulazni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Ulaz" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Izlaz" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Izlazni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatski" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Resetuj" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Crveno" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zeleno" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Plavo" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Povezano" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa prenosa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Osvjetljenje" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Crveno " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Plavo " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Pomoć: Desni klik da uništite kontrolne tačke" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Smanji šum" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Dio" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Zamućenja" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Oblaci" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Generisanje" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Defokusiraj" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Uklanjanje crvenih očiju" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografija" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrotov fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Sjaj" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Otkrivanje ivice" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizuj" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Kružno zamućenje" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Zamrznuto staklo" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorzija" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Bojiti uljem" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umjetnički" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktal julija" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Omekšaj portret" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljef" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Skica mastilom" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Medijan" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Ugraviraj" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gausno zamućenje" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Izoštri" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Dodaj Šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Odsjaj Pločica" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselizacija" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Zamućenje pokreta" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polarna inverzija" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Ispupčenje" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zamućenje uveličanja" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Skica olovkom" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontura" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Uvrni" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "oznaka1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "oznaka" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Nasumični šum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Posej ponovo" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Odaberi primarnu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Odaberi sekundarnu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Odaberi boju palete" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Izbor kvadrata" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikni i vuci da napraviš pravougaonik. Drži Smjenu (shift) da napraviš " "kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kloniraj pečat" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ktrl-levi klik da podeside poreklo, levi klik za bojenje" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Biranje čarobnim štapićem" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikni za odabiranje rejona sličnom bojom." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Pravougaonik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikni da nacrtaš pravougaonik (desni klik za sekundarnu boju). Drži Smjenu " "(shift) za kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Premjesti izbor" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Vuci odabir da pomjeriš odabirni obris" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradijent" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klikni i povuci da nacrtaš gradijent iz primarne u sekundarnu boju. Desni " "klik da preokreneš." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linearni gradijent" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linearni reflektovani gradijent" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linearni Dijamantski Gradijent" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Kružni gradijent" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Konusni gradijent" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mod poplave" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Nastavi" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globalno" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancija" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Četka" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Levi klik da crtate s primarnom bojom, desni klik da crtate sekundarnom " "bojom." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Vrsta" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Olovka" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Levi klik da nacrtate slobodni oblik s jednopikselnom četkom sa primarnom, a " "desnim sa sekundarnom bojom." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Izaberi elipsu" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "Klikni da nacrtaš elipsu. Drži Smjenu (shift) za krug." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linija" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Levi klik da crtate s primarnom bojom, desni klik za sekundarnu boju. Držite " "Smjenu (shift) da se pretvori u uglove." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gumica" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Levi klik da obrišete na transparentno, desni klik da obrišete na sekundarnu " "boju. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Paniraj" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikni i vuci da navigiraš sliku." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Birač boja" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Levi klik da podesite primarnu boju. Desni klik da postavite sekundarnu boju." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Posle odabira" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne menjaj alatku" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Vrati na prethodnu alatku" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Promeni na Olovku" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaobljen pravougaonik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Poluprečnik" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Smanji poluprečnik od uglova pravougaonika" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Povećaj poluprečnik od uglova pravougaonika" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Pomjeri odabrane piksele" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Vuci odabir da pomjeriš odabran sadržaj." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Ponovo oboji" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Levi klik da zamjeniš sekundarnu sa primarnom bojom." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Kantica sa bojom" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Levi klik da popunite rejon s primarnom bojom, desni klik da ga popunite sa " "sekundarnom bojom" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikni da nacrtaš elipsu (desni klik za sekundarnu boju). Drži Smjenu " "(shift) za krug." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Levi klik da postavite kursor, a onda ukucajte poželjeni tekst. Boja teksta " "je primarna boja." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Podebljano" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kurziv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podvučeno" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Lijevo poravnanje" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Postrojiti u centar" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Desno poravnanje" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stil teksta" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normalno" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Narmalno i skica" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Ispuni pozadinu" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Širina obrisa" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Smanji veličinu obrisa" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Povećaj veličinu obrisa" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Širina četkice" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Smanji širinu četkice" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Povećaj veličinu četkice" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stil popune" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Oblik okvira" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Popuni oblik" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Popuni i uokviri" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Kružnice" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Mreža" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kvadrati" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Nasumično" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Uvećaj" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Levi klik da približiš. Desni klik da odaljiš. Klikni i vuci da približiš u " "selekciji." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Laso Odabir" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikni i vuci da nacrtaš okvir za oblast odabira." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Slobodni oblik" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "Datoteka" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Izmijeni..." #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Prikaz" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Slika" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Slojevi" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Postavke" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efekti" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Prozor" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Prozori alatki" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pomoć" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Alati" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenta" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Slojevi" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Istorija" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Sakrij" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dok" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatsko sakrivanje" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Prikačiv" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutajuće" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Snimak ekrana" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Kašnjenje prije slikanja zaslona (u sekundama):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Sačuvati promjene koje su napravljene slici {0} prije zatvaranja?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ukoliko ne sačuvate, sve promjene će biti trajno izgubljene" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zatvori bez čuvanja" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Promjeni veličinu palete" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nova veličina palete" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Zalepi u novi sloj" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Prozirnost sloja" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Preimenuj sloj" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Sakrij sloj" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Prikaži sloj" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Svojstva sloja" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Otvori datoteku slike" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Datoteka slike" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Sve datoteke" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Sačuvaj datoteku slike" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podržava čuvanje slika u ovom formatu." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Greška" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Datoteka nazvana \"{0}\" već postoji. Želite li je zamijeniti?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Datoteka vać postoji u \"{1}\". Zamjenjivanje će ispiati novi sadržaj." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvalitet" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvaliteta: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naziv" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Verzija" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Putanja" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Pomogli pri ovoj verziji" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Pomogli pre" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Kenan Dervišević https://launchpad.net/~kenan3008\n" " Milena https://launchpad.net/~milenad13\n" " Stefan Ivanović https://launchpad.net/~sivanovich12345" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Prevod od strane:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Rađeno na osnovi Paint.NET-a:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Koristi neke ikonice sa:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O Pinti" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacije o verziji" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenca" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Objavljeno pod MIT X11 Licencom." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autorsko pravo" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "od pomagača Pinte" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Naziv:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Vidljivo" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Providnost:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Promjeni veličinu platna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Po procentima:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Po apsolutnoj veličini:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Širina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikseli" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Visina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Zadrži omjer širine i visine" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Sidro:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Promijeni veličinu slike" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova slika" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nova veličina slike: " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "koliko niti će se koristiti za renderovanje" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "ImeOpcije" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efekat renderovanja" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nesačuvana slika {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Pozadina" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otvori sliku" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Ne moguće otvoriti datoteku: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Zalijepi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotiraj 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Obrni sliku horizontalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Obrni sliku vertikalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotiraj 90° u pravcu kazaljke na satu" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotiraj 90° suprotno od pravca kazaljke na satu" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Obrni sloj horizontalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Obrni sloj vertikalno" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Završi piksele" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta web-stranica" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Pošalji grešku" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Prevedi aplikaciju" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Sačuvaj sve" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zatvori sve" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novo..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova slika zaslona..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otvori..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Otvori skorašnje" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zatvori" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Sačuvaj" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Sačuvaj kao..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Štampaj" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Izađi" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otvori" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Dodaj novi sloj" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Izbriši sloj" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliciraj sloj" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Spoji sloj sa slojem ispod" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Uvezi iz datoteke..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Prevrni horizontalno" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Prevrni vertikalno" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotiraj / Uvećaj sloj..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Pomjeri sloj nagore" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Pomjeri sloj nadolje" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Svojstva sloja..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Uvezi iz datoteke" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Isjeci selekciju" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatsko izrezivanje" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Promjeni veličinu slike..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Promjeni veličinu platna" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Spljošti" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Uvećaj" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Umanji" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Najbolje uklapanje" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Uvećaj na označeno" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normalna Veličina" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Alatna traka" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pikselna mreža" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Lenjiri" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikseli" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inči" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pun ekran" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jedinice lenjira" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Prozor" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Poništi" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ponovi" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Isijeci" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiraj" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Nalijepi u novu sliku" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Obriši izbor" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Popuni odabrano" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Obrni izbor" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Izaberi sve" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Poništi izbor" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Resetuj na podrazumevano" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Postavi broj boja" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Izbriši selekciju" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Poništi izbor" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otvori datoteku palete" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nije moguće otvoriti datoteku palete {0}.\n" "Provjerite da li je datoteka ispravna GIMP ili Paint.NET paleta." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Sačuvaj Datoteku Palete" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Sloj" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopija" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Alat" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Prečica" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normalno mješanje" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Prepiši preko" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Ivice meke" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Ivice tvrde" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Opšte" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Iznos" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ugao" #: CloudsEffect dialog msgid "Antialias" msgstr "Umekšavanje ivica" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mod mješavine" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Svjetlina" #: PixelateData dialog msgid "Brush Size" msgstr "Veličina četke" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Veličina ćelije" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centar pomaka" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrirano" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grubost" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Opseg boja" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Zasićenje boje" #: GlowEffect dialog msgid "Coloring" msgstr "Bojanje" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Podrška" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Rastojanje" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Ponašanje ivica" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Dijelovi" #: TileEffect dialog msgid "Ink Outline" msgstr "Obris mastila" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Osvjetljenje" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Pomak" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Veličina savjeta za olovku" #: CloudsEffect dialog msgid "Percentile" msgstr "Procenat" #: RadialBlurEffect dialog msgid "Power" msgstr "Eksponent" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvaliteta" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotacija" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Procentaža zasićenja" #: CloudsEffect dialog msgid "Scale" msgstr "Razmjer" #: SoftenPortraitData dialog msgid "Seed" msgstr "Rasejanje" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mekoća" #: OutlineEffect dialog msgid "Strength" msgstr "Jačina" #: TileEffect dialog msgid "Thickness" msgstr "Debljina" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Veličina polja" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Toplina" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Koristite malu kvalitetu za preglede, male slike i male uglove. Koristite " "veliku kvalitetu za finalnu kvalitetu, veće slike i veće uglove." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "Pomoć: Za bolje rezultate, prvo koristite selekciju za svako oko." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Uređivač slika" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Jednostavno kreiranje i uređivanje slika" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta uređivač slika" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Slike" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Ne može se sačuvati slika koja se može samo čitati." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Slika koja se nalepljuje je veća od platna. Šta ćete uraditi?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Proširi platno" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ne mijenjaj veličinu platna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotiraj / Uvećaj sloj" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ca.po0000664000175000017500000013550411747026475015212 0ustar00cameroncameron00000000000000# Catalan translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 08:37+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Nivell automàtic" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverteix els colors" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivells" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sèpia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Blanc i negre" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Corbes" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brillantor / Contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Tó / Saturació" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajustament dels nivells" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histograma d'entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Sortida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histograma de sortida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automàtic" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Restableix" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Vermell" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verd" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blau" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Enllaçat" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transfereix el mapa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Lluminositat" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Vermell " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blau " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Consell: Clic amb el botó dret per el·liminar punts de control." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Redueix el soroll" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Soroll" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Difuminats" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Núvols" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderitza" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desenfocar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Elimina ulls vermells" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografia" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Lluentor" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilitza" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Desenfocament radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Vidre congelat" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsiona" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintura a l'oli" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artístic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relleu" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Esculpeix" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Difuminat gaussià" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Aguditza" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Afegeix soroll" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelitza" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Difuminació per moviment" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversió polar" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Desenfocament per zoom" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Esbós" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Perfil" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiqueta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Soroll aleatori" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Escull Color Primari" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Escull Color Secondari" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Escull la paleta de colors" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Selecció rectangular" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Tampó de clonar" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Vareta màgica" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Clica per a triar un lloc de color similar" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mou la selecció" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Degradat" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Degradat lineal" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Degradat radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Degradat Cònic" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mode Inundació" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contigu" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerància" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pinzell" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipus" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Llapis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Selecció el·líptica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Línia" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Esborrador" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Desplaçar" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Selector de color" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Botó esquerre per a establir el color primari. Botó dret per a establir el " "color secundari." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Després de seleccionar" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "No canvieu d'eina" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Canviar a l'eina anterior" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Canviar a l'eina Llapis" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rectangle arrodonit" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radi" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Desplaçar píxels seleccionats" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Reacolorir" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Cubell de pintura" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "El·lipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Tipus de lletra" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Negreta" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Cursiva" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Subratllat" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Alineat a la esquerra" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Alineat al centre" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Alineat a la dreta" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estil del text" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Amplada del contorn" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Amplada del pinzell" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cercles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Quadrats" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Aerògraf" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Quant a" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fitxer" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edició" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imatge" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Capes" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Ajustaments" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efec_tes" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "Fi_nestra" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Finestres d'eines" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "A_juda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Eines" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Capes" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historial" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Amaga" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Acobla" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Oculta automàticament" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoblable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotant" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Feu una captura de pantalla" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Si no deseu, es perdran definitivament tots els canvis." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Tanca sense desar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Redimensiona la paleta" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacitat de la capa" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Canvia el nom de la capa" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Amaga la capa" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Mostra la capa" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propietats de la capa" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fitxers d'imatge" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Tots els fitxers" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Ja existeix un fitxer anomenat «{0}». Voleu reemplaçar-lo?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualitat de JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualitat: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Títol" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versió" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Camí" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contribuents a aquesta versió" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Contribuents anteriors" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " ASeques https://launchpad.net/~sacoo2\n" " Berna https://launchpad.net/~bern-ab\n" " Fitoschido https://launchpad.net/~fitoschido\n" " Pau Iranzo https://launchpad.net/~paugnu\n" " lespedretes https://launchpad.net/~lespedretes-b\n" " thor9216 https://launchpad.net/~thor9216\n" " tot3lmon https://launchpad.net/~tot3lmon" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traduït per:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basat en el treball de Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "S'ha utilitzat algunes icones de:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Quant a Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informació de la versió" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Llicència" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Publicat baix la llicéncia MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "per contribuents Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nom:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacitat:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensiona Canvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Per percentage:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Per mida absoluta:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Amplada:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "píxels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Alçada:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Manté la relació d'aspecte" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Àncora:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Canvia la mida de la imatge" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova imatge" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nova mida d'imatge " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fons" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Obrir imatge" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Lloc web de Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Informar d'un error" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduir aquesta aplicació" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Tanca" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Desa" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimeix" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Suprimeix Capa" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Capa Duplicada" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Volteja horitzontalment" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Volteja verticalment" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Puja Capa" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Baixa Capa" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Aplana" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Amplia" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Redueix" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoom a la selecció" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Mida normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra d'Eines" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Píxels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centímetres" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pantalla sencera" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Finestra" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Retalla" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copia" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Esborra la selecció" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverteix la selecció" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Capa" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "còpia" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Eina" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Drecera de teclat" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Sobreescriu" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Quantitat" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Mida de la cel·la" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrat" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "Acoloriment" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distància" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportament de les vores" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitat" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Il·luminació" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Desplaçament" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualitat" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotació" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Suavitat" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor d'imatges" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Crear i editar imatges fàcilment" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor d'imatges Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imatges" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "No es pot guardar un fitxer de sols lectura." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "La imatge és massa gran" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Els fitxers ICO no poden excedir 255×255 píxels." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "La imatge és més gran que el llenç" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expandir el llenç" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "No canviar la mida del llenç" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Gestor d'extensions" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Hi ha una actualització disponible" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versió instal·lada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Mida de la descàrrega" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instal·lació cancel·lada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Instal·lades" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Actualitzacions" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "Galeria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Tots els dipòsits" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Gestiona els dipòsits..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} actualització disponible" msgstr[1] "{0} actualitzacions disponibles" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instal·la un paquet d'extensió" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Paquets d'extensions" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "No s'ha trobat cap extensió" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Extensió" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Altres" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Desinstal·la" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Es desintal·laran els paquets següents:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "S'instal·laran els paquets següents:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (al directori de l'usuari)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "S'han de desinstal·lar els paquets següents:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "No s'han pogut resoldre les dependències següents:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Esteu segur que voleu cancel·lar la instal·lació?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "La instal·lació ha fallat" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "La instal·lació s'ha completat amb avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "La desinstal·lació ha fallat" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "La desinstal·lació s'ha completat amb avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "S'ha produït l'excepció: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Més informació" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instal·la..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Actualitza" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Desinstal·la..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" "Són necessàries extensions addicionals per a efectuar aquesta operació." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "S'instal·laran les extensions següents:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Actualitzar tot" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Dipòsit:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instal·la des d'un fitxer..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "Detalls" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instal·la" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gestor de dipòsits d'extensions" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Afegeix un dipòsit nou" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Seleccioneu la ubicació del dipòsit que voleu registrar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registra un dipòsit en línia" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "URL:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Registra un dipòsit local" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Progrés" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(proporcionat per {0})" pinta-1.3/po/cs.po0000664000175000017500000014262511747026475015236 0ustar00cameroncameron00000000000000# Czech translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatická úroveň" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertovat barvy" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Úrovně" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sépie" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizovat" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Černobílý" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Křivky" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Jas / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Odstín / Sytost" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Přizpůsobení úrovně" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Vstupní histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Vstup" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Výstup" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Výstupní histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automaticky" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Resetovat" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Červená" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zelená" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Modrá" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Spojený" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Přenosová mapa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB barvy" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Světlost" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Červená " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Modrá " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Pravým kliknutím odstraníte ovládací body" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Snížit šum" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Rozmazání" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Mraky" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Vykreslit" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Rozostření" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Odstranění červených očí" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografie" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrotův fraktál" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Záře" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detekce hran" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylizování" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Rozmazání otáčením" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Omrzlé sklo" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Pokřivit" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olejomalba" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umělecké" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Juliin fraktál" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Zjemnit portrét" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reliéf" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Inkoustový náčrt" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Medián" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Otisk" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussovo rozmazání" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Zaostřit" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Přidat šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Dlaždicový odraz" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Rozpixelovat" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Rozmazání pohybem" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Převrácení pólů" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Vyboulit" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Rozmazání přiblížením" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Náčrt tužkou" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Obtáhnout" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Zkroutit" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "popisek1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "popisek" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Náhodný šum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Znovu načíst" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vybrat primární barvu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Vybrat sekundární barvu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Vybrat barvu palety" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Obdélníkový výběr" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klik a tažení nakreslí obdélníkový výběr. Pro čtvercový výběr držte shift." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonovací razítko" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+Levý klik k výběru zdroje, levý klik kreslí." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Výběr kouzelnou hůlkou" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klik vybere oblast s podobnou barvou." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Obdélník" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klik a tažení nakreslí obdélník (pravý klik sekundární barvou). Pro kreslení " "čtverce držte shift." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Přesunout výběr" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Pro posunutí obrysu táhnout výběrem." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Přechod" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik a tažení nakreslí přechod od primární k sekundární barvě. Pravý klik " "kreslí obráceně." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineární přechod" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineární odražeý přechod" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Lineární kosočtvercový přechod" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiální přechod" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kónický přechod" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Záplavový režim" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Spojité" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globální" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Štětec" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Levý klik kreslí primární barvou, pravý klik kreslí sekundární barvou." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Typ" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Tužka" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Levý klik kreslí neupravenou, jednopixelovou čáru primární barvy, pravý klik " "kreslí sekundární barvou." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elipsový výběr" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klik a tažení nakreslí eliptický výběr. Pro kruhový výběr držte shift." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Čára" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Levý klik kreslí primární barvou, pravý klik kreslí sekundární barvou. Držte " "Shift pro změnu úhlu" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Guma" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "Levým kliknutím mažete do průhledna, pravým do sekundární barvy. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Posun" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klik a táhnutí posunou obrázek." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Kapátko" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Levý klik nastaví primární barvu, pravý klik nastaví sekundární barvu." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Po výběru" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Nepřepínat nástroj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Přepnout na předchozí nástroj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Přepnout na tužku" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zakulacený obdélník" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Poloměr" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Snížit poloměr rohů obdélníku" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Zvýšit poloměr rohů obdélníku" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Posunout vybrané pixely" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Táhněte výběrem abyste posunuli obsah" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Přebarvit" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Levý klik přebarví sekundární barvu na primární." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Plechovka barvy" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Levý klik vyplní oblast primární barvou, pravý klik vyplní oblast sekundární " "barvou." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klik a tažení nakreslí elipsu (pravý klik sekundární barvou). Pro nakreslení " "kruhu držte shift." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Levý klik umístí kurzor, pak můžete psát text. Primární barva je barva textu." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Písmo" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Tučně" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kurzíva" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podtržené" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Zarovnat doleva" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Zarovnat na střed" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Zarovnat doprava" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Styl textu" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normální" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normální a ohraničený" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Šířka ohraničení" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Zmenšit šířku ohraničení" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Zvětšit šířku ohraničení" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Šířka štětce" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Zmenšit štětec" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Zvětšit štětec" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Styl výpně" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Obtáhnout tvar" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Vyplnit tvar" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Vyplnit a Obtáhnout tvar" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Kruhy" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Mřížka" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Čtverce" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Cákance" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Lupa" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Levý klik přiblíží. Pravý klik oddálí. Klik a obtažení přiblíží výběr." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Výběr lasem" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikněte a obtáhněte vybranou oblast." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Volný tvar" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O aplikaci" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Soubor" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Upravit" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Zobrazit" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Obrázek" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Vrstvy" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Přizpůsobení" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_kty" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Okno" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Okna Nástrojů" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Nápověda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Nástroje" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenty" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Vrstvy" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historie" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Skrýt" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Ukotvit" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Skrývat automaticky" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokovatelné" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plovoucí" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Sejmout obrazovku" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Zpoždění před sejmutím obrazovky (sekundy):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Uložit změny obrázku \"{0}\" před zavřením?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Pokud je neuložíte, veškeré změny budou navždy ztraceny." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zavřít bez uložení" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Velikost Palety" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nová velikost palety:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Vložit do nové vrstvy" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Průhlednost vrstvy" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Přejmenovat vrstvu" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Skrýt vrstvu" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Zobrazit vrstvu" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Vlastnosti vrstvy" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Otevřít obrázek" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Soubory obrázků" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Všechny soubory" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Uložení obrázku" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nepodporuje ukládání obrázků v tomto typu souborů.." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Chyba" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Soubor \"{0}\" už existuje. Chcete ho přepsat?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Soubor už existuje v \"{1}\". Nahrazení přepíše jeho obsah." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalita: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Název" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Verze" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cesta" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Přispěvatelé tohoto vydání" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Předchozí přispěvatelé" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jan Fluksa https://launchpad.net/~jan-fluksa\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Petr Šimáček https://launchpad.net/~petr-simacek\n" " luisah https://launchpad.net/~luisah\n" " schunka https://launchpad.net/~schunka\n" " xXx https://launchpad.net/~michalhusar-it" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Přeložili:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Na základě práce Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Použity některé ikonky z:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informace o verzi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licence" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Vydáno pod licencí MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Od přispěvatelů Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Název:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Viditelná" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Průhlednost" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Změna velikosti plátna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Procentuelně:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Na velikost:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Šířka:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixely" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Výška:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Zachovat poměr stran" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Kotva:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Změnit velikost" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nový obrázek" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Velikost nového obrázku " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "počet vláken použitých k vykreslení" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "JménoVolby" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Vykreslovací efekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neuložený obrázek {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Pozadí" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otevřít obrázek" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nelze otevřít soubor: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Vložit" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Otočit o 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Překlopit obrázek horizontálně" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Překlopit obrázek vertikálně" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Otočit o 90° po směru hodin" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Otočit o 90° proti směru hodin" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Překlopit vrstvu horizontálně" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Překlopit vrstvu vertikálně" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dokončit pixely" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Stránky Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Nahlásit chybu" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Přeložit tuto aplikaci" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Uložit vše" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zavřít vše" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nový..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nový Snímek obrazovky" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otevřít..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Otevřít nedávný" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zavřít" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Uložit" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Uložit jako..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Vytisknout" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Ukončit" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nový" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otevřít" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Přidat novou vrstvu" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Smazat vrstvu" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplikovat vrstvu" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Spojit vrstvy" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Vložit ze souboru..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Převrátit horizontálně" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Převrátit vertikálně" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Posunout vrstvu nahoru" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Posunout vrstvu dolů" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Vlastnosti Vrstvy..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Vložit ze souboru" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Vystřihnout do výběru" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automaticky oříznout" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Změnit velikost obrázku..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Změna velikosti plátna..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Zploštit" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Přiblížit" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Oddálit" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Přizpůsobit" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Přiblížit na výběr" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normální velikost" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Panel Nástrojů" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixelová mřížka" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Pravítka" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixely" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Palce" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetry" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Celá obrazovka" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jednotky pravítka" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Okno" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Vrátit změny" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Udělat znovu" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Vyjmout" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopírovat" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Vložit do nového obrázku" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Smazat výběr" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Vyplnit výběr" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Obrátit výběr" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Vybrat vše" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Zrušit výběr" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Nastavit na výchozí" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Nastavit počet barev" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Smazat výběr" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Zrušit výběr" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otevřít sobor s paletou" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Soubory palet (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nelze otevřít soubor palety: {0}.\n" "Ověřte prosím, že se pokoušíte otevřít platnou paletu GIMP nebo Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Uložit soubor palety" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Vrstva" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopírovat" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Nástroj" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Klávesová zkratka" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normální míchání" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Přepsat" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing Zapnout" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialiasing Vypnout" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obrázek ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Všeobecné" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Množství" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Úhel" #: CloudsEffect dialog msgid "Antialias" msgstr "Vyhlazování" #: GlowEffect dialog msgid "Blend Mode" msgstr "Režim míchání" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Jas" #: PixelateData dialog msgid "Brush Size" msgstr "Velikost štětce" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Velikost buňky" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Středové odsazení" #: OilPaintingEffect dialog msgid "Centered" msgstr "Vystředěné" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Hrubost" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Rozsah barev" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Sytost barev" #: GlowEffect dialog msgid "Coloring" msgstr "Barevnost" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokrytí" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Vzdálenost" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Chování hran" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Úlomky" #: TileEffect dialog msgid "Ink Outline" msgstr "Obtažení iknoustem" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzita" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Nasvícení" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Odstup" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Velikost hrotu tužky" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Síla" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalita" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotace" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Procentualní sytost" #: CloudsEffect dialog msgid "Scale" msgstr "Měřítko" #: SoftenPortraitData dialog msgid "Seed" msgstr "Odzrnit" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Jemnost" #: OutlineEffect dialog msgid "Strength" msgstr "Síla" #: TileEffect dialog msgid "Thickness" msgstr "Tloušťka" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Velikost dlaždic" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Teplota" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Použivejte nízkou kvalitu pro náhledy, malé obrázky a nízké úhly. Vysokou " "kvalitu pro finální kvalitu, velké obrázky a úhly." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Rada: Pro lepší vysledky nejprve použijte výběrové nástroje k označení " "každého oka." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor obrázků" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Snadné vytváření a úprava obrázků" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Grafický editor Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Obrázky" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nelze uložit soubor pouze pro čtení." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Vkládaný obrázek je větší než plátno. Co chcete dělat?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Roztáhnout plátno" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Neměnit velikost plátna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/da.po0000664000175000017500000014162311747026475015212 0ustar00cameroncameron00000000000000# Danish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto niveau" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertér farver" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveauer" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterisér" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Sort og hvid" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurver" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Lysstyrke / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nuance / Mætning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Niveau justering" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Input Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Output Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Nulstil" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rød" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grøn" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blå" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Sammenkædet" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Overfør kort" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminans" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rød " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blå " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Højreklik for at fjerne kontrolpunkter" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reducér støj" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Støj" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Sløringer" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Skyer" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Optegne" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Ingen fokus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Rødøje fjerne" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Billede" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glød" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Kant detektion" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilistisk" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radial sløring" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frostet glas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Forvræng" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olie farvning" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Kunstnerisk" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Blødt portræt" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Blæk skitse" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Præg i relief" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussisk sløring" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Gør skarpere" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Tilføj støj" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Flise refleksion" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselere" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Bevægelsessløring" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Pol invertering" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bule" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom sløring" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Blyantssketch" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Omrids" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Drej" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiket1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiket" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Tilfældig støj" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Gen-så" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vælg primær farve" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Vælg sekundær farve" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Vælg palettefarve" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rektangulær markering" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klik og træk for at tegne et rektangel valg. Hold skift for at begrænse til " "en kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Stempel kloning" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-venstreklik for at sætte oprindelse, venstreklik for at male." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Tryllestavsmarkering" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klik for at vælge område med tilsvarende farve." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rektangel" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klik og træk for at tegne en rektangel (højre klik for sekundær farve). Hold " "skift for at begrænse til en kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flyt markering" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Træk i valg for at flytte vaglt omrids." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Farveovergang" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik og træk for at tegne farveovergang fra primær til sekundær farve. Højre " "klik for modsat." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineær farveovergang" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineær afspejlet farveovergang" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Lineær diamant farveovergang" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial farveovergang" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Konisk farveovergang" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Oversvømmelsesmodus" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Sammenhængende" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Malerpensel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Venstreklik for at tegne med primær farve, højreklik for at tegne med " "sekundær farve." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Blyant" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Venstre klik for fritegning, et billedepunkt brede linjer med primær farve, " "højre klik for at bruge sekundær farve." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipse markering" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klik og træk for at skabe en elliptisk markering. Hold skift for at begrænse " "til en cirkel." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linje" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Venstreklik for at tegne med primærfarven, højreklik for at tegne med " "sekondærfarven. Hold skift-tasten nede for at rette ind til vinkler." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Viskelæder" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Venstreklik for at slette til transparent, højreklik for at slette til " "sekundærfarven. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Panorér" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klik og træk for at navigere billede." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Farvevælger" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Venstre klik for at sætte primær farve. Højre klik for at sætte sekundær " "farve." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Efter markering" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Skift ikke værktøj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Skift til forrige værktøj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Skift til blyant værktøj" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Afrundet rektangel" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Formindsk rektanglens hjørne-radius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Forøg rektanglens hjørne-radius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Flyt markerede pixels" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Træk i markeringen for at flytte det markerede indhold." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Omfarv" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Venstre klik for at erstatte sekundær farve med primær farve." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farvespand" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "enstr klik for at fylde med primær farve, højre klik for at fylde med " "sekundær farve." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klik og træk for at tegne en ellipse (højre klik for sekundær farve). Hold " "skift for at begrænse til en cirkel." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Venstre klik for at placere cursor, indtast dernæst den ønskede tekst. Tekst " "farve er primær farve." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Skrifttype" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Fed" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Understreg" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Venstrejustér" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "MidterJustér" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Højrejustér" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Typografi" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal og omrids" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Bredde af omrids" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Sænk størrelsen af omridset" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Forøg størrelsen af omridset" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Pensel bredde" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Formindsk pensel størrelse" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Forøg pensel størrelse" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fyldestil" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Omrids form" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fyld form" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fyld og omrids form" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cirkler" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Gitter" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Firkanter" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Venstre klik for at zoome ind. Højre klik for at zoome ud. Klik og træk for " "at zoome ind på valgt." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso markering" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik og træk for at tegne omrids for valgt område." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Fritegne form" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Om" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fil" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "R_edigere" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vis" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "B_illede" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lag" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Justeringer" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_kter" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Vindue" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Hjælp" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Værktøjer" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palet" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenter" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lag" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historik" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Skjul" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dok" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Skjul automatisk" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokbar" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flydende" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Tag skærmbillede" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Forsinkelse før skærmbillede tages (sekunder)" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gem ændringer for billede \"{0}\" før luk?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Hvis du ikke gemmer, vil ændringer være tabt." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Afslut uden at gemme" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ændr størrelsen af paletten" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Ny størrelse af palet:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Indsæt i nyt lag" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Lag uigennemsigtighed" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Omdøb lag" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Skjul lag" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Vis lag" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Lag-egenskaber" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Åbn billede fil" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Billede filer" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Alle filer" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Gem billede fil" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta understøtter ikke at gemme billeder i dette filformat." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Fejl" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "En file kaldet \"{0}\" eksisterer allerede. Vil du overskrive den?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Filen eksisterer allerede i \"{1}\". Hvis den erstattes overskrives " "indholdet." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalitet: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sti" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bidragyder til denne frigivelse" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Tidligere bidragyder" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Marc Dam https://launchpad.net/~marcdam\n" " Ole Carlsen https://launchpad.net/~ole-carlsen-web\n" " Simon Højlind https://launchpad.net/~hojlind" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Oversat af:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Baseret på arbejdet med Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Bruger nogle ikoner fra:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Om Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Version Info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licens" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Frigivet under MIT X11 Licens." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "af Pinta bidragyder" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Navn:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Synlig" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Uigennemsighed:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ændr lærred" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "I procent" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "I absolut størrelse" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Bredde:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "billedpunkter" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Højde:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Bevar størrelsesforhold" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Forankring:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ændring af billedstørrelse" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nyt billede" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Ny billede størrelse " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "antal tråde ved rendering" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "IndstillingsNavn" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Optegne effekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ikke gemt billede {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Baggrund" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Åbn billede" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunne ikke åbne fil: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Indsæt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotere 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Vend billede vandret" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Vend billede lodret" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotere 90° med uret" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotere 90° mod uret" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Vend lag vandret" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Vend lag lodret" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Afslut billedepunkter" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Websted" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Rapportere en fejl" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Oversæt dette program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Gem alle" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Luk alle" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Ny..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nyt skærmbillede..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Åbn..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Åbn seneste" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Luk" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Gem" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Gem som..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Udskriv" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Afslut" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Ny" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Åbn" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Tilføj nyt lag" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Slet lag" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliker lag" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Fusionere lag nedad" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importere fra fil..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Vend vandret" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Vend lodret" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Flyt lag op" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Flyt lag ned" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Lag egenskaber..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importere fra fil" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Beskær til valg" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Autobeskær" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Ændr størrelsen af billedet" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Ændr størrelsen af lærredet" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Udjævn" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom ind" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom ud" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoom til markering" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal størrelse" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Værktøjslinje" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Billedepunkter gitter" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linealer" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Billedpunkter" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tommer" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fuldskærm" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Enheder på lineal" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Vindue" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Fortryd" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Omgør" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Klip" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiere" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Indsæt i nyt bilede" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Slet markering" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fyld markering" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Omvend markering" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Vælg alle" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Afmarker alt" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Gendan standard" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Indstil antal farver" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Slet markering" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Fravælg" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Åben palet fil" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palet filer (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Kunne ikke åbne palet fil: {0}.\n" "Kontroller venligst at du prøver på at åbne en gyldig GIMP eller Paint.NET " "palet." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Gem palet fil" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palet (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palet (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lag" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiere" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Værktøj" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Genvejstast" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overskriv" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Kantudjævning til" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Kantudjævning fra" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} billede ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Generelt" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Mængde" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Vinkel" #: CloudsEffect dialog msgid "Antialias" msgstr "Udjævning" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blande tilstand" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Lysstyrke" #: PixelateData dialog msgid "Brush Size" msgstr "Pensel størrelse" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Celle størrelse" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Cener forskydning" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centreret" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grovhed" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Farveområde" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Farvemætning" #: GlowEffect dialog msgid "Coloring" msgstr "Farvelæg" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Dækning" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Afstand" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kant opførsel" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenter" #: TileEffect dialog msgid "Ink Outline" msgstr "Blæk omrids" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Belysning" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Forskydning" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Blyantspids størrelse" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Kraft" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalitet" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Mæthedsprocent" #: CloudsEffect dialog msgid "Scale" msgstr "Skalere" #: SoftenPortraitData dialog msgid "Seed" msgstr "Frø" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Blødhed" #: OutlineEffect dialog msgid "Strength" msgstr "Styrke" #: TileEffect dialog msgid "Thickness" msgstr "Tykkelse" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Flisestørrelse" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Varme" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Brug lav kvalitet til forhåndsvisning, små billeder and små vinkler. Brug " "høj kvalitet for afsluttende kvalitet, store billeder og store vinkler." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Tip: For bedste resultat, brug først valg værktøj for at vælge hvert øje." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Billedredigeringsprogram" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Skab og rediger nemt billeder" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta billedredigeringsprogram" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Billeder" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Kan ikke gemme skrivebeskyttet fil" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Billedet der bliver indsat er størrere end lærredet størrelse. Hvad vil du " "gerne gøre?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Udvid lærredet" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ændr ikke størrelsen af lærredet" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/de.po0000664000175000017500000014540611747026475015221 0ustar00cameroncameron00000000000000# German translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatische Tonwertkorrektur" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Farben umkehren" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Tonwertkorrektur" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Tonwerttrennung" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Schwarz/Weiß" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Gradationskurven" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Helligkeit/Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Farbton/Sättigung" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ebenenabgleich" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Eingabe-Histogramm" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Eingabe" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Ausgabe" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Ausgabe-Histogramm" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatisch" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Zurücksetzen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rot" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grün" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blau" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Verknüpft" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Übertrage Karte" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Leuchtkraft" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rot " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blau " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tipp: Rechtsklick zum Entfernen von Kontrollpunkten." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Rauschen verringern" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Rauschen" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Unschärfe" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Wolken" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Rendern" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Defokussieren" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Rotaugenreduktion" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-Fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glühen" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Kanten erkennen" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilisieren" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiale Unschärfe" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Gefrorenes Glas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Verzerren" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Ölgemälde" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Künstlerisch" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-Fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Portrait weichzeichnen" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Tintenskizze" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Prägen" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaußscher Weichzeichner" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Schärfen" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Rauschen hinzufügen" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Kachelreflektion" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Verpixeln" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Bewegungsunschärfe" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polare Inversion" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Verbeulen" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Vergrößerungsunschärfe" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Bleistiftskizze" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Umriss" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Verdrehen" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "Markierung" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Zufälliges Rauschen" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Neu erzeugen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vordergrundfarbe wählen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Hintergrundfarbe wählen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Palettenfarbe wählen" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rechteckige Auswahl" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klicken und ziehen, um eine rechteckige Auswahl aufzuziehen. Die " "Umschalttaste gedrückt halten, um daraus ein Quadrat zu machen." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Stempel klonen" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Strg + Linksklick, um einen Ausgangspunkt festzulegen, Linksklick zum Malen." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Zauberstab" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Nach Farbe auswählen" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rechteck" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klicken und ziehen, um ein Rechteck zu zeichnen (Rechtsklick für " "Sekundärfarbe). Die Umschalttaste gedrückt halten für ein Quadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Auswahl verschieben" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Auswahl ziehen, um die Auswahl zu verschieben." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Verlauf" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klicken und ziehen, um einen Farbverlauf von der Vorder- zur " "Hintergrundfarbe zu zeichnen. Rechtsklick, um die Farben zu vertauschen." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linearer Verlauf" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linearer gespiegelter Verlauf" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linearer rautenförmiger Verlauf" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radialer Verlauf" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kegelförmiger Verlauf" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Füllmodus" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Zusammenhängend" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleranz" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pinsel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Linksklick, um mit der Vordergrundfarbe zu zeichnen. Rechtsklick, um mit der " "Hintergrundfarbe zu zeichnen." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Typ" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Bleistift" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Linksklick, um eine 1 Pixel breite Freihandlinie mit der Primärfarbe zu " "zeichnen. Rechtsklick, um die Sekundärfarbe zu benutzen." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elliptische Auswahl" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klicken und ziehen, um eine elliptische Auswahl aufzuziehen. Die " "Umschalttaste gedrückt halten, um daraus einen Kreis zu machen." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linie" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Linksklick um in der primäre Farbe zu zeichnen, für die sekundäre Farbe " "rechtsklick verwenden. Shift halten um vorgegebene Winkel zu verwenden." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Radiergummi" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Linksklick zur Entfernung nach transparent, Rechtsklick zur Entfernung zur " "sekundären Farbe " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Ausschnitt verschieben" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klicken und ziehen, um den sichtbaren Bildbereich zu verschieben." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Farbwähler" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Linksklick, um die Vordergrundfarbe festzulegen. Rechtsklick, um die " "Hintergrundfarbe festzulegen." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Nach Auswahl" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Werkzeug nicht wechseln" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Zum vorherigen Werkzeug wechseln" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Zum Stift wechseln" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Abgerundetes Rechteck" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Eckenradius des Rechtecks verringern" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Eckenradius des Rechtecks vergrößern" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Ausgewählte Pixel bewegen" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Auswahl ziehen, um ausgewählten Bereich zu verschieben" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Einfärben" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Linksklick, um die Sekundär- durch die Primärfarbe zu ersetzen." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farbeimer" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Linksklick, um einen Bereich mit der Primärfarbe zu füllen. Rechtsklick zum " "Füllen mit der Sekundärfarbe." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klicken und ziehen, um eine Ellipse zu zeichnen (Rechtsklick um die " "Sekundärfarbe zu verwenden). Die Umschalttaste gedrückt halten, um daraus " "einen Kreis zu machen." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Linksklick, um den Mauszeiger zu platzieren, dann den gewünschten Text " "eintippen. Die Textfarbe entspricht der Primärfarbe." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Schriftart" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Fett" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Unterstrichen" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Linksbündig" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Zentriert" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Rechtsbündig" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Textstil" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal und Kontur" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Hintergrund ausfüllen" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Konturbreite" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Konturbreite verringern" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Konturbreite erhöhen" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Pinselbreite" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Pinselbreite verringern" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Pinselbreite vergrößern" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Füllstil" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Nur Umrandung" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Nur Füllung" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Umrandung und Füllung" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Kreise" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Gitter" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Quadrate" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Spritzer" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Lupe" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Links-Klick zoomt hinein. Rechts-Klick zoomt heraus. Klicken und Ziehen " "zoomt auf Auswahlbereich" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Freie Auswahl" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klicken und ziehen, um einen Bereich auszuwählen" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Freiformgestaltung" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Über" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Datei" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "B_earbeiten" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Ansicht" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Bild" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Ebenen" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Anpassungen" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_kte" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fenster" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Werkzeugfenster" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Hilfe" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Werkzeuge" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palette" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumente" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Ebenen" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Chronik" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ausblenden" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatisch ausblenden" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockbar" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Schwebend" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Bildschirmfoto aufnehmen" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Verzögerung vor Aufnahme eines Bildschirmfotos (Sekunden):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Änderungen an Bilddatei »{0}« vor dem Schließen speichern?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Wenn Sie nicht speichern, gehen alle Änderungen dauerhaft verloren." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Schließen, ohne zu speichern" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Neue Palettengröße festlegen" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Neue Palettengröße:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "In neue Ebene einfügen" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Ebenendeckkraft" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Ebene umbenennen" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ebene verbergen" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Ebene anzeigen" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Ebeneneigenschaften" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Bilddatei öffnen" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Bilddateien" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Alle Dateien" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Bilddatei speichern" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" "Das Speichern von Bildern in diesem Format wird von Pinta nicht unterstützt." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Fehler" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" "Eine Datei namens »{0}« existiert bereits. Möchten Sie sie überschreiben?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Die Datei existiert bereits in »{1}«. Eine Ersetzung wird ihren Inhalt " "überschreiben." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-Qualität" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualität: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pfad" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Beitragende dieser Version" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Frühere Beitragende" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Achmed Decker https://launchpad.net/~deckerac\n" " Andre https://launchpad.net/~ajx\n" " Benedict Etzel https://launchpad.net/~benedict-etzel\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Christian https://launchpad.net/~make-panic\n" " Christian Rupp https://launchpad.net/~grissi\n" " Ettore Atalan https://launchpad.net/~atalanttore\n" " Francisco Camenforte Torres https://launchpad.net/~fct\n" " Ghenrik https://launchpad.net/~ghenrik-deactivatedaccount\n" " Gregor Santner https://launchpad.net/~gregi94\n" " Hanh Pham https://launchpad.net/~joel-nohnn\n" " Johannes Rössel https://launchpad.net/~joey-muhkuhsaft\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Killigrew https://launchpad.net/~killigrew\n" " Mathias Fussenegger https://launchpad.net/~f-mathias\n" " Matthias Mailänder https://launchpad.net/~mailaender\n" " Paul Hoell https://launchpad.net/~hoellp\n" " Richard Liebig https://launchpad.net/~systheron\n" " ziggystar https://launchpad.net/~ziggystar-gmx" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Übersetzt von:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basiert auf der Arbeit von Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Einige Symbole benutzt von:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Über Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versionsinfo" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lizenz" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Veröffentlicht unter der MIT X11-Lizenz" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pinta-Mitwirkende" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Name:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Sichtbar" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Deckkraft:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Größe der Zeichenfläche ändern" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Prozentual" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Absolute Werte:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Breite:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "Pixel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Höhe:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Seitenverhältnis beibehalten" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ankerpunkt:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Bildgröße ändern" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Neues Bild" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Größe des neuen Bildes " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "Anzahl Threads, die zur Bildberechnung benutzt werden" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionsName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Rendereffekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ungespeichertes Bild {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Hintergrund" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Bild öffnen" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Datei konnte nicht geöffnet werden: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Einfügen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Um 180° drehen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Bild horizontal spiegeln" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Bild vertikal spiegeln" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Um 90° im Uhrzeigersinn drehen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Um 90° im Gegenuhrzeigersinn drehen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Ebene horizontal spiegeln" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Ebene vertikal spiegeln" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pixel fertigstellen" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Internetseite von Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Einen Fehler melden" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Diese Anwendung übersetzen" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Alle speichern" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Alle schließen" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Neu …" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Neues Bildschirmfoto …" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Öffnen …" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Zuletzt geöffnet" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Schließen" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Speichern" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Speichern unter …" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Drucken" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Beenden" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Neu" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Öffnen" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Neue Ebene hinzufügen" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Ebene löschen" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Ebene duplizieren" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Ebene mit darunterliegenden zusammenfassen" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Aus Datei importieren …" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Horizontal spiegeln" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Vertikal spiegeln" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Drehen / Layer vergrößern" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Ebene nach oben" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Ebene nach unten" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Ebeneneigenschaften" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Aus Datei importieren" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Auf Auswahl beschneiden" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatisches Zuschneiden" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Bildgröße ändern..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Arbeitsflächengröße ändern..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Auf eine Ebene reduzieren" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Vergrößern" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Verkleinern" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Einpassen" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Größe an Auswahl anpassen" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normale Größe" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Werkzeugleiste" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixelgitter" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Lineale" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixel" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Zoll" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Zentimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Vollbild" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Maßeinheiten" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fenster" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Rückgängig" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Wiederherstellen" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Ausschneiden" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopieren" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "In neues Bild einfügen" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Auswahl entfernen" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Auswahl füllen" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Auswahl umkehren" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Alles auswählen" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Auswahl aufheben" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Auf Standardwert zurücksetzen" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Anzahl der Farben" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Auswahl löschen" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Auswahl aufheben" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Farbpalette öffnen" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Farbpaletten (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Palettendatei konnte nicht geöffnet werden: {0}.\n" "Bitte stellen Sie sicher dass Sie eine gültige GIMP- oder Paint.NET-Palette " "öffnen." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Farbpalette speichern" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-Farbpalette (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP-Farbpalette (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Ebene" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "Kopieren" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Werkzeug" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Tastenkürzel" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normaler Übergang" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Überschreiben" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Kantenglättung an" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Kantenglättung aus" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0}-Bild ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Allgemein" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Menge" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Winkel" #: CloudsEffect dialog msgid "Antialias" msgstr "Kantenglättung" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mischmodus" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Helligkeit" #: PixelateData dialog msgid "Brush Size" msgstr "Pinselgröße" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Zellgröße" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Mittelpunkt" #: OilPaintingEffect dialog msgid "Centered" msgstr "Zentriert" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grobkörnigkeit" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Farbbereich" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Farbsättigung" #: GlowEffect dialog msgid "Coloring" msgstr "Färbung" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Deckkraft" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Abstand" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kantenverhalten" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmente" #: TileEffect dialog msgid "Ink Outline" msgstr "Tintenkontur" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensität" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Beleuchtung" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Versatz" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Stiftdicke" #: CloudsEffect dialog msgid "Percentile" msgstr "Perzentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Stärke" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualität" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Sättigungsprozentwert" #: CloudsEffect dialog msgid "Scale" msgstr "Skalieren" #: SoftenPortraitData dialog msgid "Seed" msgstr "Startwert" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Weichheit" #: OutlineEffect dialog msgid "Strength" msgstr "Stärke" #: TileEffect dialog msgid "Thickness" msgstr "Dicke" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Kachelgröße" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Wärme" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Niedrige Qualität ist für eine schnelle Vorschau, kleine Bilder und kleine " "Winkel gedacht. Hohe Qualität für endgültige Ergebnisse, große Bilder und " "große Winkel." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Bemerkung: Um das beste Ergebnis zu bekommen, markiere am bestens jede Auge " "einzeln." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Bildbearbeitung" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Einfach Bilder erstellen und bearbeiten" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Bildbearbeitung" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Bilder" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Schreibgeschützte Datei konnte nicht gespeichert werden." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Das eingefügte Bild ist größer als die Arbeitsfläche. Was möchten Sie gerne " "tun?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Arbeitsfläche erweitern" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Arbeitsflächengröße nicht ändern" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Drehen / Layer vergrößern" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/el.po0000664000175000017500000015376311747026475015236 0ustar00cameroncameron00000000000000# Greek translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Αυτόματο επίπεδο" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Αντιστροφή χρωμάτων" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Επίπεδα" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Σέπια" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Δημιουργία πόστερ" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Ασπρόμαυρο" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Καμπύλες" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Φωτεινότητα / αντίθεση" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Απόχρωση / Κορεσμός" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ρύθμιση Επιπέδων" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Ιστόγραμμα Εισόδου" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Είσοδος" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Έξοδος" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Ιστόγραμμα Εξόδου" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Αυτόματα" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Επαναφορά" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Κόκκινο" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Πράσινο" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Μπλέ" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Συνδεμένο" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Φωτεινότητα" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Κόκκινο " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Μπλέ " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Πληροφορία: Πάτα το δεξί κλικ για να αφαιρέσεις τα σημεία ελέγχου" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Μείωση Θορύβου" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Θόρυβος" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Κατακερμάτιση" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Θολώματα" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Σύννεφα" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Αποτύπωση" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Αναίρεση Εστίασης" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Αφαίρεση Κοκκινίλας Ματιών" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Φωτογραφία" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Λάμψη" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Εντοπισμός Άκρου" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Πρόσδοση Ύφους" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Ακτινικό θόλωμα" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Παγωμένο Γυαλί" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Παραμόρφωση" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Ζωγραφική Λαδιού" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Καλλιτεχνικό" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Φράκταλ Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Κάντε πιο \"απαλό\" το ποτραίτο" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Ανάγλυφο" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Σκίτσο μελάνης" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Μέση τιμή" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Εμβάθυνση" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Θόλωμα Gauss" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Όξυνση" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Προσθήκη θορύβου" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Αντανάκλαση Πλακιδίου" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Εικονοστοιχειοποίηση" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Θόλωμα κίνησης" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Πολική Αναστροφή" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Φούσκωμα" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Θόλωμα μεγέθυνσης" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Σκίτσο με μολύβι" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Εξωτερικό περίγραμμα" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Συστροφή" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "ετικέττα1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "ετικέττα" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Τυχαίος Θόρυβος" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Επανατροφοδότηση" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Επιλέξτε Πρωτεύον Χρώμα" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Επιλέξτε Δευτερεύον Χρώμα" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Επιλογή Χρώματος Παλέττας" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Ορθογώνια επιλογή" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Κλικάρετε και σύρετε για να σχεδιάσετε μία επιλογή σε σχήμα ορθογώνιο. " "Κρατήστε πατημένο το πλήκτρο Shift για να δημιουργήστε ένα τετράγωνο." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Στάμπα Κλονοποίησης" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Πιέστε Ctrl+Αριστερό Κλικ για να ορίσετε πηγή, αριστερό κλικ για να " "ζωγραφίσετε." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Επιλογή με το Μαγικό Ραβδί" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Κλικ για επιλογή περιοχής ίδιου χρώματος" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Ορθογώνιο" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Κλικάρετε και σύρετε για να σχεδιάσετε ένα ορθογώνιο (δεξιό κλίκ για το " "δευτερεύον χρώμα). Κρατήστε το Shift για να δημιουργήσετε ένα τετράγωνο." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Μετακίνηση επιλογής" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Σύρετε την επιλογή για να μεταφέρετε το περίγραμμα της επιλογής." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Διαβάθμιση χρώματος" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Κλικάρετε και σύρετε για να σχεδιάσετε μια χρωματική κλιμάκωση από το βασικό " "στο δευτερεύον χρώμα. Με δεξιό κλίκ το αντίστροφο." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Γραμμική Κλιμάκωση" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Γραμμικό Διαμαντοειδές Ντεγραντέ" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Ακτινική Διαβάθμιση" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Συνεχόμενη" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Καθολική" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Ανοχή" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Πινέλο" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Αριστερό κλικ για σχεδίαση με πρωτεύον χρώμα, δεξί κλικ για σχεδίαση με " "δευτερεύον χρώμα" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Τύπος" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Μολύβι" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Αριστερό κλικ για ελεύθερο σχέδιο με γραμμές μεγέθους ενός pixel, με χρήση " "του πρωτεύοντος χρώματος, δεξί κλικ για χρήση δευτερεύοντος χρώματος." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ελλειψοειδής επιλογή" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Κλικάρετε και σύρετε για να σχηματίσετε έναν επιλογέα ελλειπτικού σχήματος. " "Κρατήστε το Shift για να σχηματίσετε έναν κυκλικό επιλογέα." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Γραμμή" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Γόμα" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Πανοραμική κίνηση" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Κλικάρετε και σύρετε για να περιηγηθείτε στην εικόνα" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Επιλογέας Χρώματος" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "Αριστερό κλικ πρωτεύον χρώμα.Δεξί κλικ δευτερεύον χρώμα." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Μετά την επιλογή" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Μην αλλάξετε εργαλείο" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Προηγούμενο εργαλείο" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Αλλαγή σε μολύβι" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Στρογγυλεμένο ορθογώνιο" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Ακτίνα" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Μετακινήστε τα επιλεγμένα pixel" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Επαναχρωματισμός" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Αριστερό κλικ για αντικατάσταση του δευτερεύοντος χρώματος με το πρωτεύον." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Κουβάς χρώματος" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Αριστερό κλικ για γέμισμα μιας περιοχής με το πρωτεύον χρώμα, δεξί κλικ για " "γέμισμα με το δευτερεύον." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Έλλειψη" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Κλικάρετε και σύρετε για να ζωγραφίσετε μια έλλειψη (δεξί κλικ για " "δευτερεύον χρώμα). Κρατήστε το Shift για κύκλο." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Κείμενο" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Γραμματοσειρά" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Έντονα" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Πλάγια" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Υπογράμμιση" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Αριστερή στοίχιση" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Στοίχιση Στο Κέντρο" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Δεξιά στοίχιση" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Στυλ Κειμένου" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Κανονικό" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Μήκος βούρτσας" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Μείωση μεγέθους Βούρτσας" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Αύξηση μεγέθους Βούρτσας" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Στυλ Γεμίσματος" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Σχήμα Γεμίσματος" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Κύκλοι" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Πλέγμα" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Τετράγωνα" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Μεγένθυση" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Αριστερό κλικ για μεγέθυνση. Δεξί για σμίκρυνση. Κλικάρετε και σύρετε για " "μεγέθυνση της επιλογής σας." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Επιλογή με λάσο" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Ελεύθερο Σχήμα" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Σχετικά με..." #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Αρχείο" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Επεξεργασία" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Προβολή" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "Ει_κόνα" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "Επίπε_δα" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Προσαρμογές" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Ε_φέ" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "Παρά_θυρα" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Εργαλειοθήκες" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Βοήθεια" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Εργαλεία" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Παλέττα" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Έγγραφα" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Επίπεδα" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Ιστορικό" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Απόκρυψη" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Προσάρτηση" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Αυτόματη απόκρυψη" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Ελεύθερα μετακινούμενη" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Λήψη στιγμιότυπου οθόνης" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Καθυστέρηση πριν βγεί το screenshot (σε δευτερόλεπτα):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Να αποθηκευτούν οι αλλαγές στην εικόνα \"{0}\" πριν την έξοδο;" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Αν δε γίνει αποθήκευση, οι αλλαγές θα χαθούν οριστικά." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Κλείσιμο χωρίς αποθήκευση" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Αλλαγή μεγέθους της παλέτας" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Νέο Μέγεθος Παλέττας" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Επικόλληση Σε Νέο Στρώμα" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Αδιαφάνεια στρώματος" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Μετονομασία Στρώματος" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Απόκρυψη Στρώματος" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Εμφάνιση Στρώματος" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Ιδιότητες στρώματος" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Άνοιγμα Αρχείου Εικόνας" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Αρχεία Εικόνων" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Όλα τα αρχεία" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Αποθήκευση αρχείου εικόνας" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" "Το Pinta δεν υποστηρίζει δυνατότητα αποθήκευσης σε αυτό το φορμά αρχείου." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Σφάλμα" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" "Ένα αρχείο με όνομα \"{0}\" υπάρχει ήδη. Θέλετε να το αντικαταστήσετε;" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Το αρχείο υπάρχει ήδη στην τοποθεσία \"{1}\". Με την αντικατάσταση θα " "αντικατασταθούν τα περιεχόμενά του." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Ποιότητα JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Ποιότητα: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Τίτλος" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Έκδοση" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Διαδρομή" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Συντελεστές Έκδοσης" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Προηγούμενοι Συντελεστές" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Dimitris https://launchpad.net/~digitalbckp\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Petros Kyladitis https://launchpad.net/~multipetros\n" " Psychorat https://launchpad.net/~dougy-giro1\n" " Spiros Anthis https://launchpad.net/~sugaraddicted\n" " vassilis karamitros https://launchpad.net/~ecatodarcus\n" " Νιάνιος Ρωμανός https://launchpad.net/~romanos-nianios" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Μεταφράστηκε από:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Βασίζεται στο Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Γίνεται χρήση εικονιδίων απο:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Σχετικά με το Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Πληροφορίες Έκδοσης" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Άδεια Χρήσης" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Κυκλοφορεί κάτω απο την MIT X11 άδεια χρήσης" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Πνευματικά Δικαιώματα" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "απο τους συντελεστές του Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Όνομα:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Ορατό" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Διαφάνεια:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Αλλαγή Μεγέθους" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Σε ποσοστό:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Σε απόλυτο μέγεθος:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Πλάτος:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "Εικονοστοιχεία" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Ύψος:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Διατήρηση αναλογίας διαστάσεων" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Αγκυροβόληση" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Αλλαγή Μεγέθους Εικόνας" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Νέα Εικόνα" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Νέο Μέγεθος Εικόνας " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Μη αποθηκευμένη Εικόνα {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Φόντο" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Άνοιγμα εικόνας" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Δεν ήταν δυνατό να ανοιχτεί το αρχείο: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Επικόλληση" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Περιστροφή 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Αναποδογύρισμα Εικόνας Οριζόντια" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Αναποδογύρισμα Εικόνας Κάθετα" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Περιστροφή 90° Δεξιόστροφα" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Περιστροφή 90° Αριστερόστροφα" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Αναποδογύρισμα Στρώματος Οριζόντια" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Αναποδογύρισμα Στρώματος Κάθετα" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Ιστοσελίδα Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Στείλτε αναφορά σφάλματος" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Μεταφράστε Αυτή Την Εφαρμογή" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Αποθήκευση όλων" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Κλείσιμο Όλων" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Νέο..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Νέα αποτύπωση οθόνης" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Άνοιγμα..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Άνοιγμα Πρόσφατου" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Κλείσιμο" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Αποθήκευση" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Αποθήκευση Ως" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Εκτύπωση" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Έξοδος" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Νέο" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Άνοιγμα" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Προσθήκη Στρώματος" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Διαγραφή Στρώματος" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Αντιγραφή Στρώματος" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Εισαγωγή απο αρχείο..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Οριζόντια Αντιστροφή" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Κατακόρυφη Αντιστροφή" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Μετακίνηση Στρώματος Πάνω" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Μετακίνηση Στρώματος Κάτω" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Ιδιότητες Επιπέδου" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Εισαγωγή Απο Αρχείο" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Αποκοπή των Επιλεγμένων" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Ισοπέδωση" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Μεγέθυνση" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Σμίκρυνση" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Καλύτερο Ταίριασμα" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Εστίαση στην επιλογή" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Κανονικό Μέγεθος" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Γραμμή Εργαλείων" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Πίνακας Pixel" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Χάρακες" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Εικονοστοιχεία" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Ίντσες" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Εκατοστά" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Πλήρης Οθόνη" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Μονάδας Χάρακα" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Παράθυρο" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Αναίρεση" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Επαναφορά" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Αποκοπή" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Αντιγραφή" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Επικόλληση Σε Νέα Εικόνα" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Διαγραφή Επιλογής" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Επιλογή Αρχείου" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Αντιστροφή Επιλογής" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Επιλογή Όλων" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Αποεπιλογή Όλων" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Θέστε αριθμό χρωμάτων" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Διαγραφή Επιλογής" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Αποεπιλογή" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Άνοιγμα Αρχείου Παλέτας" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Αρχεία παλέτας (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Αποθήκευση Αρχείου Παλέτας" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Παλέττα Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Παλέττα Gimp (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Στρώμα" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "αντιγραφή" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Εργαλείο" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Πλήκτρο συντόμευσης" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Αντικατάσταση" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} εικόνα ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Γενικά" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Ποσότητα" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Γωνία" #: CloudsEffect dialog msgid "Antialias" msgstr "Εξομάλυνση" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Φωτεινότητα" #: PixelateData dialog msgid "Brush Size" msgstr "Μέγεθος Βούρτσας" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Μέγεθος κελιού" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Στο κέντρο" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Τραχύτητα" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Εύρος χρώματος" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "Χρωματισμός" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Αντίθεση" #: FragmentEffect dialog msgid "Coverage" msgstr "Κάλυψη" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Απόσταση" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Αντιμετώπιση κενού χώρου" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Συντελεστής" #: InkSketchEffect dialog msgid "Fragments" msgstr "Τεμάχια" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Ένταση" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Φωτισμός" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Μετατόπιση" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Μέγεθος Μύτης Μολυβιού" #: CloudsEffect dialog msgid "Percentile" msgstr "Ποσοστημόριο" #: RadialBlurEffect dialog msgid "Power" msgstr "Ισχύς" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Ποιότητα" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Περιστροφή" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Ποσοστό κορεσμού" #: CloudsEffect dialog msgid "Scale" msgstr "Κλίμακα" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Απαλότητα" #: OutlineEffect dialog msgid "Strength" msgstr "Ισχύς" #: TileEffect dialog msgid "Thickness" msgstr "Πάχος" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Μέγεθος στοιχείων" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Θερμότητα" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Υπόδειξη: Για καλύτερα αποτελέσματα, χρησημοποιείστε τα εργαλεία επιλογής σε " "κάθε μάτι." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Επεξεργαστής εικόνων" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Δημιουργήστε και επεξεργαστείτε εικόνες εύκολα" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/en_AU.po0000664000175000017500000014100611747026475015610 0ustar00cameroncameron00000000000000# English (Australia) translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 03:25+0000\n" "Last-Translator: Cameron White \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto Level" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invert Colours" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Levels" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterise" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Black and White" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curves" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Input Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Output Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Reset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Red" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Green" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blue" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Linked" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transfer Map" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosity" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Red " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blue " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduce Noise" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Noise" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Blurs" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Clouds" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Render" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Unfocus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Red Eye Removal" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Photo" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glow" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Edge Detect" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylize" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radial Blur" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frosted Glass" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distort" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oil Painting" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia Fractal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Soften Portrait" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Ink Sketch" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Emboss" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Sharpen" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Add Noise" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tile Reflection" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelate" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Motion Blur" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polar Inversion" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bulge" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom Blur" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Outline" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Twist" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Random Noise" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reseed" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Choose Primary Color" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Choose Secondary Color" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Choose Palette Color" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rectangle Select" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Clone Stamp" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Click to select region of similar color." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Drag the selection to move selection outline." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linear Gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial Gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Conical Gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Flood Mode" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contiguous" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Paintbrush" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Left click to draw with primary color, right click to draw with secondary " "color." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pencil" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipse Select" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Line" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Eraser" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Left click to erase to transparent, right click to erase to secondary color. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Color Picker" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "Left click to set primary color. Right click to set secondary color." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "After select" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Do not switch tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Click and drag to draw a rounded rectangle (right click for secondary " "colour). Hold shift to constrain to a square." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Decrease rectangle's corner radius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Increase rectangle's corner radius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Drag the selection to move selected content." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolor" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Left click to replace the secondary color with the primary color." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Left click to place cursor, then type desired text. Text color is primary " "color." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Bold" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Italic" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Underline" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Left Align" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Center Align" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Right Align" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Text Style" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal and Outline" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Fill Background" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Outline width" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Decrease outline size" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Increase outline size" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Brush width" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Decrease brush size" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Increase brush size" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fill Style" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Outline Shape" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fill Shape" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Circles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grid" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Squares" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso Select" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Click and drag to draw the outline for a selection area." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Freeform Shape" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "About" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edit" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_View" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Image" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Layers" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Adjustments" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_cts" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Window" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Tool Windows" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Help" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Tools" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palette" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Layers" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "History" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Hide" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Auto Hide" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Take Screenshot" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "If you don't save, all changes will be permanently lost." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Close without saving" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Resize Palette" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "New palette size:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Layer Opacity" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Rename Layer" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Hide Layer" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Show Layer" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Layer Properties" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Open Image File" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Image files" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "All files" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Save Image File" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "A file named \"{0}\" already exists. Do you want to replace it?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Quality: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributors to this Release" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Previous Contributors" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Rafael Neri https://launchpad.net/~rafepel" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Translated by:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Using some icons from:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "About Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Version Info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "License" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 License." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Name:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacity:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Resize Canvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "By percentage:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "By absolute size:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Width:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Height:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Maintain aspect ratio" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Anchor:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Resize Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "New Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "New Image Size " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Rendering Effect" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Background" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Open Image" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Paste" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotate 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Flip Image Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Flip Image Vertical" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Counter-Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Flip Layer Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Flip Layer Vertical" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Website" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "File a Bug" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Translate This Application" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Save All" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Close All" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "New..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "New Screenshot..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Open..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Open Recent" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Close" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Save" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Save As..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Print" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Quit" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "New" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Open" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Add New Layer" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Delete Layer" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Import from File..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Flip Horizontal" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Flip Vertical" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Move Layer Up" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Move Layer Down" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Layer Properties..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Import From File" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Crop to Selection" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Auto Crop" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Resize Image..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Flatten" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom In" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom Out" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Best Fit" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal Size" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Toolbar" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixel Grid" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Rulers" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inches" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeters" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fullscreen" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Ruler Units" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Window" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Undo" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Redo" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cut" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copy" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Delete Selection" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fill Selection" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invert Selection" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Select All" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deselect All" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Reset to Default" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Set Number of Colors" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Erase Selection" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deselect" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Open Palette File" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Save Palette File" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Layer" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copy" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Tool" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Shortcut key" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal Blending" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overwrite" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing On" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Amount" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angle" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blend Mode" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brightness" #: PixelateData dialog msgid "Brush Size" msgstr "Brush Size" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cell Size" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Center Offset" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centered" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Coarseness" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Color Range" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Color Saturation" #: GlowEffect dialog msgid "Coloring" msgstr "Coloring" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Coverage" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distance" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Edge Behavior" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragments" #: TileEffect dialog msgid "Ink Outline" msgstr "Ink Outline" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensity" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Lighting" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Offset" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentile" #: RadialBlurEffect dialog msgid "Power" msgstr "Power" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Quality" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Saturation percentage" #: CloudsEffect dialog msgid "Scale" msgstr "Scale" #: SoftenPortraitData dialog msgid "Seed" msgstr "Seed" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Softness" #: OutlineEffect dialog msgid "Strength" msgstr "Strength" #: TileEffect dialog msgid "Thickness" msgstr "Thickness" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tile Size" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Warmth" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Hint: For best results, first use selection tools to select each eye." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Image Editor" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Easily create and edit images" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Images" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Image too large" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO files can not be larger than 255 x 255 pixels." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "The image being pasted is larger than the canvas size. What would you like " "to do?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expand canvas" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Layer Shown" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Layer Hidden" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/en_CA.po0000664000175000017500000014423311747026475015573 0ustar00cameroncameron00000000000000# English (Australia) translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 07:10+0000\n" "Last-Translator: Cameron White \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto Level" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invert Colours" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Levels" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterise" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Black and White" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curves" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Input Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Output Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Reset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Red" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Green" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blue" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Linked" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transfer Map" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosity" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Red " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blue " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduce Noise" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Noise" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Blurs" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Clouds" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Render" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Unfocus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Red Eye Removal" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Photo" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glow" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Edge Detect" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylize" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radial Blur" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frosted Glass" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distort" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oil Painting" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia Fractal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Soften Portrait" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Ink Sketch" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Emboss" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Sharpen" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Add Noise" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tile Reflection" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelate" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Motion Blur" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polar Inversion" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bulge" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom Blur" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Outline" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Twist" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Random Noise" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reseed" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Choose Primary Color" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Choose Secondary Color" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Choose Palette Color" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rectangle Select" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Clone Stamp" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Click to select region of similar color." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Drag the selection to move selection outline." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linear Gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial Gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Conical Gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Flood Mode" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contiguous" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Paintbrush" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Left click to draw with primary color, right click to draw with secondary " "color." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pencil" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipse Select" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Line" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Eraser" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Left click to erase to transparent, right click to erase to secondary color. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Color Picker" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "Left click to set primary color. Right click to set secondary color." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "After select" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Do not switch tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Click and drag to draw a rounded rectangle (right click for secondary " "colour). Hold shift to constrain to a square." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Decrease rectangle's corner radius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Increase rectangle's corner radius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Drag the selection to move selected content." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolor" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Left click to replace the secondary color with the primary color." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Left click to place cursor, then type desired text. Text color is primary " "color." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Bold" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Italic" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Underline" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Left Align" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Center Align" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Right Align" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Text Style" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal and Outline" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Fill Background" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Outline width" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Decrease outline size" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Increase outline size" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Brush width" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Decrease brush size" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Increase brush size" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fill Style" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Outline Shape" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fill Shape" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Circles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grid" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Squares" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso Select" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Click and drag to draw the outline for a selection area." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Freeform Shape" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "About" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edit" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_View" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Image" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Layers" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Adjustments" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_cts" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Window" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Tool Windows" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Help" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Tools" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palette" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Layers" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "History" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Hide" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Auto Hide" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Take Screenshot" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "If you don't save, all changes will be permanently lost." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Close without saving" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Resize Palette" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "New palette size:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Layer Opacity" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Rename Layer" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Hide Layer" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Show Layer" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Layer Properties" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Open Image File" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Image files" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "All files" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Save Image File" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "A file named \"{0}\" already exists. Do you want to replace it?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Quality: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributors to this Release" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Previous Contributors" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Rafael Neri https://launchpad.net/~rafepel" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Translated by:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Using some icons from:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "About Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Version Info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "License" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 License." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Name:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacity:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Resize Canvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "By percentage:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "By absolute size:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Width:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Height:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Maintain aspect ratio" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Anchor:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Resize Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "New Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "New Image Size " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Rendering Effect" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Background" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Open Image" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Paste" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotate 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Flip Image Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Flip Image Vertical" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Counter-Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Flip Layer Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Flip Layer Vertical" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Website" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "File a Bug" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Translate This Application" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Save All" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Close All" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "New..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "New Screenshot..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Open..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Open Recent" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Close" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Save" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Save As..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Print" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Quit" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "New" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Open" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Add New Layer" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Delete Layer" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Import from File..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Flip Horizontal" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Flip Vertical" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Move Layer Up" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Move Layer Down" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Layer Properties..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Import From File" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Crop to Selection" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Auto Crop" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Resize Image..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Flatten" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom In" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom Out" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Best Fit" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal Size" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Toolbar" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixel Grid" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Rulers" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inches" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeters" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fullscreen" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Ruler Units" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Window" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Undo" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Redo" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cut" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copy" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Delete Selection" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fill Selection" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invert Selection" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Select All" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deselect All" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Reset to Default" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Set Number of Colors" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Erase Selection" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deselect" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Open Palette File" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Save Palette File" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Layer" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copy" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Tool" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Shortcut key" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal Blending" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overwrite" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing On" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Amount" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angle" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blend Mode" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brightness" #: PixelateData dialog msgid "Brush Size" msgstr "Brush Size" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cell Size" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Center Offset" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centered" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Coarseness" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Color Range" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Color Saturation" #: GlowEffect dialog msgid "Coloring" msgstr "Coloring" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Coverage" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distance" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Edge Behavior" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragments" #: TileEffect dialog msgid "Ink Outline" msgstr "Ink Outline" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensity" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Lighting" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Offset" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentile" #: RadialBlurEffect dialog msgid "Power" msgstr "Power" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Quality" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Saturation percentage" #: CloudsEffect dialog msgid "Scale" msgstr "Scale" #: SoftenPortraitData dialog msgid "Seed" msgstr "Seed" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Softness" #: OutlineEffect dialog msgid "Strength" msgstr "Strength" #: TileEffect dialog msgid "Thickness" msgstr "Thickness" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tile Size" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Warmth" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Hint: For best results, first use selection tools to select each eye." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Image Editor" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Easily create and edit images" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Images" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Image too large" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO files can not be larger than 255 x 255 pixels." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "The image being pasted is larger than the canvas size. What would you like " "to do?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expand canvas" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Layer Shown" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Layer Hidden" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Add-in Manager" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Multiple selection:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Enable" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Disable" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "No selection" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Available in repository:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Update available" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "This add-in can't be loaded due to missing dependencies" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Required: {0} v{1}, found v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Missing: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Installed version" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Repository version" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Download size" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "The following depedencies required by this add-in are not available:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installation cancelled" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Some of the required add-ins were not found" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installation failed" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Installed" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Updates" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "Gallery" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "All repositories" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Manage Repositories..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} update available" msgstr[1] "{0} updates available" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Updating repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Install Add-in Package" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Add-in packages" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "No add-ins found" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Add-in" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Other" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Uninstall" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "The following packages will be uninstalled:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "The selected add-ins can't be installed because there are dependency " "conflicts." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "The following packages will be installed:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (in user directory)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "The following packages need to be uninstalled:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "The following dependencies could not be resolved:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Are you sure you want to cancel the installation?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Installing Add-ins" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "The installation failed!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "The installation has completed with warnings." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Uninstalling Add-ins" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "The uninstallation failed!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "The uninstallation has completed with warnings." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registering repository" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "Exception occurred: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "More information" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Install..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Update" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Uninstall..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Additional extensions are required to perform this operation." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "The following add-ins will be installed:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "No updates found" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Refresh" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Update All" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repository:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Install from file..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "Details" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Install" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Add-in Repository Management" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Add New Repository" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Select the location of the repository you want to register:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Register an on-line repository" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "Url:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Register a local repository" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Path:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Browse..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Progress" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(provided by {0})" pinta-1.3/po/en_GB.po0000664000175000017500000014146111747026475015600 0ustar00cameroncameron00000000000000# English (United Kingdom) translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 03:24+0000\n" "Last-Translator: Cameron White \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto Level" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invert Colours" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Levels" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterise" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Black and White" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curves" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Input Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Output Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Reset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Red" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Green" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blue" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Linked" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transfer Map" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosity" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Red " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blue " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduce Noise" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Noise" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Blurs" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Clouds" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Render" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Unfocus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Red Eye Removal" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Photo" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glow" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Edge Detect" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylise" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radial Blur" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frosted Glass" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distort" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oil Painting" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia Fractal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Soften Portrait" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Ink Sketch" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Emboss" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Sharpen" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Add Noise" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tile Reflection" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelate" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Motion Blur" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polar Inversion" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bulge" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom Blur" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Outline" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Twist" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Random Noise" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reseed" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Choose Primary Colour" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Choose Secondary Colour" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Choose Palette Colour" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rectangle Select" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Clone Stamp" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Click to select region of similar colour." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Click and drag to draw a rectangle (right click for secondary colour). Hold " "shift to constrain to a square." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Drag the selection to move selection outline." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Click and drag to draw gradient from primary to secondary colour. Right " "click to reverse." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linear Gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial Gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Conical Gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Flood Mode" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contiguous" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Paintbrush" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Left click to draw with primary colour, right click to draw with secondary " "colour." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pencil" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Left click to draw freeform, one-pixel wide lines with the primary colour, " "right click to use the secondary colour." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipse Select" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Line" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Eraser" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Left click to erase to transparent, right click to erase to secondary " "colour. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Colour Picker" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Left click to set primary colour. Right click to set secondary colour." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "After select" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Do not switch tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Click and drag to draw a rounded rectangle (right click for secondary " "colour). Hold shift to constrain to a square." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Decrease rectangle's corner radius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Increase rectangle's corner radius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Drag the selection to move selected content." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolour" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Left click to replace the secondary colour with the primary colour." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Left click to fill a region with the primary colour, right click to fill " "with the secondary colour." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Click and drag to draw an ellipse (right click for secondary colour). Hold " "shift to constrain to a circle." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Left click to place cursor, then type desired text. Text colour is primary " "colour." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Bold" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Italic" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Underline" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Left Align" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Centre Align" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Right Align" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Text Style" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal and Outline" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Fill Background" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Outline width" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Decrease outline size" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Increase outline size" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Brush width" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Decrease brush size" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Increase brush size" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fill Style" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Outline Shape" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fill Shape" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Circles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grid" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Squares" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso Select" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Click and drag to draw the outline for a selection area." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Free-form Shape" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "About" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edit" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_View" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Image" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Layers" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Adjustments" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_cts" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Window" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Tool Windows" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Help" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Tools" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palette" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Layers" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "History" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Hide" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Auto Hide" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Take Screenshot" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "If you don't save, all changes will be permanently lost." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Close without saving" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Resize Palette" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "New palette size:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Layer Opacity" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Rename Layer" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Hide Layer" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Show Layer" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Layer Properties" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Open Image File" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Image files" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "All files" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Save Image File" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "A file named \"{0}\" already exists. Do you want to replace it?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Quality: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributors to this Release" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Previous Contributors" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Anthony Scarth https://launchpad.net/~maroubal2\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Rafael Neri https://launchpad.net/~rafepel\n" " Thomas Kluyver https://launchpad.net/~takluyver\n" " nsx98 https://launchpad.net/~nsx98\n" " saperr.pmi@gmail.com https://launchpad.net/~saperr-pmi" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Translated by:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Using some icons from:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "About Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Version Info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licence" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 Licence." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Name:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacity:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Resize Canvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "By percentage:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "By absolute size:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Width:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Height:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Maintain aspect ratio" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Anchor:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Resize Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "New Image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "New Image Size " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Rendering Effect" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Background" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Open Image" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Paste" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotate 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Flip Image Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Flip Image Vertical" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Anti-Clockwise" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Flip Layer Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Flip Layer Vertical" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Website" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "File a Bug" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Translate This Application" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Save All" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Close All" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "New..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "New Screenshot..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Open..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Open Recent" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Close" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Save" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Save As..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Print" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Quit" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "New" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Open" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Add New Layer" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Delete Layer" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Import from File..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Flip Horizontal" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Flip Vertical" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Move Layer Up" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Move Layer Down" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Layer Properties..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Import From File" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Crop to Selection" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Auto Crop" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Resize Image..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Flatten" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom In" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom Out" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Best Fit" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal Size" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Toolbar" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixel Grid" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Rulers" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inches" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetres" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fullscreen" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Ruler Units" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Window" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Undo" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Redo" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cut" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copy" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Delete Selection" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fill Selection" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invert Selection" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Select All" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deselect All" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Reset to Default" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Set Number of Colours" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Erase Selection" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deselect" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Open Palette File" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Save Palette File" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Layer" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copy" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Tool" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Shortcut key" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal Blending" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overwrite" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing On" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Amount" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angle" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blend Mode" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brightness" #: PixelateData dialog msgid "Brush Size" msgstr "Brush Size" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cell Size" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centre Offset" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centred" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Coarseness" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Colour Range" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Colour Saturation" #: GlowEffect dialog msgid "Coloring" msgstr "Colouring" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Coverage" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distance" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Edge Behaviour" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragments" #: TileEffect dialog msgid "Ink Outline" msgstr "Ink Outline" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensity" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Lighting" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Offset" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentile" #: RadialBlurEffect dialog msgid "Power" msgstr "Power" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Quality" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Saturation percentage" #: CloudsEffect dialog msgid "Scale" msgstr "Scale" #: SoftenPortraitData dialog msgid "Seed" msgstr "Seed" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Softness" #: OutlineEffect dialog msgid "Strength" msgstr "Strength" #: TileEffect dialog msgid "Thickness" msgstr "Thickness" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tile Size" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Warmth" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Use low quality for previews, small images and small angles. Use high " "quality for final quality, large images and large angles." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Hint: For best results, first use selection tools to select each eye." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Image Editor" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Easily create and edit images" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Obrazy" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Image too large" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO files can not be larger than 255 x 255 pixels." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "The image being pasted is larger than the canvas size. What would you like " "to do?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expand canvas" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Layer Shown" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Layer Hidden" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/eo.po0000664000175000017500000014125011747026475015225 0ustar00cameroncameron00000000000000# Esperanto translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-03-09 11:32+0000\n" "Last-Translator: Michael Moroni \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Aŭtomata Nivelo" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inversigi la kolorojn" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveloj" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepiaĵo" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Afiŝigi" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Nigra kaj blanka" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurboj" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brileco / Kontrasto" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Koloro / Satureco" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ĝustigo de kolorniveloj" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Eniga Histogramo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Enigo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Eligo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Eliga Histogramo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Aŭtomata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Reagordi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Ruĝo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verdo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Bluo" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Kunligita" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transloka Mapo" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RVB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Heleco" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Ruĝo " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Bluo " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Konsileto: dekstre alklaku forigi regajn punktojn." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Malpliigi perturbon" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Perturbo" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmento" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Malfokusoj" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nuboj" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Bildigi" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Malfokusi" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Ruĝokula forigilo" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktalo" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Lumbrilo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Eltrovi Randojn" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stili" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radia Malfokusigi" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Malpolurita vitro" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distordi" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Petrola pentraĵo" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artisma" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia fraktalo" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Moligi portreton" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Trankviliĝo" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Inkskizo" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediano" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Reliefigi" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaŭsa Malfokuso" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Netita" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Aldonu Perturbon" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Kahela konsidero" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Bilderigi" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Moviĝo malklarigi" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polusa Inversigo" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Tuberi" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoma-malfokusigi" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Krajonskizo" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Konturo" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Tvisti" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etikedo1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etikedo" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Hazarda Perturbo" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Resemi" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Elekti primaran koloron" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Elekti duarangan koloron" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Elekti paletron koloron" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rektangula elekto" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klaku kaj tiru elekti rektangulon. Tenu majuskliga klavo limigi kvadraton." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kloni poŝtmarkon" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Tenu stirklavon kaj klaku maldekstran musbutonon fiksi devenon, tiam farbi, " "klaku maldekstran musbutonon." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Sorĉbastona elekto" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klak elekti regionon de simila koloro." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rektangulo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klaku kaj tiru konturi rektangulon (klaku dekstran musbutonon por duaranga " "koloro). Tenu majuskliga klavo limigi kvadraton." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Movi elekton" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Triu elekton movi elektkonturon." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Kolortransiro" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klaku kaj tiru konturi kolortransiron de primara al duaranga koloro. Klaku " "dekstran musbutonon retroirigi." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linia kolortransiro" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linia reflektita kolortransiro" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linia karoo kolortransiro" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiusa kolortransiro" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Konusa kolortransiro" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Diluva modalo" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Samlima" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Malloka" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolereco" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Peniko" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Klaku maldekstran musbutonon konturi kun la primara koloro, klaku dekstran " "musbutonon konturi kun la duaranga koloro." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Krajono" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Maldekstre alklaku desegni libermane, unu-bilderaj larĝaj linoj kun la " "primara koloro, dekstre alklaku uzi la duarangan koloron." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elipsa elekto" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Alklaku kaj tiru desegni elipsan zono. Tenu majuskliga klavo limi al cirklo." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linio" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Skrapgumo" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Maldekstre alklaku viŝi kaj fari travideblata, dekstre alklaku viŝi al " "duarangan koloron. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Balai" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Alklaku kaj tiru navigi bildon." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Kolorelektilo" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Maldekstre alklaku agordi primaran koloron. Dekstre alklaku agordi duaranga " "koloron." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Postelekto" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne ŝalti ilon" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Alŝalti al antaŭa ilo" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Alŝalti al krajonilo" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Ronda rektangulo" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radiuso" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Malkreskigi angulradiuso de ortangulo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Kreskigi angulradiuso de ortangulo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Movi elektitan bilderojn" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Tiru elektitan zonon movi elektitan enhavon." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Rekolori" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Maldekstre alklaku anstataŭigi duaranga koloro kun la primara koloro." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farbujo" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Maldekstre alklaku pleni region kun la primara koloro, dekstre alklaku pleni " "kun la duaranga koloro." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipso" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Alklaku kaj tiru desegni elipson (dekstre alklaku por duaranga koloro). Tenu " "majuskliga klavo limi al cirklo." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Teksto" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Maldekstre alklaku meti kursoro, tiam tajpu tekston. Tekstkoloro estas " "primara koloro." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Tiparo" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Grase" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursive" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Substrekite" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Maldekstra ĝisrandigo" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Horizontala centrigi" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Ĝisrandigi dekstren" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Teksta stilo" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normala" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normala kaj kontura" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Kontura larĝo" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Malkreski konturan grandon" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Kreski konturan grandon" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Brush width" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Malkreski peniklarĝon" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Kreski peniklarĝon" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Pleniga stilo" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Konturformo" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Pleniga formo" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Pleniga kaj Kontura Formo" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cirkloj" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Krado" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kvadratoj" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Ŝprucetigi" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zomi" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Maldekstre alklaku enzomi. Dekstra alklaku elzomi. Alklaku kaj tiru enzomi " "zonon." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Kaptoŝnuro" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Alklaku kaj tiru desegni konturon por elektazono." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Libermana formo" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Pri" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Dosiero" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "R_edakti" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vidi" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "B_ildo" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "Tavo_loj" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Ĝustigo" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efekto_j" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fenestro" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Ilaj fenestroj" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Helpo" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Iloj" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paletro" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumentoj" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Tavoloj" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Ŝanĝohistorio" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Kaŝi" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Doki" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Aŭtomate kaŝi" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Endokigeble" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Glita" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Krei ekrankopion" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Prokrasto en sekundoj antaŭ ekrankopiado:" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Ĉu vi volas konservi ŝanĝoj de bildo \"{0}\" antaŭ fermado?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Se vi ne konservas, ĉiuj ŝanĝoj foriĝos konstante eterne." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Fermi sen konservado" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Regrandigi paletron" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Grando de nova paletro:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Alglui en nova tavolo" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Tavola opakeco" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renomi tavolon" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Kaŝi tavolon" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Malkaŝi tavolon" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Tavolaj atributoj" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Malfermi bildodosieron" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Bildodosieroj" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Ĉiuj dosieroj" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Konservi bildodosieron" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne subtenas konservadon de bildoj en tiu dosierformo." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Eraro" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Dosiero nomita \"{0}\" ekzistas jam. Ĉu vi volas anstataŭigas ĝin?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Dosiero ekzistas jam en \"{1}\". Daŭrigado anstataŭigos ĝiajn enhavojn." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Nivelo de JPEG-a kvalito" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalito: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titolo" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versio" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Vojo" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Kontribuantoj al tiu aldono" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Antaŭaj Kontribuantoj" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Colin Dean https://launchpad.net/~colindean\n" " Michael Moroni https://launchpad.net/~airon90\n" " RedGuff https://launchpad.net/~domsau2" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tradukita de:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Devenita de verko de Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Uzas iuj bildsimboloj de:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Pri Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versiainformoj" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Permesilo" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Aldonita sub la MIT X11 Permesilo" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Kopirajto" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "de la kontribuantoj al Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nomo:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Videbla" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opakeco:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Regrandigi areaĵon" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "De elcento:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "De absoluta elcento:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Larĝo:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "bilderoj" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Alto:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Prizorgi proporcio" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ankro:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Regrandigi bildon" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova bildo" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Grando de nova bildo " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "numero de fadenoj uzi por bildigo" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Agordnomo" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Bildiga efekto" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Malkonservita bildo {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fono" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Malfermi bildon" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Dosiero ne malfermebla: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Alglui" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Turni 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Renversi bildon horizontale" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Renversi bildon vertikale" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Turni 90° dekstrume" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Turni 90° maldekstrume" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Renversi tavolon horizontale" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Renversi tavolon vertikale" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Fini bilderojn" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta retejo" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Enarkivigi cimon" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduki tiun aplikaĵon" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Konservi ĉion" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Fermi ĉiujn" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nova..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova ekrankopio..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Malfermi..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Malfermi lastajn" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Fermi" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Konservi" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Konservi kiel..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Printi" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Ĉesi" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nova" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Malfermi" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Alkonstrui novan tavolon" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Forigi tavolon" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duobligi tavolon" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Kunfandi tavolon malsupre" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importi de dosiero..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Renversi horizontale" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Renversi vertikale" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Movi tavolon supre" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Movi tavolon malsupre" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Tavolaj atributoj..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importi de dosiero" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Stuci al zono" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Unutavoligi bildon" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Enzomi" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Elzomi" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Plej bona adapto" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zomi al zono" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normala grando" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Ilobreto" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Bilderkrado" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Mezuriloj" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Bilderoj" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Coloj" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetroj" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Tutekrane" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Mezurila unuoj" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fenestro" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Malfari" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Refari" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Eltondi" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopii" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Glui en nova bildo" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Forigi zonon" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Plenigi zonon" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inversigi zonon" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Elekti ĉion" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Malelekti ĉion" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Reŝargi defaŭltan" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Agordi numeron de koloroj" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Viŝi zonon" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Malelekti" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Malfermi paletrodosieron" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletrodosieron (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Paletrodosieron ne malfermebla: {0}.\n" "Bonvolu kontroli ke vi provas malfermi validan GIMP-a aŭ Paint.NET-a " "paletron." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Konservi paletrodosieron" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-a paletro (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP-a paletro (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Tavolo" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopio" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Ilo" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Fulmoklavo" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normala miksiĝado" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Anstataŭigi" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Uzi glatigo" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Ne uzi glatigo" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} bildo ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Ĝenerala" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Kvanto" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angulo" #: CloudsEffect dialog msgid "Antialias" msgstr "Glatigo" #: GlowEffect dialog msgid "Blend Mode" msgstr "Miksiĝada modo" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Heleco" #: PixelateData dialog msgid "Brush Size" msgstr "Penika grado" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Ĉela grado" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centradeŝovo" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrigita" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Malglateco" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Koloramplekso" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Kolorsatureco" #: GlowEffect dialog msgid "Coloring" msgstr "Kolorsatureco" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrasto" #: FragmentEffect dialog msgid "Coverage" msgstr "Vasteco" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distanco" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Randa agmaniero" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktoro" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmentoj" #: TileEffect dialog msgid "Ink Outline" msgstr "inkokonturo" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenseco" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Lumigo" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Deŝovo" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Krajonekstremaĵa grando" #: CloudsEffect dialog msgid "Percentile" msgstr "Elcentero" #: RadialBlurEffect dialog msgid "Power" msgstr "Energio" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalito" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotacio" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Satureca elcento" #: CloudsEffect dialog msgid "Scale" msgstr "Skalo" #: SoftenPortraitData dialog msgid "Seed" msgstr "Semo" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Moleco" #: OutlineEffect dialog msgid "Strength" msgstr "Forto" #: TileEffect dialog msgid "Thickness" msgstr "Dikeco" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Kahela grado" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Varmeco" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Uzu malaltan kvaliton por aspektoj de la kreotaj bildoj, malgrandaj bildoj, " "kaj malgrandaj anguloj. Uzu altan kvaliton por fina kvalito, grandaj bildoj, " "kaj grandaj anguloj." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Konsileto: Por plej bona rezultoj, unue uzu elektilojn elekti ĉiun okulon." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Bildredaktilo" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Krei kaj redakti bildojn facile" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Bildredaktilo" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Bildoj" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Ne povas konservi nurlegan dosieron." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/es.po0000664000175000017500000015111111747026475015226 0ustar00cameroncameron00000000000000# Spanish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 08:35+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Nivel automático" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertir colores" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveles" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizar" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Blanco y negro" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curvas" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brillo y contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Matiz y saturación" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajuste de niveles" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histograma de entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Salida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histograma de salida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automático" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Restablecer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rojo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Azul" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Vinculado" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa de transferencia" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosidad" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rojo " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Azul " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Consejo: Pulse con el botón derecho para eliminar los puntos de control." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reducir ruido" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Ruido" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmento" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Desenfoques" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nubes" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderizar" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desenfocar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Quitar ojos rojos" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografía" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Brillo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detección de bordes" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizar" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Desenfoque radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Cristal congelado" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsionar" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintura al óleo" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artístico" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal de Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Suavizado de retrato" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relieve" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Boceto en tinta" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Valor medio" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Bajorrelieve" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Desenfoque gaussiano" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Nítido" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Añadir ruido" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Reflejo en mosaico" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelar" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Desenfoque de movimiento" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversión polar" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Abultar" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Desenfoque por zoom" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Boceto a lápiz" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorno" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Giro" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiqueta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiqueta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Ruido aleatorio" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reinicializar" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Elegir color primario" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Elegir color secundario" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Elegir colores de paleta" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Selección rectangular" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Pulse y arrastre para dibujar una selección rectangular. Mantenga presionada " "la tecla Mayús para que la forma sea un cuadrado." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Tampón de clonar" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+pulse para fijar origen, pulse para pintar." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Varita mágica" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Pulse para seleccionar una región de un color similar." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectángulo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Pulse y arrastre para dibujar un rectángulo (con el botón derecho para usar " "el color secundario). Mantenga presionada la tecla Mayús para que la forma " "sea un cuadrado." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover selección" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Arrastre la selección para mover su contorno." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Degradado" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Pulse y arrastre para dibujar un degradado del color primario al secundario. " "Pulse con el botón derecho para realizar la operación a la inversa." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Degradado lineal" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Degradado lineal reflejado" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Degradado lineal en diamante" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Degradado radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Degradado cónico" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Modo de llenado" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contiguo" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancia" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pincel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Pulse con el botón izquierdo para dibujar con el color primario, o bien con " "el botón derecho para dibujar con el color secundario." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Lápiz" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Pulse para dibujar líneas libres de un píxel de grosor con color primario, " "pulse con el botón derecho para usar el color secundario." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Selección elíptica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Pulse y arrastre para dibujar una selección elíptica. Mantenga presionada " "Mayús para que la forma sea un círculo." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Línea" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Pulse para dibujar con el color primario, pulse con el botón derecho para " "hacerlo con el color secundario. Mantenga presionada Mayús para ajustarse a " "los ángulos." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Borrador" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Pulse para borrar con transparencia, use el botón derecho para borrar con el " "color secundario. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Desplazar" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Pulse y arrastre para desplazarse por la imagen." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Selector de color" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Pulse con el botón izquierdo para establecer el color primario, o bien con " "el botón derecho para establecer el color secundario." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Tras selección" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "No cambiar herramienta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Usar herramienta anterior" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Usar lápiz" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rectángulo redondeado" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Pulse y arrastre para dibujar un rectángulo redondeado (con el botón derecho " "para usar el color secundario). Mantenga presionada Mayús para que la forma " "sea un cuadrado." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radio" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Reducir radio de la esquina del rectángulo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Aumentar radio de la esquina del rectángulo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Desplazar píxeles seleccionados" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Arrastre la selección para desplazar el contenido." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolorear" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Pulse con el botón izquierdo para reemplazar el color secundario por el " "primario." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Cubo de pintura" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Pulse con el botón izquierdo para rellenar una región con el color primario, " "o bien con el botón derecho para usar el color secundario." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Pulse y arrastre para dibujar una elipse (con el botón derecho para usar el " "color secundario). Mantenga presionada la tecla Mayús para que la forma sea " "un círculo." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Texto" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Pulse para colocar el cursor, después teclee el texto deseado. El color del " "texto será el primario." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Tipografía" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Negrita" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Cursiva" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Subrayado" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Alinear a la izquierda" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Centrar texto" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Alinear a la derecha" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estilo de texto" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal y contorneado" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Rellenar el fondo" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Ancho de contorno" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Reducir tamaño de contorno" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Aumentar tamaño de contorno" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Grosor del pincel" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Reducir grosor del pincel" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Aumentar grosor del pincel" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Estilo de llenado" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Contornear forma" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Rellenar forma" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Rellenar y contornear forma" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Círculos" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Red" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Cuadrados" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Aerógrafo" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Pulse con el botón izquierdo para ampliar o con el botón derecho para " "reducir. Pulse y arrastre para hacer zoom en la selección." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Selección con lazo" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Seleccione y arrastre el contorno para seleccionar un área." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma libre" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Acerca de" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Archivo" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editar" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Ver" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imagen" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Capas" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Ajus_tes" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_ctos" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Ventana" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Ventanas de herramientas" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "Ay_uda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Herramientas" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documentos" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Capas" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historial" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ocultar" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Anclar" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Ocultar automáticamente" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoplable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotante" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Capturar pantalla" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Tiempo de retraso antes de tomar la captura (segs):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "¿Guardar los cambios en la imagen «{0}» antes de cerrar?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Si no guarda los cambios, éstos se perderán permanentemente." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Cerrar sin guardar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Redimensionar paleta" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nuevo tamaño de paleta:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Pegar en una capa nueva" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacidad de la capa" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renombrar capa" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ocultar capa" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Mostrar capa" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propiedades de la capa" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Abrir archivo de imagen" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Archivos de imagen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Todos los archivos" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Guardar archivo de imagen" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta no es compatible con el guardado de imágenes en este formato." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Ya existe un archivo llamado «{0}». ¿Quiere reemplazarlo?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "El archivo ya existe en «{1}». Al reemplazarlo se sobreescribirá su " "contenido." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "No se puede pegar la imagen" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "El portapapeles no contiene ninguna imagen." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calidad de JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Calidad: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versión" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ruta" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Colaboradores de esta versión" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Colaboradores anteriores" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Fitoschido https://launchpad.net/~fitoschido\n" " Francisco Camenforte Torres https://launchpad.net/~fct\n" " Jin Valiant https://launchpad.net/~jin-valiant\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Woakaon https://launchpad.net/~calango-42" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traducido por:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basado en el trabajo de Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Se usan algunos iconos de:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Acerca de Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Información de la versión" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licencia" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Publicado bajo la licencia MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "de los colaboradores de Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nombre:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacidad:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensionar el lienzo" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Por porcentaje:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Por tamaño absoluto:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Anchura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "píxeles" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Mantener relación de aspecto" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Anclaje:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Redimensionar la imagen" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Imagen nueva" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Tamaño de la imagen nueva " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "número de hilos que se usarán al renderizar" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efecto de renderizado" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagen sin guardar {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fondo" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Abrir imagen" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "No se pudo abrir el archivo: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Pegar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Girar 180º" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Voltear imagen horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Voltear imagen verticalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Girar 90º a la derecha" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Girar 90º a la izquierda" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Voltear capa horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Voltear capa verticalmente" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar píxeles" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Sitio web de Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Informar de un error" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traducir esta aplicación" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Guardar todo" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Cerrar todo" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nuevo…" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Captura de pantalla nueva…" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Abrir…" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Abrir recientes" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Cerrar" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Guardar" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Guardar como…" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimir" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Salir" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nuevo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Abrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Añadir capa nueva" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Eliminar capa" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicar capa" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Combinar las capas hacia abajo" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importar desde archivo…" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Voltear horizontalmente" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Voltear verticalmente" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Girar o acercar capa…" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Subir capa" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Bajar capa" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Propiedades de capa…" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importar desde archivo" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Recortar según la selección" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Autorecortar" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Redimensionar imagen…" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Redimensionar lienzo…" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Acoplar" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Ampliar" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Reducir" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Ajuste óptimo" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Ampliar a selección" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Tamaño normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra de herramientas" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Cuadrícula de píxeles" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Reglas" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Píxeles" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Pulgadas" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centímetros" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pantalla completa" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unidades de regla" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Ventana" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Deshacer" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Rehacer" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cortar" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiar" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Pegar en una imagen nueva" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Eliminar selección" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Rellenar la selección" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invertir la selección" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Seleccionar todo" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deseleccionar todo" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Restablecer valores predeterminados" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Configurar número de colores" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Borrar selección" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Anular la selección" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Abrir archivo de paleta" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Archivos de paletas (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "No se pudo abrir el archivo de paleta: {0}.\n" "Verifique que está tratando de abrir un archivo de paleta de GIMP o " "Paint.NET válido." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Guardar archivo de paleta" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta de Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta de GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Capa" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copiar" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Herramienta" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Atajo de teclado" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Mezclado normal" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Sobreescribir" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialias activado" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialias desactivado" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "Imagen {0} ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Cantidad" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ángulo" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modo de mezcla" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brillo" #: PixelateData dialog msgid "Brush Size" msgstr "Tamaño de pincel" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Tamaño de celda" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Desplazamiento desde el centro" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrado" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Aspereza" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Rango de color" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturación de color" #: GlowEffect dialog msgid "Coloring" msgstr "Coloreado" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "Cobertura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distancia" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportamiento del borde" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmentos" #: TileEffect dialog msgid "Ink Outline" msgstr "Contorno en tinta" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensidad" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Iluminación" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Desplazamiento" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Tamaño de la punta" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Potencia" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Calidad" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotación" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Porcentaje de saturación" #: CloudsEffect dialog msgid "Scale" msgstr "Escala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Semilla" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Suavidad" #: OutlineEffect dialog msgid "Strength" msgstr "Fuerza" #: TileEffect dialog msgid "Thickness" msgstr "Grosor" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tamaño del mosaico" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Calidez" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Use calidad baja para previsualizaciones, imágenes pequeñas y ángulos " "cortos. Use calidad alta para trabajos finales, imágenes grandes y ángulos " "grandes." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Consejo: para mejorar el resultado, seleccione primero cada ojo con las " "herramientas de selección." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor de imágenes" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Cree y edite imágenes fácilmente" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor de imágenes Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imágenes" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "No se puede guardar un archivo de solo lectura." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Imagen demasiado grande" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Los archivos ICO no pueden ser más grandes que 255×255 píxeles." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "La imagen es más grande que el lienzo" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "La imagen a pegar es más grande que el tamaño del lienzo. ¿Qué quiere hacer?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expandir lienzo" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "No redimensionar el lienzo" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Girar o acercar capa" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Capa mostrada" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Capa oculta" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Gestor de complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Selección múltiple:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Activar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Desactivar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "No hay selección" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Disponibles en el repositorio:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Actualización disponible" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "No se puede cargar este complemento porque faltan dependencias" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Requeridos: {0} v{1}, se encontraron v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Faltan: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versión instalada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Versión del repositorio" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Tamaño de descarga" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "No están disponibles las siguientes dependencias requeridas por este " "complemento:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instalación cancelada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "No se encontraron algunos de los complementos necesarios" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Falló la instalación" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Instalados" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Actualizaciones" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "Galería" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Todos los repositorios" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Gestionar repositorios…" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} actualización disponible" msgstr[1] "{0} actualizaciones disponibles" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Actualizando repositorio" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalar paquete de complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Paquetes de complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "No se han encontrado complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Complemento" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Otros" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Desinstalar" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Se desinstalarán los siguientes paquetes:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" "Hay otros complementos que dependen de los anteriores que también se " "desinstalarán:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Los complementos seleccionados no se pueden instalar porque hay conflictos " "de dependencias." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Se instalarán los siguientes paquetes:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (en la carpeta del usuario)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Se necesita desinstalar los siguientes paquetes:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "No se pudieron resolver las siguientes dependencias:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "¿Está seguro de que quiere cancelar la instalación?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Instalando complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Falló la instalación." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "La instalación se completó con avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Desinstalando complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Falló la desinstalación." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "La desinstalación se completó con avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registrando repositorio" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "Ocurrió una excepción: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Más información" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instalar…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Actualizar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Desinstalar…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Se necesitan extensiones adicionales para realizar esta operación." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Se instalarán los siguientes complementos:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "No se encontraron actualizaciones" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Actualizar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Actualizar todo" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repositorio:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instalar desde archivo…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "Detalles" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instalar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gestión del repositorio de complementos" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Añadir repositorio nuevo" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Seleccione la ubicación del repositorio que quiere registrar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registrar un repositorio en línea" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "URL:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Registrar un repositorio local" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Ruta:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Examinar…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Progreso" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(proporcionado por {0})" pinta-1.3/po/et.po0000664000175000017500000013073211747026475015235 0ustar00cameroncameron00000000000000# Estonian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2011-10-08 20:42+0000\n" "Last-Translator: tabbernuk \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Pööra värvid" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Tasemed" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Seepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterda" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Mustvalge" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurvid" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Heledus / kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Tasemete kohendamine" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Sisend" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Väljund" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automaatne" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Lähtesta" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Punane" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Roheline" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Sinine" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Seotud" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Valgustatus" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Punane " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Sinine " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Vihje: Kontrollpunktide eemaldamiseks kasuta paremklikki." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Vähenda müra" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Müra" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Hägud" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Pilved" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderdamine" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Punasilmsuse eemaldamine" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Helendus" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Serva tuvastamine" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stiliseeri" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiaalne hägu" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Külmunud klaas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Moonutus" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Õlimaal" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Kunstiline" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia fraktaal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljeef" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediaan" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Reljeefne" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussi hägu" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Teravustamine" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Lisa müra" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Suured pikslid" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Liikumishägu" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Poolsuste vahetamine" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Suurendushägu" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Pliiatsivisand" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Välisjoon" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "silt" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Juhuslik müra" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vali peamine värv" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Vali teine värv" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Vali paleti värv" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Nelinurkne valik" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Ristkülik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Liiguta valikut" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Värviüleminek" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiaalne üleminek" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Pidev" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Üleüldine" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerants" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pintsel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tüüp" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pliiats" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elliptiline valik" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Joon" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Kustukumm" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Värvivalija" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ära vaheta tööriista" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Vali eelmine tööriist" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Ümarnurkne ristkülik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Raadius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Vähenda nelinurga nurga raadiust" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Värvi üle" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Rasvane" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kaldkiri" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Allajoonitud" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Joonda vasakule" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Joonda keskele" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Joonda paremale" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Teksti stiil" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Tavaline" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Välisjoone laius" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Pintsli laius" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Vähenda pintsli suurust" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Vähenda pintsli suurust" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Täitmise stiil" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Ringjooned" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Koordinaatvõrk" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Ruudud" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Suurendus" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Programmist" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fail" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Muuda" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vaade" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Pilt" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Kihid" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efektid" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Aken" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Abiinfo" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Tööriistad" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Värvipalett" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumendid" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Kihid" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Ajalugu" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Peida" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Doki" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automaatne peitmine" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokitav" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Hõljuv" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Kuvatõmmise salvestamine" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Kui Sa ei salvesta, siis lähevad kõik muudatused jäädavalt kaotsi." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Sulge ilma salvestamata" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Kihi läbipaistvus" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Kihi nime muutmine" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Peida kiht" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Näita kihti" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Kihi omadused" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Ava pildifail" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Pildifailid" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Kõik failid" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Salvesta pildifail" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Viga" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvaliteet" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvaliteet: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pealkiri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versioon" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Rada" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Eraser https://launchpad.net/~rivozangov\n" " tabbernuk https://launchpad.net/~boamaod" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tõlkis:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versiooni info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Litsents" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autoriõigused" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nimi:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Nähtav" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Läbipaistvus:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Laius:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikslit" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Kõrgus:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Proportsioonide säilitamine" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ankur:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Pildi suuruse muutmine" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Uus pilt" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Taust" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Ava pilt" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Aseta" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Salvesta kõik" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Sulge kõik" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Uus..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Ava..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Sule" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Salvesta" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Salvesta kui..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Trüki" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Välju" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Uus" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Ava" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Lisa uus kiht" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Kustuta kiht" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Kihi dubleerimine" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Peegelda horisontaalselt" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Peegelda vertikaalselt" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Liiguta kiht ettepoole" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Liiguta kiht tahapoole" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Kihi omadused..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Impodi failist" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Kihtide ühendamine" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Suurenda sisse" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Vähenda" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Parim sobitus" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Suurenda valikuni" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normaalsuurus" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Tööriistariba" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikslid" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tollid" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Sentimeetrid" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Täisekraan" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Joonlaua ühikud" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Aken" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Võta tagasi" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Uuesti" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Lõika" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopeeri" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Kustuta valik" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Täida valik" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Pööra valik" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Vali kõik" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Eemalda kõik valikust" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Tühista valik" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Kiht" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "koopia" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Tööriist" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Ülekirjutamine" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Üldine" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Hulk" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Nurk" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Eredus" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Kärje suurus" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Keskel" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Värvivahemik" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Vahemaa" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvaliteet" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Pööramine" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "Skaleerimine" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "Tugevus" #: TileEffect dialog msgid "Thickness" msgstr "Paksus" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Soojus" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/eu.po0000664000175000017500000014401411747026475015234 0ustar00cameroncameron00000000000000# Basque translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-10 10:14+0000\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Maila automatikoa" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Alderantzikatu koloreak" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Mailak" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizatu" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Zuri-beltza" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurbak" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Distira / kontrastea" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Ñabardura / asetasuna" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Mailen doikuntza" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Sarrerako histograma" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Sarrera" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Irteera" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Irteerako histograma" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatikoa" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Berrezarri" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Gorria" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Berdea" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Urdina" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Lotua" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transferentzia-mapa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Argitasuna" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Gorria " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Urdina " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Iradokizuna: Egin klik eskuineko botoiarekin kontrol-puntuak kentzeko." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Murriztu zarata" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Zarata" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Zatikatu" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Lausotzeak" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Hodeiak" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Errendatu" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desenfokatu" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Begi gorriak kentzea" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Argazkia" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-en fraktala" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Dirdira" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Ertz-detekzioa" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizatu" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Lausotze erradiala" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Beira izoztua" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distortsioa" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olioz pintatu" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistikoa" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-ren fraktala" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Erretratu leuna" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Erliebea" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Tinta-zirriborroa" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Bozeldu" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gauss-en lausotzea" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Zorroztu" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Gehitu zarata" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Mosaiko-islapena" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelatu" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Mugimendu-lausotzea" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Alderantzikatze polarra" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Konkortu" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom-lausotzea" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Arkatz-zirriborroa" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Eskema sortu" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Bihurritu" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiketa" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Ausazko zarata" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Hazi berria eman" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Hautatu kolore nagusia" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Hautatu bigarren mailako kolorea" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Hautatu paletako kolorea" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Laukizuzen bidezko hautapena" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Egin klik eta arrastatu laukizuzen-formako hautapena marrazteko. Mantendu " "Shift sakatuta laukia egiteko." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonatze-zigilua" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-ezkerreko klik jatorria ezartzeko, ezkerreko klik margotzeko." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Makila magikoaren bidezko hautapena" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Egin klik antzeko kolorea duen eskualdea hautatzeko" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Laukizuzena" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Egin klik eta arrastatu laukizuzena marrazteko (eskuineko klik-a bigarren " "mailako kolorea erabiltzeko). Mantendu Shift sakatuta lauki bat marrazteko." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mugitu hautapena" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Arrastatu hautapena hautapenaren ertza mugitzeko" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradientea" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Egin klik eta arrastatu kolore nagusitik bigarren mailako kolorera doan " "gradientea marrazteko. Eskuineko klik-a alderantzikatzeko." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradiente lineala" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradiente lineal isladatua" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Diamante-formako gradiente lineala" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradiente erradiala" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradiente konikoa" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Betegarri-modua" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Albokoa" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globala" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerantzia" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pintzela" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Ezkerreko klik-a kolore nagusiarekin marrazteko, eskuineko klik-a bigarren " "mailako kolorearekin marrazteko." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Mota" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Arkatza" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Ezkerreko klik forma librea marrazteko, pixel bateko zabaleradun lerroak " "kolore nagusiarekin, eskuineko klik bigarren mailako kolorea erabiltzeko." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elipse-formako hautapena" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Egin klik eta arrastatu hautapen eliptikoa marrazteko. Mantendu Shift " "sakatuta zirkulua egiteko." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Lerroa" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Egin klik ezkerreko botoiarekin kolore nagusia margotzeko, eskuineko klik " "bigarren mailako kolorerako. Mantendu Shift sakatuta angeluetara atxikitzeko." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Borragoma" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Ezkerreko klik gardenera ezabatzeko, eskuineko klik bigarren mailako " "kolorera ezabatzeko. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Desplazamendua" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Egin klik eta arrastatu irudian mugitzeko." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Kolore-hautatzailea" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Ezkerreko klik-a kolore nagusia ezartzeko. Eskuineko klik-a bigarren mailako " "kolorea ezartzeko." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Hautaketaren ondoren" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ez aldatu tresnaz" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Aldatu aurreko tresnara" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Aldatu Arkatza tresnara" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Laukizuzen biribildua" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Erradioa" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Txikitu laukizuzenaren izkinen erradioa" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Handitu laukizuzenaren izkinen erradioa" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Mugitu hautatutako pixelak" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Arrastatu hautapena hura mugitzeko." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Koloreztatu berriro" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Ezkerreko klik-a bigarren mailako kolorea kolore nagusiarekin ordezteko." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Margo-ontzia" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Ezkerreko klik-a eskualde bat kolore nagusiarekin betetzeko, eskuineko klik-" "a bigarren mailako kolorearekin betetzeko." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsea" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Egin klik eta arrastatu elipse bat marrazteko (eskuineko klik-a bigarren " "mailako kolorea erabiltzeko). Mantendu Shift sakatuta zirkulua egiteko." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Testua" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Ezkerreko klik-a kurtsorea kokatzeko, ondoren idatzi textua. Testuaren " "kolorea kolore nagusia izango da." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Letra-tipoa" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Lodia" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Etzana" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Azpimarratua" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Ezkerrean lerrokatua" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Erdian lerrokatua" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Eskuinean lerrokatua" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Testu-estiloa" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normala" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normala eta ingerada" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Bete atzeko planoa" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Ingerada-zabalera" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Txikitu ingeradaren tamaina" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Handitu ingeradaren tamaina" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Brotxaren zabalera" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Handitu brotxaren tamaina" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Txikitu brotxaren tamaina" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Betegarriaren estiloa" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Ingerada" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Betegarria" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Betegarria eta ingerada" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Zirkuluak" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Sareta" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Laukiak" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Zipriztinak" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zooma" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Ezkerreko klik-a handiagotzeko. Eskuineko klik-a txikiagotzeko. Egin klik " "eta arrastatu hautapenera zooma egiteko." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lakio bidezko hautapena" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Egin klik eta arrastatu hautapen-arearen ertza marrazteko." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma librea" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Honi buruz" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fitxategia" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editatu" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Ikusi" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "I_rudia" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Geruzak" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Doikuntzak" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_ktuak" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "Lei_hoa" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Tresna-leihoak" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Laguntza" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Tresnak" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumentuak" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Geruzak" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historia" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ezkutatu" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Atrakea" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatikoki ezkutatu" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Atrakagarria" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Mugikorra" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Hartu pantaila-argazkia" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Pantaila-argazkia hartzeko atzerapena (segundoak):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gorde \"{0}\" irudiaren aldaketak itxi baino lehen?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Gordetzen ez baduzu, aldaketa guztiak betiko galduko dira." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Itxi gorde gabe" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Aldatu paletaren tamaina" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Paletaren tamaina berria:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Itsatsi geruza berrian" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Geruzaren opakutasuna" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Aldatu geruzaren izena" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ezkutatu geruza" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Erakutsi geruza" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Geruza-propietateak" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Ireki irudi-fitxategia" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Irudi-fitxategiak" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Fitxategi guztiak" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Gorde irudi-fitxategia" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" "Pintak ez du onartzen fitxategi-formatu horretako irudiak gordetzerik." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Errorea" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" "Jadanik existitzen da \"{0}\" deitutako fitxategi bat. Ordeztu nahi al duzu?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Fitxategia jadanik existitzen da \"{1}\"-(e)n. Ordezten baduzu, bere eduki " "guztiak gainidatziko dira." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kalitatea" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kalitatea: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Izenburua" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Bertsioa" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Bidea" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bertsio honetan lan egin dutenak" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Aurretik ekarpenak egin dituztenak" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Asier Iturralde Sarasola https://launchpad.net/~asier-iturralde\n" " Asier Sarasua Garmendia https://launchpad.net/~asarasuagarmendia\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Itzulpena:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Paint.NETen lanean oinarritua:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Zenbait ikono hemendik datoz:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Pintari buruz" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Bertsio-informazioa" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lizentzia" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "MIT X11 lizentziapean argitaratua." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pintaren garatzaileak" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Izena:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Ikusgaia" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opakutasuna:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Aldatu oihalaren tamaina" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Ehunekoetan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Tamaina absolutuan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Zabalera:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altuera:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Mantendu aspektu-erlazioa" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ainguratzea:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Aldatu irudiaren tamaina" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Irudi berria" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Irudiaren tamaina berria " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "errendatzerako erabiliko den hari-kopurua" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Errendatze-efektua" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Gorde gabeko irudia ({0})" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Atzeko planoa" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Ireki irudia" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Ezin izan da fitxategia ireki: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Itsatsi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Biratu 180º" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Irauli irudia horizontalki" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Irauli irudia bertikalki" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Biratu 90º eskuinetara" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Biratu 90º ezkerretara" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Irauli geruza horizontalki" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Irauli geruza bertikalki" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Amaitu pixelak" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta-ren webgunea" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Jakinarazi akatsa" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Itzuli aplikazio hau" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Gorde dena" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Itxi dena" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Berria..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Pantaila-argazki berria..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Ireki..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Ireki azkenak" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Itxi" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Gorde" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Gorde honela..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Inprimatu" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Irten" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Berria" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Ireki" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Gehitu geruza berria" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Ezabatu geruza" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Bikoiztu geruza" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Batu geruza beherantz" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Inportatu fitxategitik..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Irauli horizontalki" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Irauli bertikalki" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Biratu / Zoom geruzara..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Mugitu geruza gora" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Mugitu geruza behera" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Geruzaren propietateak..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Inportatu fitxategitik" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Moztu hautapenera" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatikoki moztu" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Aldatu irudiaren tamaina..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Aldatu mihisearen tamaina..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Berdindu" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Handiagotu" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Txikiagotu" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Egokiena" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zooma hautapenera" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Tamaina normala" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Tresna-barra" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixel-sareta" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Erregelak" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixelak" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Hazbeteak" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Zentimetroak" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pantaila osoa" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Erregelen unitateak" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Leihoa" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Desegin" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Berregin" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Moztu" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiatu" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Itsatsi irudi berrian" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Ezabatu hautapena" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Bete hautapena" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Alderantzikatu hautapena" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Hautatu dena" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Desautatu dena" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Berrezarri lehenetsia" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Ezarri kolore-kopurua" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Ezabatu hautapena" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Desautatu" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Ireki paleta-fitxategia" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Paleta-fitxategiak (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Ezin izan da paleta-fitxategia ireki: {0}.\n" "Egiaztatu benetan GIMPen edo Paint.NETen paleta bat irekitzen saiatzen ari " "zarela." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Gorde paleta-fitxategia" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Geruza" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiatu" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Tresna" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Lasterbide-gakoa" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Nahaste normala" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Gainidatzi" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing-a aktibatua" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialiasing-a desaktibatua" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} irudia ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Orokorra" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Kantitatea" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angelua" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias-a" #: GlowEffect dialog msgid "Blend Mode" msgstr "Nahaste-modua" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Distira" #: PixelateData dialog msgid "Brush Size" msgstr "Brotxaren tamaina" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Gelaxkaren tamaina" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Erdiko desplazamendua" #: OilPaintingEffect dialog msgid "Centered" msgstr "Zentratua" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Ale-tamaina" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Kolore-barrutia" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Kolore-asetasuna" #: GlowEffect dialog msgid "Coloring" msgstr "Koloratzailea" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrastea" #: FragmentEffect dialog msgid "Coverage" msgstr "Estaldura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distantzia" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Ertz-portaera" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktorea" #: InkSketchEffect dialog msgid "Fragments" msgstr "Zatiak" #: TileEffect dialog msgid "Ink Outline" msgstr "Tinta-ingerada" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intentsitatea" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Argiztapena" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Desplazamendua" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Arkatz-puntaren tamaina" #: CloudsEffect dialog msgid "Percentile" msgstr "Ehunekoa" #: RadialBlurEffect dialog msgid "Power" msgstr "Energia" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kalitatea" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Biraketa" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Asetasunaren ehunekoa" #: CloudsEffect dialog msgid "Scale" msgstr "Eskala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Hazia" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Leuntasuna" #: OutlineEffect dialog msgid "Strength" msgstr "Sendotasuna" #: TileEffect dialog msgid "Thickness" msgstr "Lodiera" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Mosaiko-tamaina" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Berotasuna" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Erabili kalitate baxua aurrebistetarako, irudi txikietarako eta angelu " "txikietarako. Erabili kalitate altua behin-betiko irudietarako, irudi " "handietarako eta angelu handietarako." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Argibidea: Emaitza hobeak lortzeko, lehenengo erabili hautapen-tresnak begi " "bakoitza hautatzeko." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Irudi-editorea" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Sortu eta editatu irudiak modu errazean" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta irudi-editorea" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Irudiak" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Ezin da gorde irakurtzeko soilik den fitxategia." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Itsatsi nahi den irudia mihisearen tamaina baino handiagoa da. Zer egin nahi " "duzu?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Hedatu mihisea" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ez aldatu mihisearen tamaina" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Biratu / Zoom geruzara" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/fi.po0000664000175000017500000014446611747026475015234 0ustar00cameroncameron00000000000000# Finnish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 10:47+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automaattinen taso" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Käännä värit" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Sävyala" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Seepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Porrasta" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Mustavalkoinen" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Käyrät" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Kirkkaus / Kontrasti" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Sävy / Värikylläisyys" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Sävyjen säädöt" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Sisääntulon histogrammi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Sisääntulo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Ulostulo" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Ulostulon histogrammi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Palauta" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Punainen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Vihreä" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Sininen" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Kytketty" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Siirtokartta" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Värin kirkkaus" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Punainen " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Sininen " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Vihje: Napsauta oikealla napilla poistaaksesi pisteitä." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Vähennä kohinaa" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Kohina" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Pirstaloi" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Sumennus" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Pilviä" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderointi" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Epäkohdistus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Punasilmän poistaja" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Valokuva" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrotin joukko" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Hehku" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Reunan tunnistus" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Tyyli" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Säteittäinen sumennus" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Jäätynyt lasi" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Vääristä" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Öljymaalaus" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistinen" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julian joukko" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Pehmennä" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reliefi" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Musteluonnos" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediaani" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Korkokuva" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gauss-sumennus" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Terävöitä" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Lisää kohinaa" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tiiliheijastus" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselöi" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Liike-epäterävyys" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Käänteismuunnos" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Pullistuma" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom-sumennus" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Kynäluonnos" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Ääriviiva" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Kierre" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Satunnainen kohina" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Uusi siemen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Valitse edustaväri" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Valitse taustaväri" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Valitse palettiväri" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Suorakulmainen valinta" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Napsauta ja siirrä piirtääksesi suorakulmaisen valinnan. Pakota neliöksi " "shift-näppäimellä." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kloonaus" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Napsauta oikealla asettaaksesi lähtöpisteen, vasemmalla piirrät." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Taikasauva" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Napsauta valitaksesi samanvärisen alueen." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Suorakulmio" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Napsauta ja siirrä piirtääksesi suorakulmion (oikealla napilla " "taustavärillä). Pakota neliöksi shift-näppäimellä." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Siirrä valintaa" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Vedä valintaa siirtääksesi valinnan reunaa." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Väriliukuma" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Napsauta ja siirrä piirtääksesi liukuman edustaväristä taustaväriin. " "Oikealla napilla käänteinen suunta." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineaari" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineaari (Peilattu)" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Timantti" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Säteittäinen" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kartio" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Tulvatila" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Jatkuva" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globaali" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleranssi" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Sivellin" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Vasemmalla napilla piirrät edustavärillä, oikealla napilla taustavärillä." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tyyppi" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Kynä" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Vasemmalla napilla piirrät vapaita, pikselin leveitä viivoja edustavärillä, " "oikealla napilla taustavärillä." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipsivalinta" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Napsauta ja siirrä piirtääksesi elliptisen valinnan. Pakota ympyräksi shift-" "näppäimellä." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Viiva" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Vasemmalla napilla piirrät edustavärillä, oikealla napilla taustavärillä. " "Shift-nappi pohjassa pakottaa tasaisiin kulmiin." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Pyyhin" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Vasemmalla hiiren napilla pyyhit läpinäkyväksi, oikealla pyyhit " "taustavärillä. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Napsauta ja siirrä hiirtä liikkuaksesi kuvalla." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Värinpoimija" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Vasemmalla hiiren napilla valitset edustavärin, oikealla valitset " "taustavärin." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Valinnan jälkeen" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Älä vaihda työkalua" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Vaihda edelliseen työkaluun" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Vaihda kynään" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Pyöristetty suorakulmio" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Napsauta ja siirrä piirtääksesi pyöristetyn suorakulmion (oikealla napilla " "taustavärillä). Pakota neliöksi shift-näppäimellä." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Säde" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Vähennä pyöristetyn kulman sädettä" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Lisää pyöristetyn kulman sädettä" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Siirrä valittuja pikseleitä" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Siirrä valintaa siirtääksesi kohdetta." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Väritä uudelleen" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Vasemmalla napilla korvaa taustaväri edustavärillä." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Täyttö" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Vasemmalla napilla täytät alueen edustavärillä, oikealla napilla täytät " "taustavärillä." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipsi" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Napsauta ja siirrä piirtääksesi ellipsin (oikealla napilla taustavärillä). " "Pakota ympyräksi shift-näppäimellä." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Teksti" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Napsauta vasemmalla sijoittaaksesi kursorin, ja kirjoita teksti. Väri on " "edustaväri." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Kirjasin" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Lihavoitu" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursivoitu" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Alleviivattu" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Tasaa vasemmalle" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Keskitä" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Tasaa oikealle" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Tekstin tyyli" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normaali" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normaali ja ääriviiva" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Täytä tausta" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Ääriviivan paksuus" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Pienennä ääriviivaa" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Suurenna ääriviivaa" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Siveltimen koko" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Pienennä sivellintä" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Suurenna sivellintä" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Piirtotyyli" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Reunan muoto" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Täytön muoto" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Täytön ja reunan muoto" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Ympyrät" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Ristikot" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Neliöt" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Roiske" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoomaus" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Vasemmalla napilla suurennat, oikealla pienennät. Napsauta ja siirrä " "luodaksesi valinnan." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lassovalinta" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Napsauta ja siirrä hiirtä luodaksesi valittavan alueen reunan." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Vapaa muoto" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Tietoja" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Tiedosto" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Muokkaa" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Näytä" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Kuva" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "T_asot" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Säädöt" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "T_ehosteet" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Ikkuna" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Työkaluikkunat" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Ohje" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Työkalut" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paletti" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumentit" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Tasot" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historia" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Piilota" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Telakka" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automaattinen piilotus" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Telakoitava" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Kelluva" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ota kuvankaappaus" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Viive ennen kuvankaappauksen ottamista (sekuntteja):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Tallennetaanko muutokset kuvaan \"{0}\" ennen sulkemista?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Jos tallennusta ei tehdä, kaikki muutokset häviävät lopullisesti." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Sulje tallentamatta" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Muuta paletin kokoa" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Paletin uusi koko:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Liitä uuteen tasoon" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Tason peittävyys" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Nimeä taso uudelleen" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Piilota taso" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Näytä taso" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Tason ominaisuudet" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Avaa kuvatiedosto" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Kuvatiedostot" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Kaikki tiedostot" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Tallenna kuva" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ei tue kuvien tallentamista tässä muodossa." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Virhe" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Tiedosto nimeltä \"{0}\" on olemassa. Haluatko korvata sen?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Tiedosto on jo olemassa \"{1}\". Korvaaminen ylikirjoittaa sisällön." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "Kuvaa ei voi liittää" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "Leikepöytä ei sisällä kuvaa." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-laatu" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Laatu: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Nimi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versio" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Polku" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Tämän julkaisun tekijät" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Aiemmat tekijät" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jarno Ruokamo https://launchpad.net/~jarno-ruokamo\n" " Jiri Grönroos https://launchpad.net/~jiri-gronroos\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Tommi Saira https://launchpad.net/~tommisaira\n" " Urmas https://launchpad.net/~urmas-2006" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Käännöksen tehnyt:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Perustuu ohjelmaan Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Käyttää kuvakkeita kokoelmista:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Tietoja Pintasta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versiotiedot" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lisenssi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Julkaistaan MIT X11 -lisenssin alaisena." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Tekijänoikeus" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pinta-tekijöiden" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nimi:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Näkyvä" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Peittävyys:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Pohjan koko" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Prosentin mukaan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Koon mukaan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Leveys:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikseliä" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Korkeus:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Säilytä kuvasuhde" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ankkuri:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Muuta kokoa" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Uusi kuva" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Uusi koko " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "renderointiin käytettävät säikeet" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Renderointi" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Tallentamaton kuva {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Tausta" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Avaa kuva" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Tiedostoa ei voitu avata: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Liitä" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Pyöritä 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Käännä kuva vaakatasossa" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Käännä kuva pystytasossa" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Pyöritä 90° myötäpäivään" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Pyöritä 90° vastapäivään" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Käännä taso vaakatasossa" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Käännä taso pystytasossa" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Viimeistele pikselit" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pintan verkkosivusto" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Ilmoita virheestä" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Käännä tämä ohjelma" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Tallenna kaikki" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Sulje kaikki" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Uusi..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Uusi kuvakaappaus..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Avaa..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Avaa viimeisin" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Sulje" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Tallenna" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Tallenna nimellä..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Tulosta" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Lopeta" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Uusi" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Avaa" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Uusi taso" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Poista taso" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Monista taso" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Yhdistä taso alas" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Tuo tiedostosta..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Käännä vaakatasossa" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Käännä pystytasossa" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Käännä / lähennä tasoa..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Siirrä tasoa ylös" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Siirrä tasoa alas" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Tason ominaisuudet..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Tuo tiedostosta" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Rajaa valintaan" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automaattinen rajaus" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Muuta kokoa..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Pohjan koko..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Yhdistä tasot" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Suurenna" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Pienennä" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Paras koko" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Tarkenna valintaan" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normaali koko" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Työkalupalkki" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pikseliristikko" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Viivoitin" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikseliä" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tuumaa" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Senttimetriä" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Koko näyttö" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Mitta-asteikko" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Ikkuna" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Kumoa" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Tee uudelleen" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Leikkaa" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopioi" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Liitä uuteen kuvaan" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Poista valinta" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Täytä valinta" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Käännä valinta" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Valitse kaikki" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Poista valinnat" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Palauta oletus" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Aseta värien määrä" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Poista valinta" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Poista valinta" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Avaa palettitiedosto" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettitiedostot (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Palettia ei voitu avata: {0}\n" "Varmista, että avaamasi tiedosto on kelvollinen GIMP- tai Paint.NET-paletti." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Tallenna palettitiedosto" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-paletti (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP-paletti (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Taso" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopioi" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Työkalu" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Pikanäppäin" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normaali sekoitus" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Ylikirjoitus" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Reunojen pehmennys päällä" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Reunojen pehmennys pois päältä" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} kuva ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Yleiset" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Määrä" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kulma" #: CloudsEffect dialog msgid "Antialias" msgstr "Reunanpehmennys" #: GlowEffect dialog msgid "Blend Mode" msgstr "Sekoitustila" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Kirkkaus" #: PixelateData dialog msgid "Brush Size" msgstr "Siveltimen koko" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Solun koko" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Keskusta" #: OilPaintingEffect dialog msgid "Centered" msgstr "Keskitetty" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Karheus" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Värialue" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Värikylläisyys" #: GlowEffect dialog msgid "Coloring" msgstr "Väritys" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrasti" #: FragmentEffect dialog msgid "Coverage" msgstr "Kattavuus" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Etäisyys" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Reunan käyttäytyminen" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Kerroin" #: InkSketchEffect dialog msgid "Fragments" msgstr "Pirstaleet" #: TileEffect dialog msgid "Ink Outline" msgstr "Mustereunus" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Voimakkuus" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Valaistus" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Siirtymä" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Kynän kärjen koko" #: CloudsEffect dialog msgid "Percentile" msgstr "Prosenttipiste" #: RadialBlurEffect dialog msgid "Power" msgstr "Voima" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Laatu" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Kierto" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Värikylläisyyden määrä" #: CloudsEffect dialog msgid "Scale" msgstr "Skaala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Siemen" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Pehmeys" #: OutlineEffect dialog msgid "Strength" msgstr "Voimakkuus" #: TileEffect dialog msgid "Thickness" msgstr "Paksuus" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tiilin koko" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Lämpö" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Käytä pientä laatua tarkastamiseen, pieniin kuviin ja pieniin kulmiin. Käytä " "suurta laatua lopullisiin kuviin, isoihin kuviin ja suuriin kulmiin." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Vihje: Parhaan tuloksen saamiseksi käytä valintatyökalua ja valitse " "kummatkin silmät ennen käyttöä." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Kuvankäsittely" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Luo ja muokkaa kuvia vaivatta" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta-kuvankäsittely" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Kuvat" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Vain luku -tiedostoon ei voi tallentaa." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Kuva on liian iso" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO-tiedostot voivat olla korkeintaan 255x255 pikselin kokoisia" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "Kuva on suurempi kuin pohja" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Tuotava kuva on suurempi kuin pohjan koko. Mitä haluat tehdä?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Laajenna pohjaa" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Pidä pohjan koko" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Käännä / lähennä tasoa" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Taso esillä" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Taso piilotettu" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Lisäosien hallinta" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Päivitys saatavilla" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Asennettu versio" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Latauksen koko" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Asennus peruttiin" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Joitain tarvittavia lisäosia ei löytynyt" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Asennus epäonnistui" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Asennettu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Päivitykset" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} päivitys saatavilla" msgstr[1] "{0} päivitystä saatavilla" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Asenna lisäosapaketti" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Lisäosapaketit" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Lisäosa" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Seuraavat paketit poistetaan:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Seuraavat paketit asennetaan:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (käyttäjän hakemistossa)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Seuraavat paketit täytyy poistaa:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Seuraavia riippuvuuksia ei voitu selvittää:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Halutko varmasti keskeyttää asennuksen?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Asennus epäonnistui!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Asennus valmistui onnistuneesti, mutta varoituksin." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Poistaminen epäonnistui!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Pakettien poisto valmistui onnistuneesti, mutta varoituksin." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "Tapahtui poikkeus: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Lisätietoja" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Asenna..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Päivitä" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "Poista asenn_us..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Seuraavat lisäosat asennetaan:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Päivityksiä ei löytynyt" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Päivitä" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Päivitä kaikki" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Asenna tiedostosta..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Asenna" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "Osoite:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Polku:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Selaa..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Edistyminen" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/fil.po0000664000175000017500000012575011747026475015403 0ustar00cameroncameron00000000000000# Filipino translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Filipino \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Pagbaligtarin ang mga Kulay" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Mga Lebel" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterize" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Itim at Puti" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "I-reset" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Pula" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Luntian" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Bughaw" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Pula " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Bughaw " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Ulap" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Larawan" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Kinang" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia Fractal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Linawan" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "pangalan1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "pangalan" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Pumili ng Pangunahing Kulay" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Pumili ng Ikalawang Kulay" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Parihabang Pagpili" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Parihaba" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Igalaw ang Seleksyon" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Pangkalahatan" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Uri" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Lapis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linya" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Pambura" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pampili ng Kulay" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Bilugang Parihaba" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Kulayan muli" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Sulat" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Salungguhitan" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Ihanay sa Kaliwa" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Ihanay sa Gitna" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Ihanay sa Kanan" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Karaniwan" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Bilog" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Parilya" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Parisukat" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Ilapit" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Tungkol Sa" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Baguhin" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Tingnan" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Larawan" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Window" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Gabay" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Mga Dokumento" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Kasaysayan" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Wag ipakita" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Lumulutang" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Kumuha ng Screenshot" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Lahat ng files" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Mali" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pamagat" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Bersyon" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Mga Kontributor sa Release na ito" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Brian Robles https://launchpad.net/~brianrobles204\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " JC John Sese Cuneta (謝施洗) https://launchpad.net/~jcjohn.sesecuneta" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Isinalin ni:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Batay sa trabaho ng Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Tungkol sa Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lisensya" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Pangalan:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Lapad:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Tangkad" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Bagong Larawan" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Bagong Sukat ng Larawan " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Idikit" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/fo.po0000664000175000017500000013573011747026475015234 0ustar00cameroncameron00000000000000# Faroese translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # Gunleif Joensen , 2010. msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Føroyabólkurin\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" "Language: fo\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Speglvenda litir" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Stig" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Brúnlita" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Gerð til plakat" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Svart og hvítt" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurvur" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Ljósstyrki / Kontrastur" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Dámur / mettan" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Stilla styrki" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Inntak" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Úttak" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Sjálvvirkið" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Tómstilla" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Reytt" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grønt" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blátt" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Leinkjað" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Yvurflyt kort" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Ljósmegi" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Reytt " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blátt " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Minka um larm" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Larmur" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Petti" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Kámar" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Skýggj" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Upptekna" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Ófokusera" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Reyðeyga burturtøka" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Mynd" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glóð" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Varnast kant" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Sniðger" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Óglærað glas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Reingja" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oljutekning" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Listarligt" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia brýtil" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Blóðka andlitsmynd" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Framsker" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Blekkskitsa" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Miðil" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussisk káma" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Skerpa" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Legg larm til" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tigulskygging" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Skíggjadepla" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Rørslukáma" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Póla umbýtan" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Buggla" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Surrukáma" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Blýantskitsa" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Reingja" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "spjaldur1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "spjaldur" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Tilvildarligur larmur" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vel grundlit" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Vel hjálit" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Vel palettlit" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Vel rætthyrning" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Avrita stempul" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Velja við gandastavi" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Trýst fyri at velja øki við tílíkum liti." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rætthyrningur" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flyt úrval" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Stigil" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Grannanæstur" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Alheimsliga" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Loyvt frávik" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pensil" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Slag" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Blýant" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Vel við ellipsu" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Lína" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Viskileður" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Skotra" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikk og drag til at flyta myndina." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Litveljari" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Vinstraklikkja til at seta grundlit. Høgraklikkja til at seta hjálit." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Eftir val" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Skift ikki amboð" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Skift til fyrra amboðið" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Skift til blýantsamboð" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rundaður rætthyrningur" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Flyt valdar skíggjadeplar" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Drag úrvalið til flyt úrvalda innihald." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Endurlita" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Vinstraklikkja til at seta grundlitin, í staðin fyri hjálitin." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Málingaspann" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Vinstraklikkja til at fylla økið við grundlitinum, høgraklikkja til at fylla " "við hjálitinum." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekstur" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Vinstraklikkja til at seta vísan, síðani skriva ynskta tekstin. Tekstliturin " "er grundliturin." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Stavasnið" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Feitir stavir" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Skákskrift" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Undirstrika" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Vinstrastilla" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Miðstilla" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Høgrastilla" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Tekstasnið" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Vanligt" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Tekna umhvarv av vídd" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Minka um støddina á teknaðum umhvarvi" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Øk um støddina á tekaðum umhvarvi" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Pensilsbreidd" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Minka um penslabreidd" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Økja um penslabreidd" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fyll snið" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Tekna umhvarv av skapi" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fyll skapin" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fyll og tekna umhvarv av skapi" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Sirklar" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Rist" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Fýrakantar" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Sletta" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Surra" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Vinstraklikkja til at surra inn. Høgraklikkja til at surra út. Klikk og drag " "til at surra úrvalið inn." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Vel við lasso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Trýst og drag tað teknaða umhvarvi, aveinum úrvaldum øki." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Um" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fíla" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Ritstjórna" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vís" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Mynd" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Løg" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Stilling_ar" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Vindeygu" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Amboðsvindeygu" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Hjálp" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Amboð" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palett" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Skjøl" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Løg" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Søga" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Fjal" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dokk" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Sjálvfjal" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokkiført" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flótandi" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Tak skíggjamynd" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Seinkan áðrenn skíggjamyndstøku (sekund):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Goym broytingar á myndini \"{0}\" áðrenn afturlatan?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Um tú ikki goymir, verða allar broytingar varandi mistar." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Afturlatan uttan at goyma" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Broyta palettstødd" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nýggj palletstødd:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Klistra inn í eitt nýtt lag" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Óskygni á lagnum" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Nýnevn lagið" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Fjal lagið" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Sýn lagið" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Lag eginleikar" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Opna myndafílu" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Myndafílur" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Allar fílur" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Goym myndafílu" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta stuðlar ikki goymslu í hesum fílusniði." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Villa" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Ein fíla nevnd \"{0}\" finst longu. Vil tú seta í staðin fyri hana?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Fílan finst longi í \"{1}\". Setur tú nakað í staðin, skrivar tú omaná " "innihald hennara." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG góðska" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Góðska: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Heiti" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Útgáva" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Leið" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Stuðulsveitarir á hesari útgávu" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Fyrrverandi stuðlar" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Aleksandar Maricak https://launchpad.net/~asosfo\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Gunleif Joensen https://launchpad.net/~gunleif\n" " Jonathan Pobst https://launchpad.net/~jpobst" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Týtt av:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Grundað á arbeiði hjá Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Nýtandi nakrar ímyndir frá:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Um Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Útgávukunning" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Loyvi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Útgivi undir MIT X11 loyvinum." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Upphavsrættur" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pinta stuðlar" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Navn:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Sjónligt" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Óskygni:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Broyt støddina á lørifti" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Eftir prosent:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Eftir avgjørdari stødd:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Breidd:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "skíggjadeplar" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Hædd:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Halt áskoðanarlutfall" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Akker:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Broyt støddina á mynd" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nýggj mynd" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nýggj myndastødd " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ikki goymd fíla {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Bakgrund" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Opna mynd" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Kundi ikki opna fílu: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Klistra" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Snara 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Venda mynd vannrætt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Venda mynd loddrætt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Snara 90° við urinum" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Snara 90° ímóti urinum" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Venda lag vannrætt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Venda lag loddrætt" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Heimasíðan hjá Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Send filufrásøgn" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Týða hesa nýtsluskipan" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Goym alt" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Lat alt aftur" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nýggj..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nýggj skíggjamynd" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Opna..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Opna nýliga" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Lat aftur" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Goym" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Goym sum..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Prenta" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Gevst" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nýtt" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Opna" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Legg nýtt lag afturat" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Strika lag" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Tvífalda lag" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Flætta lag niður" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Flyt inn úr fílu..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Venda vannrætt" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Venda loddrætt" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Flyt lag upp" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Flyt lag niður" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Flyt inn úr fílu" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Skerja til úrval" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Trýsta flatan" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Surra inn" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Surra út" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Surra til úrval" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Vanlig stødd" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Amboðsstong" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "skíggjadeplanet" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linealir" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Skíggjadeplar" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tummar" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Sentimetrar" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fullskíggja" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Linealeindir" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Vindeyga" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Angra" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Endurgerð" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Klipp" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Avrita" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Klistra inn í eina nýggja mynd" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Strika tað úrvalda" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fyll úrval" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Vend úrval øvugt" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Vel alt" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Frável allar" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Tómstilla til tað forsetta" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Set tal av litum" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Strika úrval" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Frávelja" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Opna palettfílu" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettfílur (*.txt, *gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Kundi ikki opna palettfíluna: {0}.\n" "Vinarliga vátta, at tú roynir at opna eina gilda GIMP ella Paint.NET palett." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Goym palettfílu" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palett (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palett (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lag" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "avrita" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Amboð" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Snarvegsknappur" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Skriva oman á" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} mynd {1}" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Alment" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Mongd" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Vinkul" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Ljósstyrki" #: PixelateData dialog msgid "Brush Size" msgstr "Penslastødd" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Puntastødd" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Miðstillað" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grovleiki" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Litaøki" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Litmettan" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "Dekningur" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Fjarstøða" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kantatburður" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktorur" #: InkSketchEffect dialog msgid "Fragments" msgstr "Petti" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Styrki" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Stødd á blýantsspíski" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "Styrki" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Góðska" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Snúningur" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "Stigmarka" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "Styrki" #: TileEffect dialog msgid "Thickness" msgstr "Tjúkd" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tigulstødd" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Hiti" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Nýt lága góðsku til undansýningar, lítlar myndir og lítlar vinklar. Nýt høga " "góðsku til liðna góðsku, stórar myndir og stórar vinklar." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/fr.po0000664000175000017500000014570611747026475015243 0ustar00cameroncameron00000000000000# Pinta Translatable Strings # Copyright (C) 2010 Pinta Contributors # This file is distributed under the same license as the Pinta package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: SarahSlean \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Niveau automatique" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverser les couleurs" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveaux" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sépia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Postériser" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Noir et Blanc" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Courbes" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Luminosité / contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Teinte / Saturation" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajustement des niveaux" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogramme d'entrée" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrée" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Sortie" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogramme de sortie" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Réinitialiser" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rouge" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Vert" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Bleu" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Lié" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Carte de transfert" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RVB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosité" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rouge " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Bleu " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Astuce : clic droit pour supprimer les points de contrôle." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Réduire le bruit" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Bruit" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmentation" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Floutage" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nuages" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Effectuer le rendu" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Défocaliser" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Suppression des yeux rouges" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Photo" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractale de Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Halo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Détecter les contours" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Styliser" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Flou radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Verre dépoli" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distortion" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Peinture à l'huile" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistique" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractale de Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Adoucir le portrait" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Croquis à l'encre" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Médian" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Gaufrer" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Flou gaussien" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Augmenter la netteté" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Ajouter du bruit" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Réflexion mosaïque" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixeliser" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Flou de mouvement" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Transformation Symétrique" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bomber" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Flou d'arrière plan" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Croquis au crayon" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Sélection des contours" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Tordre" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "étiquette1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "étiquette" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Bruit aléatoire" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "regénérer" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Choisir la couleur primaire" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Choisir la couleur secondaire" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Choisir la palette de couleurs" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Sélection Rectangulaire" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Cliquer et glisser pour faire une sélection rectangulaire. Maintenir la " "touche Majuscule pour contraindre la sélection à un carré." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Tampon Duplicateur" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Cliquez sur Ctrl-gauche pour définir l'origine, clic gauche pour peindre." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Sélection Baguette Magique" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Cliquer pour sélectionner une région de couleur similaire" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Cliquer et glisser pour dessiner un rectangle (clic droit pour la couleur " "secondaire). Maintenir la touche Majuscule pour faire un carré." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Déplacer la Sélection" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Déplacer la sélection pour bouger son contour." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Dégradé" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Cliquer et glisser pour dessiner un dégradé de la couleur primaire vers la " "couleur secondaire. Clic droit pour l'inverser." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Dégradé Linéaire" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Dégradé Linéaire Réfléchi" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Dégradé Linéaire en Diamant" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Dégradé Radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Dégradé Conique" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mode de remplissage" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contigu" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolérance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pinceau" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Clic gauche pour dessiner avec la couleur primaire, clic droit pour la " "couleur secondaire." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Crayon" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Clic gauche pour dessiner une forme libre d'une largeur d'un pixel avec la " "couleur principale. Clic droit pour utiliser la couleur secondaire." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Sélection Elliptique" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Cliquer et glisser pour faire une sélection elliptique. Maintenir Majuscule " "pour faire un cercle." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Ligne" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Clic gauche pour dessiner avec des couleurs primaires, faites un clic droit " "pour la couleur secondaire. Tenez la touche Maj d'aligner les angles." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gomme" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Clic gauche pour effacer et rendre transparent, clic droit pour remplir de " "la couleur secondaire. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Déplacement" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Cliquer et déplacer pour naviguer dans l'image." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pipette" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Clic gauche pour définir la couleur primaire. Clic droit pour définir la " "couleur secondaire." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Après la sélection" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne pas changer d'outil" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Changer pour l'outil précédent" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Changer pour l'outil Crayon" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rectangle aux coins Arrondis" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Rayon" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Réduire le rayon du coin du rectangle" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Augmenter le rayon du coin du rectangle" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Déplacer les Pixels Sélectionnés" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Déplacer la seléction pour bouger le contenu seléctionné." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolorisation" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Clic gauche pour remplacer la couleur secondaire par la couleur primaire." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Pot de Peinture" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Clic gauche pour remplir la région avec la couleur principale, clic droit " "pour remplir avec la couleur secondaire" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Cliquer et glisser pour dessiner une ellipse (clic droit pour la couleur " "secondaire). Maintenez la touche Majuscule pour forcer un cercle." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Texte" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Clic gauche pour placer le curseur, puis taper le texte désiré. La couleur " "du texte est la couleur principale." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Police" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Gras" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Italique" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Souligné" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Aligné à gauche" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Aligné au centre" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Aligné à droite" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Style du texte" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal avec contours" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Largeur du contour" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Diminuer la taille du contour" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Augmenter la taille du contour" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Largeur du pinceau" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Diminuer la taille du pinceau" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Augmenter la taille du pinceau" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Style de remplissage" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Forme extérieure" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Forme de remplissage" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Forme de remplissage et extérieure" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cercles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grille" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Carrés" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Éclaboussure" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Clic gauche pour agrandir. Clic droit pour réduire. Cliquer et déposer pour " "agrandir la sélection." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Sélection Lasso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Cliquer et tirer pour tracer le contour d'une zone de selection." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forme Libre" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "À propos" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fichier" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Édition" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Affichage" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Image" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Calques" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Réglages" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effet_s" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fenêtre" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Boites à outils" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Aide" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Outils" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palette" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Calques" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historique" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Masquer" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Cacher automatiquement" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancrable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flottant" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Prendre une capture d'écran" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Délai avant de prendre une capture d'écran (en secondes):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Enregistrer les changements de l'image \"{0}\" avant de fermer ?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Si vous n'enregistrez pas, toutes les modifications seront perdues." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Fermer sans enregistrer" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Redimensionner Palette" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nouvelle taille de la palette :" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Coller dans un nouveau calque" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacité du calque" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renommer le calque" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Cacher le calque" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Afficher le calque" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propriétés du calque" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Ouvrir un fichier image" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fichiers image" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Tous les fichiers" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Enregistrer le fichier image" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" "Pinta ne prend pas en charge l'enregistrement des images dans ce format de " "fichier." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Erreur" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Un fichier nommé \"{0}\" existe déjà. Souhaitez vous le remplacer ?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Le fichier existe déjà dans \"{1}\". Le remplacer écrasera son contenu " "actuel." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualité JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualité: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titre" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Emplacement" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributeurs à cette version" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Contributeurs précédents" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Achille Fouilleul https://launchpad.net/~achille-fouilleul\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Ersplus https://launchpad.net/~ersplus-free\n" " Jean-François Huck https://launchpad.net/~huckjf-aquitania\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Marting https://launchpad.net/~marting\n" " Nicolas https://launchpad.net/~nicolas-pecqueux\n" " Olivier Dufour https://launchpad.net/~olivier-duff\n" " Quentin Pagès https://launchpad.net/~kwentin\n" " RedGuff https://launchpad.net/~domsau2\n" " SarahSlean https://launchpad.net/~yoda4\n" " Simon https://launchpad.net/~nowis74\n" " Simon Leblanc https://launchpad.net/~contact-leblanc-simon\n" " Tonher3 https://launchpad.net/~jeanluc-jlg\n" " fred.lavigne https://launchpad.net/~fred-taff" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traduit par :" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basé sur le travail de Paint.NET :" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Utilisation d'icônes provenant de :" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "À propos de Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Information de version" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licence" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Mis à disposition sous licence MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Droits d’auteur" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "par les contributeurs de Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nom :" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacité :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensionner le canevas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "En pourcentage :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "En taille absolue :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Largeur :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Hauteur :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Conserver les proportions" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ancre :" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Redimensionner l'image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nouvelle image" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Taille de la nouvelle image " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "nombre de fils d'exécution à utiliser pour le rendu" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nom de l'option" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Effet de rendu" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Image non enregistrée {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Arrière-plan" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Ouvrir une image" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossible d'ouvrir le fichier : {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Coller" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotation de 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Retourner l'Image Horizontalement" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Retourner l'Image Verticalement" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotation horaire de 90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotation anti-horaire de 90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Retourner le Calque Horizontalement" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Retourner le Calque Verticalement" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dernière retouche sur les pixels" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Site Web de Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Rapporter un dysfonctionnement" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduire ce logiciel" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Enregistrer tout" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Fermer tout" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nouveau..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nouvelle capture d'écran..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Ouvrir..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Ouvert récemment" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Fermer" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Enregistrer" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Enregistrer sous..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimer" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Quitter" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nouveau" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Ouvrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Ajouter un nouveau calque" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Supprimer le calque" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliquer le calque" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Fusionner avec le calque inférieur" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importer depuis un fichier..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Retourner horizontalement" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Retourner verticalement" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Déplacer le calque vers le haut" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Déplacer le calque vers le bas" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Propriétés du calque" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importer depuis un fichier" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Rogner" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Rognage automatique" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Redimensionner l'image..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Redimensionner la toile ..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Aplatir" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom avant" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom arrière" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Meilleur ajustement" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Adapter l'échelle à la sélection" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Taille normale" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barre d'outils" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grille des pixels" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Règles" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Pouces" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimètres" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Plein écran" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unités rêgle" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fenêtre" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Défaire" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Rétablir" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Couper" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copier" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Coller dans une nouvelle image" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Supprimer la sélection" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Remplir la sélection" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverser la sélection" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Tout sélectionner" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Tout désélectionner" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Réinitialiser" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Définir le nombre de couleurs" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Effacer la sélection" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Désélectionner" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Ouvrir Fichier Palette" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Fichiers Palette (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Impossible d'ouvrir le fichier de palette : {0}.\n" "Veuillez vérifier que vous essayez d'ouvrir une palette GIMP ou Paint.NET " "valide" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Enregistrer le fichier de palette" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Palette Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Palette GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Calque" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copier" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Outil" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Raccourcis clavier" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Composition normale" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Écraser" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Lissage activé" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Lissage desactivé" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "Image {0} ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Général" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Valeur" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angle" #: CloudsEffect dialog msgid "Antialias" msgstr "Anticrénelage (lissage des polices)" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mode de mélange" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Luminosité" #: PixelateData dialog msgid "Brush Size" msgstr "Taille du pinceau" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Taille de cellule" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Excentration" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centré" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Rugosité" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Gamme de couleurs" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturation des couleurs" #: GlowEffect dialog msgid "Coloring" msgstr "Coloration" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "Couverture" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distance" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportement du bord" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Facteur" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragments" #: TileEffect dialog msgid "Ink Outline" msgstr "Contours à l'encre" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensité" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Éclairage" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Décalage" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Taille de la mine du crayon" #: CloudsEffect dialog msgid "Percentile" msgstr "Pourcentage" #: RadialBlurEffect dialog msgid "Power" msgstr "Puissance" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualité" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Pourcentage de Saturation" #: CloudsEffect dialog msgid "Scale" msgstr "Échelle" #: SoftenPortraitData dialog msgid "Seed" msgstr "Grain" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Douceur" #: OutlineEffect dialog msgid "Strength" msgstr "Force" #: TileEffect dialog msgid "Thickness" msgstr "Epaisseur" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Taille des carreaux" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Chaleur" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Utilisez une faible qualité pour les aperçus, les petites images et les " "angles faibles. Utilisez une grande qualité pour les visualisations finales, " "les grandes images, et les grands angles." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Conseil : Pour un meilleur résultat, utilisez d'abord les outils de " "sélection pour sélectionner chaque œil." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Éditeur d'image" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Créer et modifier facilement des images" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Éditeur d'image Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Images" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Impossible d'enregistrer un fichier en lecture seule." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "L'image étant collé est plus grande que la taille de la toile. Que souhaitez-" "vous faire?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Elargir la toile" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ne pas changer la taille de la toile" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ga.po0000664000175000017500000013424611747026475015220 0ustar00cameroncameron00000000000000# Irish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Irish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Aisiompaigh na Dathanna" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Airde" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Déan póstaer de" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Dubh agus Bán" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Cuair" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Gile / Codarsnacht" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Lí / Sáithiú" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Ionchur" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Aschur" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Uathoibríoch" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Athshocraigh" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Dearg" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Uaine" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Gorm" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Nasctha" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "DGlGo" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Lonrachas" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Dear " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Gorm " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Maolaigh an torann" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Torann" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Scoilt" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Geamhú" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Scamaill" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Cruth" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Baint Súile Dhearga" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Grianghraf" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Breo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Gloine Shioctha" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Saobh" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olaphictiúr" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Ealaíonta" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Frachtal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Rilíf" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Dúchléaráid" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Meánach" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Cabhair" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Geamhú Gaussach" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Géaraigh" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Cuir torann leis" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Aisiompú Polach" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Boilscigh" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Léaráid Phinn Luaidhe" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Imlínigh" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Cas" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "lipéad1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "lipéad" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Torann Fánach" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Athshíolaigh" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Roghnaigh an Príomhdhath" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Roghnaigh an Dath Tánaisteach" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Roghnú Dronuilleog" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Roghnú Fleasc Dhraíochta" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Dronuilleog" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Bog Roghnúchán" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Tarraing an roghnúchán chun imlíne an roghnúcháin a bhogadh." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Grádán" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Grádán Gathach" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Comhtheagmhálach" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Comhchoiteann" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Lamháltas" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "scuab phéinte" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Cineál" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Peann Luaidhe" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Líne" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Scriosán" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Brúigh agus tarraing chun an íomhá a ghluaiseacht." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Roghnóir Dathanna" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Tar éis an roghnú" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ná athraigh an uirlis" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Fill ar an n-uirlis roimhe seo" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Athraigh chuig uirlis an phinn luaidhe" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Dronuilleog Cruinn" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Ga" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Bog na Picteilíní Roghnaithe" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Tarraing an roghnúchán chun an t-inneachar roghnaithe a bhogadh." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Athdhathaigh" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Éilips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Téacs" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Clófhoireann" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Cló Trom" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Iodálach" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Cuir líne faoi" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Ailínigh Ar Chlé" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Ailínigh sa lár" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Ailínigh Ar Dheis" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Gnáth" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Leithead na scuaibe" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Laghdaigh méid na scuaibe" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Méadaigh méid na scuaibe" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Imlínigh an Cruth" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Líon an Cruth" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Líon agus Imlínigh Cruth" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Ciorcail" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Eangach" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Cearnóga" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Doirt" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Formhéadaigh" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Cruth Saor" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Maidir Leis" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Comhad" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "Cuir in _Eagar" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Amharc" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Íomhá" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Sraitheanna" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Mionathruithe" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Tionchair" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fuinneog" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Fuinneoga na nUirlisí" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Cabhair" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Uirlisí" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Pailéad" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Caipéisí" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Sraitheanna" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Oireas" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Folaigh" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Cuir i nDuga" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Folaigh go hUathoibríoch" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Foluaineach" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Tóg Gabháil Scáileáin" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Moill roimh gabháil scáileáin a thógáil (soicindí):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Dún gan iad a chuir i dtaisce" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Méid pháiléid nua:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Greamaigh Sa Sraith Nua" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Teimhneacht na Sraithe" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Athainmnigh Sraith" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Folaigh Sraith" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Taispeáin Sraith" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Airíonna na Sraithe" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Oscail Comhad Íomhá" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Comhaid íomhánna" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Gach comhad" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Botún" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" "Tá comhad darbh ainm \"{0}\" ann cheana. An mian leat ceann eile a chur ina " "ionad?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Cáilíocht JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Cáilíocht: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Teideal" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Leagan" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Conair" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Daoine a chabhraigh linn" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Seanan https://launchpad.net/~seananoc-gmail\n" " Shane H https://launchpad.net/~shane.h" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Aistrithe ag:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Bunaithe ar an oibre Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Ag baineadh feidhm as deilbhíní as:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Maidir le Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Eolas faoin Leagan" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Ceadúnas" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Cóipcheart" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Ainm:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Infheicthe" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Teimhneacht:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Athmhéadaigh an Canbhás" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "De réir céatadán:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "De réir méid:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Leithead:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "picteilíní" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Airde:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Coimeád an cóimheas treoíochta" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ancaire:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Athraigh Méid na hÍomhá" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Íomhá Nua" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Méid Íomhá Nua " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Íomhá nár chuireadh i dtaisce {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Cúlra" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Oscail Íomhá" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Níorbh fhéidir an comhad a oscailt: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Greamaigh" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rothlaigh 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Cas an Íomhá go Cothrománach" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Cas an Íomhá go hIngearach" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rothlaigh 90° Deiseal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rothlaigh 90° Tuathalach" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Cas an Sraith go Cothrománach" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Cas an Sraith go hIngearach" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Suíomh Idirlín Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Fógraigh Fabht" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Aistrigh an Feidhmchlár seo" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Cuir i dtaisce uile" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Dún Uile" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nua..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Roghbhlúire Nua..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Oscail..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Oscail Rudaí Deireanacha" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Dún" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Cuir i dtaisce" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Cuir i dTaisce Mar..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Clóbhuail" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Scoir" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nua" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Oscail" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Cuir Sraith Nua Leis" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Scrios Sraith" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dúblaigh Sraith" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Cumasc Sraith Síos" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Tabhair isteach ó chomhad..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Cas go Cothrománach" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Cas go hIngearach" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Bog Sraith Suas" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Bog Sraith Síos" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Airíonna na Sraithe..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Tabhair isteach ó chomhad" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Crap go Roghnúchán" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Leacaigh" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Formhéadaigh Isteach" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Formhéadaigh Amach" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Formhéadaigh go dtí an Roghnúchán" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra Uirlisí" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Eangach na bPicteilín" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Rialtóirí" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Picteilíní" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Orlach" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Ceintiméadar" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Lánscáileán" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Aonaid an Rialóra" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fuinneog" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Cealaigh" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Déan Árís É" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Gearr" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Macasamhlaigh" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Greamaigh i Sraith Nua" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Líon an Roghnúchán" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Aisiompaigh an Roghnúchán" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Roghnaigh Uile" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Fill ar Réamhshocruithe" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Socraigh Líon na nDathanna" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Scrios an Roghnúchán" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Díroghnaigh" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Oscail Comhad Páiléid" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Comhaid phailéid (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Pailéad Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Pailéad GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Sraith" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "macasamhlaigh" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Uirlis" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Aicearra" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Gnáthchumasc" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Forscríobh" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} íomhá ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Coiteann" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Méid" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Uillinn" #: CloudsEffect dialog msgid "Antialias" msgstr "Frith-ailias:" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Gile" #: PixelateData dialog msgid "Brush Size" msgstr "Méid na Scuaibe" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Méid na Cille" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Láraithe" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Raon na nDathanna" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Sáithiú na nDathanna" #: GlowEffect dialog msgid "Coloring" msgstr "Dathú" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Codarsnacht" #: FragmentEffect dialog msgid "Coverage" msgstr "Clúdú" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Fad" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Fachtóir" #: InkSketchEffect dialog msgid "Fragments" msgstr "Bloghanna" #: TileEffect dialog msgid "Ink Outline" msgstr "Imlíne Dhúigh" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Déine" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Soilsiú" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Seach-chur" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "Ceintíl" #: RadialBlurEffect dialog msgid "Power" msgstr "Cumhacht" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Cáilíocht" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rothlú" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "Scála" #: SoftenPortraitData dialog msgid "Seed" msgstr "Síol" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Bog" #: OutlineEffect dialog msgid "Strength" msgstr "Neart" #: TileEffect dialog msgid "Thickness" msgstr "Tiús" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Teas" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/gl.po0000664000175000017500000014541611747026475015234 0ustar00cameroncameron00000000000000# Galician translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # Enrique Estévez Fernández , 2011. # Leticia Díaz Vázquez , 2011. # María Suárez Cabo , 2011. # Miguel Anxo Bouzada , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-19 20:04+0000\n" "Last-Translator: Manuel Xosé Lemos \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" "X-Poedit-Language: Galician\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Nivel automático" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverter as cores" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveis" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizar" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Branco e negro" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curvas" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brillo / Contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Matíz / Saturación" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Niveis de axuste" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histograma de entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Saída" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histograma de saída" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automático" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Restabelecer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Vermello" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Azul" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Ligado" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transferencia de mapas" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosidade" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Vermello " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Azul " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Consello: premer co botón dereito para retirar os puntos de control." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reducir o ruído" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Ruído" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmento" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Difuminado" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nubes" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Representar" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desenfocar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Retirar os ollos vermellos" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Brillo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detección do bordo" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizada" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Difuminado radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Cristal xeado" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsionar" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintura ao óleo" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artística" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal de Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Retrato suave" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relevo" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Debuxo a tinta" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Membrete" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Difuminado Gausiano" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Nitidez" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Engadir ruído" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Mosaico de reflexión" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelar" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Difuminado de movemento" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversión polar" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Pico" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoom no difuminado" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Debuxo a lapis" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorna" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Torsión" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiqueta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiqueta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Ruído aleatorio" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reiniciar" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Escoller unha cor primaria" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Escoller unha cor secundaria" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Escoller a paleta de cores" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Selección rectangular" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Premer co botón esquerdo e arrastrar para deseñar unha selección " "rectangular. Manter premida a tecla «Maiús» para restrinxir a un cadrado." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Clonar unha marca" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Premer Ctrl+ botón esquerdo para definir orixe, premer co botón esquerdo " "para pintar." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Pincel máxico" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Premer aquí para seleccionar unha zona de cor semellante." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectángulo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Premer co botón esquerdo e arrastrar para deseñar un rectángulo (premer co " "botón dereito para cor secundaria). Manter premida a tecla «Maiús» para " "restrinxir a un cadrado." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover a selección" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Arrastrar a selección para mover o contorno da selección." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Degradado" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Premer co botón esquerdo e arrastrar para deseñar un degradado de cor " "principal á secundaria. Premer co botón dereito para inverter." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Degradado lineal" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Degradado lineal en refracción" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Degradado lineal en diamante" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Degradado radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Degradado cónico" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Modo disperso" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Continuo" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancia" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pincel de pintura" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Premer co botón esquerdo para debuxar coas cores primarias e premer co botón " "dereito para debuxar coas cores secundarias." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Lapis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Premer co botón esquerdo para deseñar de forma libre, con liñas dun píxel de " "largo, de cor primaria, premer co botón dereito para usar a cor secundaria." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Seleccionar unha elipse" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Premer co botón esquerdo e arrastrar para deseñar unha selección elíptica. " "Manter premida a tecla «Maiús» para restrinxir a un círculo." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Liña" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Premer co botón esquerdo para debuxar coa cor primaria, premer co botón " "dereito para cor secundaria. Manter premida a tecla «Maiús» para axustar aos " "ángulos." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Borrar" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Premer co botón esquerdo para borrar o transparente e premer co dereito para " "borrar as cores secundarias. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Desprazar en horizontal" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Premer co botón esquerdo e arrastrar para explorar a imaxe." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Selector de cor" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Premer co botón esquerdo para seleccionar unha cor primaria. Premer co botón " "dereito para seleccionar unha cor secundaria." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Despois de seleccionar" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Non cambiar a ferramenta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Cambiar á ferramenta anterior" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Cambiar á ferramenta do lapis" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rectángulo redondeado" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radio" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Reducir o radio do canto dun rectángulo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Aumentar o radio do canto dun rectángulo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Mover os píxeles seleccionados" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Arrastrar a selección para mover o contido da selección." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Volver a colorar" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Premer co botón esquerdo para substituir a cor secundaria coa cor primaria." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Caldeiro de pintura" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Premer co botón esquerdo para encher a rexión coas cores primarias e co " "botón dereito para encher coas cores secundarias." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Premer co botón esquerdo e arrastrar para deseñar unha elipse (premer co " "botón dereito para a cor secundaria). Manter premida a tecla «Maiús» para " "restrinxir a un círculo." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Texto" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Premer co botón esquerdo para poñer o cursor e a continuación escoller o " "tipo de letra. A cor do texto é unha cor primaria." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Tipo de letra" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Negriña" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Cursiva" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Subliñado" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Aliñación cara a esquerda" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Aliñación centrada" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Aliñación cara a dereita" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estilo de texto" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal e contorno" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Encher o fondo" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Lonxitude de contorno" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Reducir o tamaño do contorno" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Aumentar o tamaño do contorno" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Lonxitude do pincel" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Reducir a lonxitude do pincel" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Aumentar a lonxitude do pincel" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Estilo de recheo" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Forma do contorno" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Encher o contorno" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Encher e dar forma ao contorno" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Círculos" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grade" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Cadrados" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Salpicado" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoom" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Premer co botón esquerdo para ampliar o zoom. Premer co botón dereito para " "reducir o zoom. Premer o botón esquerdo e arrastrar para seleccionar o zoom." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Selección de lazo" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" "Premer o botón esquerdo e arrastrar para deseñar un bordo para a area " "seleccionada." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma libre" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Sobre" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Ficheiro" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editar" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Ver" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imaxe" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Capas" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Axustes" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_ctos" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Xanela" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Ferramentas das xanelas" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Axuda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Ferramentas" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documentos" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Capas" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historial" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ocultar" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Panel" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancorábel" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotante" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Facer unha captura de pantalla" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes de facer unha captura (segundos):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Quere gardar os cambios «{0}» antes de pechar?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Se non garda, todos os cambios realizados perderanse." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Pechar sen gardar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Redimensionar a paleta" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Novo tamaño de paleta:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Colar nunha nova paleta" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacidade da capa" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renomear a capa" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ocultar a capa" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Mostrar a capa" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propiedades da capa" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Abrir un ficheiro de imaxe" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Ficheiro de imaxes" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Todos os ficheiros" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Gardar o ficheiro de imaxe como" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta non permite gardar imaxes neste formato." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Erro" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Xa existe o ficheiro co nome «{0}». Desexa substituílo?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Xa existe o ficheiro en «{1}». A substitución sobrescribe o seu contido." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calidade JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Calidade: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versión" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ruta" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contribuíron nesta versión" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Colaboradores anteriores" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Javier Rivera https://launchpad.net/~javier-isotecsl\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Manuel Xosé Lemos https://launchpad.net/~mxlemos\n" " Miguel Anxo Bouzada https://launchpad.net/~mbouzada\n" " ghas https://launchpad.net/~agghas\n" " xanocebreiro https://launchpad.net/~xanocebreiro" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traducido por:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Con base no traballo de Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Usando algunhas iconas:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Sobre Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Información sobre a versión" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenza" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Liberado baixo a licenza MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Dereitos de autoría" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Polos colaboradores de Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nome:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visíbel" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacidade:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensionar o lenzo" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Por porcentaxe:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Por tamaño absoluto:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Largura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "píxeles" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Manter a proporción de aspecto" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Áncora:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Cambiar o tamaño da imaxe" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova imaxe" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Novo tamaño da imaxe " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "número de fíos que procesar" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nome opcional" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efectos de representación" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imaxe sen gardar {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fondo" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Abrir a imaxe" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Non foi posíbel abrir o ficheiro da paleta: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Pegar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotar 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Voltear imaxe horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Voltear imaxe verticalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotar 90° á dereita" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotar 90° á esquerda" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Voltear capa horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Voltear capa verticalmente" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar píxeles" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Sitio web do Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Ficheiro de fallo" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traducir este aplicativo" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Gardar todo" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Pechar todo" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novo..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova captura de pantalla..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Abrir..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Abrir o recente" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Pechar" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Gardar" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Gardar como..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimir" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Saír" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Abrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Engadir unha nova capa" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Eliminar a capa" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicar a capa" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Mesturar coa capa inferior" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importar dun ficheiro..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Voltear horizontalmente" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Voltear verticalmente" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Subir a capa" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Baixar a capa" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Propiedades da capa..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importar dun ficheiro" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Recortar pola selección" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Recortar automaticamente a imaxe" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Redimensionar imaxe..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Redimensionar lenzo" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Aplanar" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Ampliar" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Reducir" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Axuste óptimo" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Facer zoom sobre a selección" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Tamaño normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra de ferramentas" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grade de píxeles" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Regras" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Píxeles" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Polgadas" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centímetros" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pantalla completa" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unidades da regra" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Xanela" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Desfacer" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Refacer" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cortar" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiar" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Pegar nunha nova imaxe" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Eliminar a selección" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Completar a selección" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverter a selección" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Seleccionar todo" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deseleccionar todo" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Restabelecer os predefinidos" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Estabelecer o número de cores" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Borrar a selección" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deseleccionar" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Abrir o ficheiro da paleta" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Ficheiros da paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Non foi posíbel abrir o ficheiro da paleta: {0}.\n" "Verifique que está tentando abrir unha paleta válida do GIMP ou do Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Gardar o ficheiro de paleta" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta do Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta do GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Capa" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copiar" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Ferramenta" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Atallo de teclado" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Fusionado normal" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Sobreescribir" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Activar o suavizado" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Desactivar o suavizado" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} Imaxe ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Xeral" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Cantidade" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ángulo" #: CloudsEffect dialog msgid "Antialias" msgstr "Suavizado" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modo de mistura" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brillo" #: PixelateData dialog msgid "Brush Size" msgstr "Tamaño do pincel" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Tamaño da cela" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Desprazamento do centro" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrado" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Basto" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Intervalo de cor" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturación de cor" #: GlowEffect dialog msgid "Coloring" msgstr "Coloreado" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "Cobertura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distancia" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportamento do bordo" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmentos" #: TileEffect dialog msgid "Ink Outline" msgstr "Contorno de tinta" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensidade" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Iluminación" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Desprazamento" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Suxestión do tamaño do lapis" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Enerxía" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Calidade" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotación" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Porcentaxe de saturación" #: CloudsEffect dialog msgid "Scale" msgstr "Escala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Xermolo" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Suavidade" #: OutlineEffect dialog msgid "Strength" msgstr "Resistencia" #: TileEffect dialog msgid "Thickness" msgstr "Grosor" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tamaño do mosaico" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Calor" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Usar a calidade baixa para a vista previa, as imaxes pequenas e os ángulos " "pequenos. Usar a calidade alta para a calidade final, as imaxes grandes e " "os ángulos grandes ." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Consello: para obter mellores resultados, primeiro use a selección de " "ferramentas para seleccionar cada ollo." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor de Imaxes" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Cree e edite imaxes fácilmente" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor de imaxes Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imaxes" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Non se pode gardar un ficheiro de só lectura" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "A imaxe a pegar é maior que o tamaño do lenzo. Que quere facer?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expandir o lenzo" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Non cambiar o tamaño do lenzo" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/he.po0000664000175000017500000015032011747026475015214 0ustar00cameroncameron00000000000000# Hebrew translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "רמות אוטומטיות" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "היפוך צבעים" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "רמות" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "ענתיקה" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "הפחתת כמות הצבעים" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "שחור ולבן" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "עקומות" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "בהירות / ניגודיות" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "גוון / רוויה" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "התאמת הרמות" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "היסטוגרמת הקלט" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "קלט" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "פלט" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "היסטוגרמת הפלט" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "אוטומטי" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "איפוס" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "אדום" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "ירוק" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "כחול" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "מקושר" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "מרחב צבעים להמרה" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "עצמת התאורה" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "אדום " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "כחול " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "עצה: לחצן ימני כדי להסיר נקודות בקרה." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "הפחתת רעש" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "רעש" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "שבר" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "טשטושים" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "עננים" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "עיבוד" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "יציאה ממיקוד" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "הסרת עיניים אדומות" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "צילום" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "פרקטל מנדלברוט" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "זריחה" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "איתור קצוות" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "מסוגנן" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "טשטוש מעגלי" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "זכוכית קפואה" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "עיוות" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "ציור שמן" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "אמנותי" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "פרקטל יוליה" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "ריכוך דיוקן" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "איזון גבהים" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "סקיצת דיו" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "חציוני" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "תבליט" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "טשטוש גאוסי" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "חידוד" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "הוספת רעש" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "השתקפות אריחית" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "טשטוש לפיקסלים" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "טשטוש בתנועה" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "היפוך קוטבי" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "בליטה" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "טשטוש מרחק" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "סקיצה בעפרון" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "קו מתאר" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "סיבוב" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "תווית1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "תווית" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "רעש אקראי" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "מיקום מחדש" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "בחירת צבע עיקרי" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "בחירת צבע משני" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "בחירת ערכת צבעים" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "בחירה ריבועית" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "יש ללחוץ ולגרור גדי לצייר בחירה ריבועית. יש להחזיק shift כדי לקבע את יחס " "הריבוע." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "חותמת העתקים" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+לחצן שמאלי כדי להגדיר את המקור, לחצן שמאלי לציור." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "בחירה עם שרביט קסם" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "יש ללחוץ כדי לבחור אזור בעל אותו הצבע." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "מלבן" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "יש ללחוץ ולגרור כדי לצייר מלבן (לחיצה ימנית לצבע משני). יש להחזיק shift כדי " "לקבע יחס לריבוע." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "הזזת האזור נבחר" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "יש לגרור את הבחירה כדי להזיז את קווי המתאר של הבחירה." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "מדרג" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "יש ללחוץ ולגרור כדי לצייר מדרג מהצבע העיקרי לצבע המשני. לחיצה ימנית להיפוך." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "מדרג קווי" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "מדרג קווי משתקף" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "מדרג קווי בצורת מעוין" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "מדרג מעגלי" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "מדרג חרוטי" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "מצב הצפה" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "המשכי" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "גלובלי" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "טולרנטיות" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "מברשת" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "לחיצה שמאלית כדי לצייר בצבע הראשי, לחיצה ימנית כדי לצייר בצבע המשני." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "סוג" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "עיפרון" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "לחיצה שמאלית כדי לצייר ביד חופשית, שורות ברוחב פיקסל אחד בצבע העיקרי, לחצן " "ימני כדי להשתמש בצבע המשני." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "בחירת אליפסה" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "יש ללחוץ ולגרור כדי לצייר בחירה אליפטית. יש להחזיק shift כדי לקבע את העיגול." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "קו" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "לחיצה שמאלית כדי לצייר עם הצבע הראשי, לחיצה ימנית כדי לצייר עם הצבע המשני. " "יש להחזיק Shift כדי להצמיד לזוויות." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "מוחק" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "יש ללחוץ עם לחצן העבר השמאלי כדי למחוק לצבע שקוף, עם מקש ימני כדי למחוק לצבע " "המשני: " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "ניווט" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "יש ללחוץ ולגרור כדי לנווט ברחבי התמונה." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "‏מלקט הצבעים" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "לחיצה בלחצן השמאלי כדי לבחור צבע עיקרי. בימיני כדי להגדיר את הצבע המשני." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "לאחר הבחירה" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "לא להחליף כלי" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "חזרה לכלי הקודם" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "מעבר לכלי העיפרון" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "מלבן מעוגל" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "רדיוס" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "הקטנת רדיוס הפינה של המרובע" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "הגדלת רדיוס הפינה של המרובע" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "הזזת הפיקסלים הנבחרים" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "יש לגרור את הבחירה כדי להזיז את התוכן הנבחר." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "החלפת צבעים" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "לחיצה שמאלית כדי להחליף את המשני בעיקרי." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "דלי צבע" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "לחיצה שמאלית כדי למלא אזור בצבע העיקרי, לחיצה ימנית כדי למלא בצבע המשני." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "אליפסה" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "יש ללחוץ ולגרור כדי לצייר אליפסה (לחצן ימני לצבע המשני). יש להחזיק shift כדי " "לקבע יחס לעיגול." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "טקסט" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "לחיצה שמאלית כדי להציב את הסמן, ואז להקליד את הטקסט הרצוי. צבע הטקסט הוא " "הצבע העיקרי." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "גופן" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "מודגש" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "נטוי" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "קו תחתי" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "יישור לשמאל" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "יישור למרכז" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "יישור לימין" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "סגנון הטקסט" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "רגיל" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "רגיל ומתאר" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "עובי המתאר" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "הקטנת עובי המתאר" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "עיבוי המתאר" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "עובי המברשת" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "הקטנת גודל המברשת" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "הגדלת גודל המברשת" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "סגנון המילוי" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "קו המתאר של הצורה" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "מילוי הצורה" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "מילוי וקו המתאר של הצורה" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "עיגולים" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "רשת" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "מרובעים" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "פיזור" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "תקריב" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "לחיצה שמאלית להתקרבות. לחצן ימני להתרחקות. לחיצה וגרירה כדי להתקרב לבחירה." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "בחירת פלצור" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "יש ללחוץ ולגרור כדי לצייר קו מתאר לאזור הבחירה." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "צורה ביד חופשית" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "על אודות" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_קובץ" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "ע_ריכה" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "ת_צוגה" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "ת_מונה" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "שכ_בות" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "הת_אמות" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_אפקטים" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_חלון" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "חלונות כלים" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "ע_זרה" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "כלים" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "לוח צבעים" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "מסמכים" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "שכבות" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "היסטוריה" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "הסתרה" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "עגינה" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "הסתרה אוטומטית" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "ניתן לעגינה" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "צף" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "צילום המסך" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "ההשהיה שלפני צילום המסך (בשניות):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "האם לשמור את השינויים לתמונה \"{0}\" בטרם היציאה?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "אם השינויים לא ישמרו הם יאבדו לעד." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "סגירה ללא שמירה" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "שינוי גודל ערכת הצבעים" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "גודל ערכת הצבעים החדשה:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "הדבקה לשכבה חדשה" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "אטימות השכבה" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "שינוי שם השכבה" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "הסתרת השכבה" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "הצגת השכבה" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "מאפייני השכבה" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "פתיחת קובץ תמונה" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "קובצי תמונה" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "כל הקבצים" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "שמירת קובץ תמונה" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "ל־Pinta אין תמיכה בשמירת תמונות במבנה קובץ זה." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "שגיאה" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "קובץ בשם \"{0}\" כבר קיים. האם ברצונך להחליף אותו?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "הקובץ כבר קיים תחת \"{1}\". החלפתו תשכתב על תוכנו." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "איכות ה־JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "איכות: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "כותרת" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "גרסה" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "נתיב" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "תורמים להפצה זו" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "תורמי עבר" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " David Raviv https://launchpad.net/~davrav\n" " Yaron https://launchpad.net/~sh-yaron\n" " hatul https://launchpad.net/~amiadb" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "תורגם על ידי:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "מבוסס על העבודה של Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "נעשה שימוש בכמה סמלים מ־:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "על אודות Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "נתוני הגרסה" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "רישיון" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "שוחרר תחת תנאי הרישיון MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "כל הזכויות שמורות" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "לתורמי Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "שם:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "גלוי" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "אטימות:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "שינוי גודל משטח הציור" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "באחוזים:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "בגודל מוחלט:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "רוחב:‏" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "פיקסלים" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "גובה:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "שמירה על יחס גובה־רוחב" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "עוגן:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "שינוי גודל התמונה" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "תמונה חדשה" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "גודל התמונה החדשה " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "מספר הפתילים לשימוש בטרם העיבוד" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "שם האפשרות" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "אפקט עיבוד" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "תמונה שלא נשמרה {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "רקע" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "פתיחת תמונה" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "לא ניתן לפתוח את הקובץ: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "הדבקה" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "היפוך ב־180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "היפוך התמונה אופקית" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "היפוך התמונה אנכית" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "היפוך ב־90° עם כיוון השעון" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "היפוך ב־90° נגד כיוון השעון" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "היפוך השכבה אופקית" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "היפוך השכבה אנכית" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "גימור הפיקסלים" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "אתר הבית של Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "דיווח על באג" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "תרגום יישום זה" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "שמירת הכול" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "סגירת הכול" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "חדשה..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "צילום מסך חדש..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "פתיחה..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "נפתחו לאחרונה" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "סגירה" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "שמירה" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "שמירה בשם..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "הדפסה" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "יציאה" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "חדשה" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "פתיחה" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "הוספת שכבה חדשה" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "מחיקת שכבה" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "שכפול שכבה" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "מיזוג השכבה כלפי מטה" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "ייבוא מקובץ..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "היפוך אופקי" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "היפוך אנכי" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "הגבהת השכבה" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "הנמכת השכבה" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "מאפייני השכבה..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "ייבוא מקובץ" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "חיתוך לבחירה" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "חיתוך אוטומטי" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "שינוי גודל התמונה..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "שינוי גודל משטח הציור..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "השטחה" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "התקרבות" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "התרחקות" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "ההתאמה הטובה ביותר" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "תקריב על הבחירה" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "גודל רגיל" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "סרגל כלים" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "רשת פיקסלים" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "סרגלים" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "פיקסלים" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "אינטשים" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "סנטימטרים" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "מסך מלא" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "יחידות הסרגל" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "חלון" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "ביטול" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "ביצוע חוזר" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "גזירה" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "העתקה" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "הדבקה לתמונה חדשה" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "מחיקת הבחירה" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "מילוי הבחירה" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "היפוך הבחירה" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "בחירת הכול" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "ביטול בחירת הכול" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "איפוס לבררת המחדל" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "הגדרת מספר הצבעים" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "מחיקת הבחירה" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "ביטול בחירה" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "פתיחת קובץ ערכת צבעים" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "קובצי ערכת צבעים (‎*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "לא ניתן לפתוח את קובץ ערכת הצבעים: {0}.\n" "נא לוודא שהקובץ המיועד לפתיחה הוא ערכת צבעים תקנית של GIMP או Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "שמירת קובץ ערכת הצבעים" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "ערכת צבעים של Paint.NET‏ (‎*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "ערכת צבעים של GIMP‏ (‎*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "שכבה" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "עותק" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "כלי" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "מקשי קיצור" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "ערבול רגיל" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "דריסה" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "החלקה פעילה" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "החלקה כבויה" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} תמונה ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "כללי" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "כמות" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "זווית" #: CloudsEffect dialog msgid "Antialias" msgstr "החלקת קצוות" #: GlowEffect dialog msgid "Blend Mode" msgstr "מצב ערבול" #: OilPaintingEffect dialog msgid "Brightness" msgstr "בהירות" #: PixelateData dialog msgid "Brush Size" msgstr "גודל המברשת" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "גודל התא" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "היסט מהמרכז" #: OilPaintingEffect dialog msgid "Centered" msgstr "ממורכז" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "חוזק" #: AddNoiseEffect dialog msgid "Color Range" msgstr "טווח צבעים" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "רווית הצבע" #: GlowEffect dialog msgid "Coloring" msgstr "צביעה" #: AddNoiseEffect dialog msgid "Contrast" msgstr "ניגודיות" #: FragmentEffect dialog msgid "Coverage" msgstr "כיסוי" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "מרחק" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "התנהגות הקצוות" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "מקדם" #: InkSketchEffect dialog msgid "Fragments" msgstr "שברים" #: TileEffect dialog msgid "Ink Outline" msgstr "קווי המתאר בדיו" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "עצמה" #: RadialBlurEffect dialog msgid "Lighting" msgstr "תאורה" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "היסט" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "גודל חוד העפרון" #: CloudsEffect dialog msgid "Percentile" msgstr "באחוזים" #: RadialBlurEffect dialog msgid "Power" msgstr "חוזק" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "איכות" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "סיבוב" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "אחוז הרוויה" #: CloudsEffect dialog msgid "Scale" msgstr "קנה מידה" #: SoftenPortraitData dialog msgid "Seed" msgstr "זרע" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "רכות" #: OutlineEffect dialog msgid "Strength" msgstr "עצמה" #: TileEffect dialog msgid "Thickness" msgstr "עובי" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "גודל האריח" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "חום" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "כדאי להשתמש באיכות נמוכה עבור תצוגות מקדימות, תמונות קטנות וזוויות קטנות. " "באיכות גבוהה כדאי להשתמש לאיכות גימור, תמונות גדולות וזוויות גדולות." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "עצה: לקבלת התוצאות המיטביות כדאי תחילה לסמן כל אחת מהעיניים באמצעות כלי " "הבחירה." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "עורך תמונות" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "יצירה ועריכה של תמונות בפשטות" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "עורך התמונות Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "תמונות" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "לא ניתן לשמור קובץ לקריאה בלבד." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "התמונה המודבקת גדולה מגודל משטח הציור. מה ברצונך לעשות?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "הרחבת משטח הציור" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "לא לשנות את גודל משטח הציור" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/hi.po0000664000175000017500000012721411747026475015226 0ustar00cameroncameron00000000000000# Hindi translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2011-10-08 20:43+0000\n" "Last-Translator: Manish Sinha (मनीष सिन्हा) \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "स्वचालित समतल" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "रंग उलटें" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "स्तर" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "सीपिया" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "पोस्टरैज" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "काला और सफेद" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "वक्र" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "चमक / कंट्रास्ट" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "इनपुट" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "आउटपुट" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "स्वचालित" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "पुनः स्थापित करो" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "लाल" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "हरा" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "नीला" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "जूड़ा हुआ" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "आरजीबी" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "चमक" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(२५६, २५६)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "सलाह : संयम बिंदु हटाने के लिए दाहिने दबाये" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "शोर घटाए" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "शोर" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "टुकड़ा" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "टुकड़ा" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "बादल" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "प्रस्तुत करना" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "ध्यान हटाये" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "लाल आँख हटाये" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "चित्र" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "चमक" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "किनारा पकड़" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "शैली के अनुरूप बनाये" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "विकृतियाँ" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "तेल चित्रकारी" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "कलाकारी" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "जूलिया फ्ऱैक्टल" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "आराम" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "स्याही प्रारूप" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "मेडियन" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "एम्बोज़" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "गॉसियन फ़ीका" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "तेज करें" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "शोरगुल जोडें" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "टाइल झलक" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "पीक्सेलते" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "गति धुंधला" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "जूम धुंधला" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "पेंसिल से बनाये" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "बाहरी रूपरेखा" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "लेबल" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "अनियमित शोरगुल" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "रिसीद" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "प्रमुख रंग चुनें" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "द्वितीयक रंग चुनें" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "चतुर्भुज चुनें" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "प्रतिरूपण उपकरण" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "चतुर्भुज" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Manish Sinha (मनीष सिन्हा) https://launchpad.net/~manishsinha" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/hr.po0000664000175000017500000014255711747026475015246 0ustar00cameroncameron00000000000000# Croatian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Mario Dautović \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatsko poravnavanje razine" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Obrni boje" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Razine" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posteriziranje" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Crno-bijelo" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krivulje" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Jačina osvijetljena / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nijansa / Zasićenje" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Prilagodba razina" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Unosni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Unos" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Ispis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Izlazni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatski" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Vrati na zadano" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Crvena" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zelena" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Plava" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Povezano" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa prijenosa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Osvjetljenje" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Crvena " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Plava " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Savjet: Desni-klik za uklanjanje kontrolnih točaka." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Korekcija šuma" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Zamučenje" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Oblaci" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Iscrtaj" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Ukloni focus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Uklanjanje efekta crvenih očiju" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografija" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrotov fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Sjaj" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detekcija rubova" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stiliziraj" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radijalan zamućenost" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Staklo sa mrazom" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Deformiraj" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Uljana slika" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umjetničko" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julijin fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Smekšaj portret" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljef" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Skica tintom" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Izboči" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussovo zamućivanje" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Izoštri" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Dodaj šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Odsjaj pločice" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikseliziraj" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Pomično Zamućenje" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polarna inverzija" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Ispupči" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Uvećano zamućenje" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Skica olovkom" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontura" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Zakreni" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "oznaka1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "oznaka" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Nasumična buka" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Ponovno zasij" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Odaberite primarnu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Odaberite sekundarnu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Odaberite boju palete" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Pravokutni odabir" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Kliknite i povucite za crtanje pravokutnog odabira. Držite shift za kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Alat za kloniranje" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-lijevi klik za odabir izvora, desni klik za bojanje" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magic Wand odabir" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Kliknite za odabir područja slične boje" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Pravokutnik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Kliknite i povucite za crtanje pravokutnika (desni klik za sekundarnu boju). " "Držite shift za kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pomicanje označenog" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Povucite ozačeno za premještavanje vanjskih crta" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradijent" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Kliknite i povucite za crtanje gradijenta između primarne i sekundarne boje. " "Desni klik za obrnuto." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linijski gradijent" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linijski zrcalni gradijent" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linijski dijamantski gradijent" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radijalni gradijent" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Konusni gradijent" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Poplavni način" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Povezujući" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Opći" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancija" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Kist" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Lijevi klik za crtanje sa primarnom, desni za crtanje sekundarnom bojom." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Vrsta" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Olovka" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Lijevi klik za slobodno crtanje crtama debljine jednog piksela primarnom " "bojom, desni klik za sekundarnu boju." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Eliptični odabir" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Kliknite i povucite za crtane eliptičnog odabira. Držite shift za krug." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Crta" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Lijevi klik za crtanje primarnom bojom, desni klik za sekundarnu boju. " "Držite Shift za hvatanje za rubove." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gumica za brisanje" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "LIjevi klik za prozirno brisanje, desni klik za brisanje sekundardnom bojom. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Cilindar" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Kliknite i povucite za proučavanje slike." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Birač boja" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Lijevi klik za postavljanje primarne boje. Desni klik za postavljanje " "sekundarne boje." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Nakon odabira" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne mijenjaj alat" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Vrati prethodni alat" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Koristi olovku" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaobljeni pravokutnik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Polumjer" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Smanji polumjer kuteva pravokutnika" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Povećavanje polumjera kuteva pravokutnika" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Premjesti odabrane točke" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Povuci odabir za premještanje odabranog sadržaja" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Ponovno oboji" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Lijevi klik za zamjenu sekundarne primarnom bojom." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Kanta boje" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "LIjevi klik za popunjavanje područa primarnom bojom, desni klik za " "popunjavanje sekundardnom bojom." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Kliknite i povucite za crtanje elipse (desni klik za sekundarnu boju). " "Držite shift za ograničavanje kruga." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "LIjevi klik za namještavanje kursora, zatim upišite tekst. Boja teksta je " "primarna." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Polumastan tisak" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Ukošena slova" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podvučena slova" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Postrojiti lijevo" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Postrojiti u sredinu" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Postrojiti desno" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stil teksta" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normalan" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normalan sa obrisom" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Ispuni pozadinu" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Širina obrisa" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Smanji veličinu obrisa" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Povećaj veličinu obrisa" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Širina kista" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Smanji veličinu kista" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Povećaj veličinu kista" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Način popunjavanja" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Oblik obrisa" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Oblik popunjavanja" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Oblik popunjavanja i obrisa" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Krugovi" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Rešetka" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kvadrati" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Brčkanje" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Povećati" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Lijevi klik za približavanje. Desni klik za udaljavanje. Kliknite i povucite " "za približavanje odabira." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Laso odabir" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknite i povucite za crtanje obrisa za područje odabira." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Slobodni oblik" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O aplikaciji..." #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Datoteka" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Uredi" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Prikaz" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Slika" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Slojevi" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Podešenja" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efek_ti" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Prozor" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Prozori s alatima" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pomoć" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Alati" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenti" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Slojevi" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Stare stavke" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Sakrij" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dok" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatski Sakrij" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Usidrivo" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutajuće" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Snimi prikaz zaslona" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Pričekaj prije snimanja zaslona (u sekundama):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Sačuvaj promjene na slici \"{0}\" prije zavaranja?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ako ne sačuvate, sve promjene će biti trajno izgubljene." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zatvori bez spremanja" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Promjena veličine palete" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nova veličina palete:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Zalijepi u novi sloj" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Prozirnost sloja" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Preimenuj sloj" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Sakri sloj" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Prikaži slok" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Postavke slojeva" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Otvori sliku" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Slikovne datoteke" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Sve datoteke" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Sačuvaj sliku" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podržava zapisivanje slika tog formata." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Pogrješka" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Datoteka naziva\"{0}\" već postoji. Želite li je zamijeniti?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Datoteka već postoji u \"{1}\". Zamjena datoteke će prepisati sav sadržaj." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvaliteta" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvaliteta: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naslov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Inačica" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Putanja" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Suradnici u ovoj verziji" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Prijašnji suradnici" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Mario Dautović https://launchpad.net/~mario-dautovic\n" " nafterburner https://launchpad.net/~nafterburner\n" " tty https://launchpad.net/~tty29a" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Preveli:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Bazirano na programu Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Koristi pojedine slikice iz:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O Pinti" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacije o inačici" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenca" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Licencirano po MIT X11 licenci" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autorska prava" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "od Pinta suradnika" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Naziv:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Vidljivo" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Prozirnost:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Promjeni velčinu platna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Prema postotku:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Prema absolutnoj veličini:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Širina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikseli" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Visina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Održi omjer slike" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Sidro:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Promijeni veličinu slike" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova slika" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nova veličina slike " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "broj dretvi za iscrtavanje" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "NazivOdabira" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efekt iscrtavanja" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nepohranjena slika{0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Pozadina" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otvori sliku" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nije se mogla otvoriti datoteka: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Zalijepi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Okreni 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Zrcali sliku vodoravno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Zrcali sliku okomito" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Okreni 90° u smjeru kazaljke na satu" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Okreni 90° suprotnu smjeru kazaljke na satu" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Zrcali sloj vodoravno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Zrcali sloj okomito" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dovrši piksele" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta internet stranica" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Prijavi pogrješku" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Prevedite ovaj program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Pohrani sve" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zatvori sve" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nova…" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova snimka zaslona ekrana" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otvori…" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Otvori nedavno" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zatvori" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Spremi" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Spremi kao…" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Ispiši" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Ugasi" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novi" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otvori" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Dodaj novi sloj" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Obriši sloj" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliciraj sloj" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Stopi prema dolje" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Unesi iz datoteke..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Vodoravno zrcaljenje" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Okomito zrcaljenje" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotiraj / Povećaj sloj..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Pomakni sloj gore" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Pomakni sloj dolje" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Postavke sloja..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Unesi iz datoteke" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Odreži prema izabranome" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatsko obrezivanje" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Promjeni veličinu slike..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Promjeni veličinu platna..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Spljošti" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Povećaj" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Smanji" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Najbolje pristajanje" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Povećaj označeno" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normalna veličina" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Alatna traka" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Rešetka piksela" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Ravnala" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikseli" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Palci" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Preko čitavog zaslona" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jedinica ravnala" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Prozor" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Vrati" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ponovi" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Izreži" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiraj" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Zalijepi u novu sliku" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Ukloni odabir" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Ispuni izabrano" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Obrni izabrano" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Označi sve" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Ukloni odabir" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Vrati u početno stanje" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Postavi broj boja" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Obriši izabrano" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Odznači" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otvori datoteku palete" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Otvaranje datoteke paleta nije uspjelo: {0}.\n" "Provjerite da li se radi o GIMP ili Paint.NET datoteci paleta." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Pohrani datoteku paleta" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Sloj" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiraj" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Alat" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Tipka kratice" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normalno miješanje" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Prepiši" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Uključen antialiasing" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Isključen antialiasing" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Općenito" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Količina" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kut" #: CloudsEffect dialog msgid "Antialias" msgstr "Izglađeni rub" #: GlowEffect dialog msgid "Blend Mode" msgstr "Način mješanja" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Osvijetljenost" #: PixelateData dialog msgid "Brush Size" msgstr "Veličina kista" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Veličina ćelije" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centriraj pomak" #: OilPaintingEffect dialog msgid "Centered" msgstr "Sredinom" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Hrapavost" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Raspon boje" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Zasićenost boje" #: GlowEffect dialog msgid "Coloring" msgstr "Bojanje" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokrivenost" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Udaljenost" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Ponašanje ruba" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenti" #: TileEffect dialog msgid "Ink Outline" msgstr "Obris tinte" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Osvjetljenje" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Pomak" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Veličina vrška olovke" #: CloudsEffect dialog msgid "Percentile" msgstr "Postotak" #: RadialBlurEffect dialog msgid "Power" msgstr "Snaga" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvaliteta" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Zakretanje" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Postotak zasićenosti" #: CloudsEffect dialog msgid "Scale" msgstr "Promjeni veličinu" #: SoftenPortraitData dialog msgid "Seed" msgstr "Zasij" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mekoća" #: OutlineEffect dialog msgid "Strength" msgstr "Snaga" #: TileEffect dialog msgid "Thickness" msgstr "Debljina" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Veličina pločice" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Toplina" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Koristi manje kvalitetan prikaz za ogledne slike, make slike i male kutove. " "Koristi visoku kvalitetu prikaza za završnu sliku, velike slike i velike " "kutove." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Savjet: Za najbolje rezultate izaberite oba oka pomoću alata za selekciju" #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Uređivač slika" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Kreirajte i obrađujte slike sa lakoćom" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta uređivač slika" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Slike" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nije moguće spremiti datoteku namijenjenu samo za čitanje." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Slika koju lijepite je veća od veličine platna. Što želite učiniti sljedeće?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Povećaj platno" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ne mijenjaj veličinu platna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotiraj / Povećaj sloj" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/hu.po0000664000175000017500000014477611747026475015256 0ustar00cameroncameron00000000000000# Hungarian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-01-29 18:14+0000\n" "Last-Translator: Richard Somlói \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatikus szintek" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Színek invertálása" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Szintek" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Szépia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Poszterizálás" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Fekete-fehér" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Görbék" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Fényerő / Kontraszt" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Színezet / Telítettség" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Szintbeállítás" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Bemeneti hisztogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Bemenet" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Kimenet" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Kimeneti hisztogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatikus" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Visszaállítás" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Vörös" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zöld" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Kék" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Kapcsolva" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Átviteli térkép" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Fényesség" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Vörös " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Kék " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tipp: jobb-klikk a kontrollpontok eltávolításához" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Zaj csökkentése" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Zaj" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Töredék" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Elmosások" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Felhők" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderelés" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Életlenít" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Vörös szem eltávolítása" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fénykép" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktál" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Ragyogás" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Élek észlelése" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizálás" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Körkörös elmosás" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Fagyos üveg" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Torzítás" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olajfestmény" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Művészi" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-fraktál" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Portré lágyítása" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Dombormű" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Tinta vázlat" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Medián" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Domborítás" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gauss-elmosás" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Élesítés" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Zaj hozzáadása" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Mozaik tükröződés" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelesítés" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Bemozdulás" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Poláris inverzió" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Kidudorodás" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Nagyítással elmosás" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Ceruzavázlat" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Körvonal" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Elcsavarás" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "címke1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "címke" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Véletlen zaj" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Újraelosztás" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Elsődleges szín kiválasztása" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Másodlagos szín kiválasztása" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Színpaletta kiválasztása" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Téglalap-kijelölés" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Kattintson és húzza az egeret a téglalap alakú kijelöléshez. Tartsa lenyomva " "a Shift billentyűt a négyzet alakú kijelöléshez." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klónozó bélyegző" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl és bal egérgomb a kijelöléshez, bal egérgomb a festéshez." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Kijelölés varázspálcával" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Kattintson a hasonló színű terület kiválasztásához." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Téglalap" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Kattintson és húzza az egeret négyszög rajzoláshoz (másodlagos színhez jobb " "klikk). A Shift billentyűt nyomva tartva rögzíti az oldalarányokat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Kijelölés áthelyezése" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Húzza a kijelölést annak elmozdításához." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Színátmenet" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Bal egérgombbal színátmenetet rajzolhat az elsődleges színtől a " "másodlagosig. Jobb egérgomb a fordított színátmenethez." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineáris színátmenet" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineáris tükrözött színátmenet" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Lineáris rombusz színátmenet" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Sugárirányú színátmenet" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kúpos színátmenet" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Elöntés" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Egybefüggő" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Általános" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tűrés" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Ecset" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Bal egérgomb az elsődleges, jobb egérgomb a másodlagos színnel rajzoláshoz." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Típus" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Ceruza" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Bal egérgombbal szabad kezű, egy képpont széles vonal az elsődleges színnel, " "jobb egérgombbal a másodlagos színnel." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipszis-kijelölés" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Kattintson és húzza az egeret elliptikus kijelöléshez, kör alakú " "kijelöléshez tartsa nyomva a Shift billentyűt." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Vonal" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Bal egérgomb az elsődleges színnel rajzoláshoz, jobb egérgomb a " "másodlagoshoz. Tartsa lenyomva a Shift billentyűt a szöghöz illesztéshez." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Radír" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Bal egérgombbal átlátszóra töröl, jobb egérgombbal a másodlagos színre. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Kéz eszköz" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Kattintson és húzza a kép navigálásához." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Színválasztó" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Bal egérgombbal az elsődleges szín beállításához. Jobb egérgombbal a " "másodlagos szín beállításához." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Kijelölés után" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne váltson eszközt" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Váltás az előző eszközre" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Váltás ceruza eszközre" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Lekerekített téglalap" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Sugár" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Csökkenti a téglalap sarkának lekerekítési sugarát" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Növeli a téglalap sarkának lekerekítési sugarát" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "A kijelölt képpontok mozgatása" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Húzza a kijelölést a terület elmozdításához" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Átszinező" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Bal egérgombbal cseréli a másodlagos színt az elsődlegesre." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Festékes vödör" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Bal egérgombbal a terület kitöltése elsődleges színnel, jobb egérgombbal a " "másodlagos színnel." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipszis" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Kattintson és húzz az egeret ellipszis rajzoláshoz (jobb egérgombbal a " "másodlagos színnel). Tartsd lenyomva a Shift billentyűt a szabályos kör " "alakhoz." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Szöveg" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Bal kattintásra elhelyezi a kurzort, majd gépelje a kívánt szöveget. A " "szöveg színe az elsődleges szín lesz." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Betűtípus" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Félkövér" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Dőlt" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Aláhúzás" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Balra igazítás" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Középre igazítás" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Jobbra igazítás" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Szöveg stílus" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normál" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normál és körvonal" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Háttér kitöltése" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Körvonal vastagság" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Csökkenti a körvonal méretét" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Növeli a körvonal méretét" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Ecsetvastagság" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Csökkenti az ecset méretét" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Növeli az ecset méretét" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Kitöltési stílus" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Alakzat körvonala" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Alakzat kitöltése" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Alakzat kitöltése és körvonala" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Körecset" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Rács" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Négyzetecset" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Folt ecset" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Nagyító" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Bal egérgombbal nagyít. Jobb egérgombbal kicsinyít. Kattintson és húzz az " "egeret a kijelölésre nagyításhoz." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasszó kijelölés" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Kattintson és húzz az egeret a kijelöléshez." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Szabad alakzat" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Névjegy" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fájl" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Szerkesztés" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Nézet" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Kép" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Rétegek" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Korrekciók" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Effektusok" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Ablak" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Eszközablakok" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Súgó" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Eszközök" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paletta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumentumok" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Rétegek" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Előzmények" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Elrejtés" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dokkolás" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatikus elrejtés" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokkolható" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Lebegő" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Képernyőkép készítése" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Várakozás a képernyőmentés előtt (mp):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Menti a(z) „{0}” képen végzett változtatásokat?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ha nem menti, akkor minden változtatás véglegesen elvész." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Bezárás mentés nélkül" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Paletta átméretezése" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Új palettaméret:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Beillesztés új rétegre" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Rétegátlátszóság" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Réteg átnevezése" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Réteg elrejtése" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Réteg megjelenítése" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Réteg tulajdonságai" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Kép megnyitása" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Képfájlok" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Minden fájl" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Kép fájl mentése" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "A Pinta nem támogatja ezt a fájlformátumot." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Hiba" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "A(z) „{0}” nevű fájl már létezik. Felülírja?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "A fájl már létezik itt: „{1}”. Cseréje a tartalom felülírásával jár." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG minőség" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Minőség: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Cím" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Verzió" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Elérési út" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Közreműködtek ehhez a verzióhoz" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Korábbi közreműködők" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Mechanick https://launchpad.net/~info-mechanick\n" " Richard Somlói https://launchpad.net/~ricsipontaz\n" " Robert Roth https://launchpad.net/~evfool\n" " Vizion-HUN https://launchpad.net/~vizler-k" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Fordította:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Az alkalmazás a Paint.NET projekten alapul:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Néhány ikon forrása:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Pinta névjegye" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Verzióinformáció" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenc" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Kiadva a MIT X11 licenc alatt." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Szerzői jog" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "– Pinta közreműködők" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Név:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Láthatóság" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Áttetszőség:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Rajzvászon átméretezése" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Százalékos:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Méret alapján:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Szélesség:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "képpontok" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Magasság:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Méretarány megőrzése" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Horgony:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Kép átméretezése" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Új kép" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Új kép méret " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "a leképezésre használt szállak száma" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OpcióNév" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Effektus renderelése" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nem mentett kép {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Háttér" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Kép megnyitása" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nem sikerült a fájl megnyitása: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Beillesztés" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Elforgatás 180°-kal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Kép tükrözése vízszintesen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Kép tükrözése függőlegesen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Elforgatás 90°-kal az óramutató irányában" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Elforgatás 90°-kal az óramutató irányával ellentétesen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Réteg tükrözése vízszintesen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Réteg tükrözése függőlegesen" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Befejező képpontok" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta weboldala" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Hibajelentés" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Az alkalmazás fordítása" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Összes mentése" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Összes bezárása" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Új…" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Új képernyőkép…" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Megnyitás…" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Mostanában megnyitott" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Bezárás" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Mentés" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Mentés másként…" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Nyomtatás" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Kilépés" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Új" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Megnyitás" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Új réteg létrehozása" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Réteg törlése" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Réteg duplikálása" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Réteg beolvasztása az alatta lévőbe" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importálás fájlból…" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Vízszintes tükrözés" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Függőleges tükrözés" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Réteg forgatása/nagyítása…" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Réteg feljebb mozgatása" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Réteg lejjebb mozgatása" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Réteg tulajdonságai…" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importálás fájlból" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Kijelölés méretére vágása" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatikus vágás" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Kép átméretezése…" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Rajzvászon átméretezése…" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Rétegek egybeolvasztása" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Nagyítás" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Kicsinyítés" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Legjobb illeszkedés" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Nagyítás a kijelölésre" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normál méret" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Eszköztár" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Képpontrács" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Vonalzók" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Képpontok" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Hüvelyk" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centiméter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Teljes képernyő" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Vonalzó mértékegysége" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Ablak" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Visszavonás" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Újra" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Kivágás" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Másolás" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Beillesztés új képként" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Kiválasztás törlése" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Kijelölés kitöltése" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Kijelölés megfordítása" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Összes kijelölése" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Kijelölés megszüntetése" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Visszaállítás alapértelmezettre" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Színek számának beállítása" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Kijelölés törlése" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Kijelölés megszüntetése" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Paletta fájl megnyitása" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletta fájlok (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nem sikerült megnyitni a paletta fájlt: {0}.\n" "Győződjön meg róla, hogy érvényes GIMP vagy Paint.NET palettát akart " "megnyitni." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Paletta fájl mentése" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paletta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paletta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Réteg" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "másolás" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Eszköz" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Gyorsbillenytű" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normál átfedés" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Felülírás" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "AA élsímítás be" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "AA élsímítás ki" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} kép ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Általános" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Mennyiség" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Szög" #: CloudsEffect dialog msgid "Antialias" msgstr "Élsimítás" #: GlowEffect dialog msgid "Blend Mode" msgstr "Keverék mód" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Fényerő" #: PixelateData dialog msgid "Brush Size" msgstr "Ecsetméret" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cellaméret" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Középpont eltolása" #: OilPaintingEffect dialog msgid "Centered" msgstr "Középen" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Durvaság" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Színtartomány" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Színtelítettséget" #: GlowEffect dialog msgid "Coloring" msgstr "Színezés" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontraszt" #: FragmentEffect dialog msgid "Coverage" msgstr "Terjedelem" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Távolság" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Szélek viselkedése" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Tényező" #: InkSketchEffect dialog msgid "Fragments" msgstr "Töredékek" #: TileEffect dialog msgid "Ink Outline" msgstr "Tinta körvonala" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzitás" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Megvilágítás" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Eltolás" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Ceruzahegy-méret" #: CloudsEffect dialog msgid "Percentile" msgstr "Százalékos" #: RadialBlurEffect dialog msgid "Power" msgstr "Teljesítmény" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Minőség" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Elforgatás" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Százalékos telítettség" #: CloudsEffect dialog msgid "Scale" msgstr "Méretarány" #: SoftenPortraitData dialog msgid "Seed" msgstr "Kezdőérték" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Lágyság" #: OutlineEffect dialog msgid "Strength" msgstr "Szilárdság" #: TileEffect dialog msgid "Thickness" msgstr "Vastagság" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Csempeméret" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Fraktál hőfok" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Használjon alacsony minőséget előnézetekhez, kis méretű képekhez. Használjon " "magas minőséget a végeredményhez, nagy méretű képekhez." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "Tipp: A jobb eredményhez jelölje ki a képen található szemeket." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Képszerkesztő" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Képek egyszerű készítése és szerkesztése" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta képszerkesztő" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Képek" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nem menthető a fájl. Csak olvasható." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "A beillesztendő kép nagyobb, mint a rajvászon mérete. Mégis kívánja " "folytatni?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Rajzvászon kiterjesztése" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ne változtassa a rajzvászon méretét" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Réteg forgatása/nagyítása" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/hy.po0000664000175000017500000012415411747026475015246 0ustar00cameroncameron00000000000000# Armenian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2011-03-30 16:17+0000\n" "Last-Translator: Jonathan Pobst \n" "Language-Team: Armenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Vardan Gevorgyan https://launchpad.net/~vgevorgyan" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Պատուհան" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Շերտ" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/id.po0000664000175000017500000014073011747026475015220 0ustar00cameroncameron00000000000000# Indonesian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" "X-Poedit-Country: INDONESIA\n" "X-Poedit-Language: Indonesian\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto-Level" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inversikan Warna" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Tingkat" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterkan" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Hitam dan Putih" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurva" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Kecerahan / Kontras" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Warna / Kepekatan" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Penyesuaian Level" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Masukan Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Masukan" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Keluaran" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Keluaran Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Atur Ulang" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Merah" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Hijau" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Biru" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Terkait" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Peta Transfer" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Kecemerlangan" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Merah " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Biru " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Klik-kanan untuk menghapus titik kendali." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Kurangi Derau" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Derau" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmen" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Buram" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Awan" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Pencitraan" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Awafokus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Hilangkan Mata Merah" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Berpendar" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Deteksi Tepian" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Gayakan" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Pengaburan Melingkar" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Kaca Buram" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsi" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Cat Minyak" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistik" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Haluskan Foto" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Sketsa Tinta" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Timbul" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Pengaburan Gaussian" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Pertajam" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Tambah derau" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Refleksi Ubin" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselkan" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Pengaburan Gerak" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversi Kutub" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Tonjolkan" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Pengaburan Zum" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Sketsa Pensil" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kerangka" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Pelintir" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Derau Acak" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Umpankan-ulang" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Pilih Warna Primer" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Pilih Warna Sekunder" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Pilih Warna Palet" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Pemilih Persegi Panjang" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klik dan seret untuk memilih bentuk persegi panjang. Tahan shift untuk " "membentuk bujursangkar." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Duplikasi Stempel" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-Kiri untuk menentukan titik mula, klik kiri untuk melukis" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Pemilih Tongkat Ajaib" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Pilih untuk memilih area yang warnanya mirip." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Persegi Panjang" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klik dan seret untuk menggambar persegi panjang (klik kanan untuk warna " "sekunder). Tahan shift untuk memaksakan bentuk bujursangkar." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pindahkan Pemilih" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Seret pemilih untuk memindahkan garis tepi pemilih." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradiasi" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik dan seret untuk menggambar gradasi dari warna primer ke sekunder. Klik " "kanan untuk sebaliknya." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradasi Linear" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradasi Linear Tercerminkan" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradasi Linear Wajik" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradasi Melingkar" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradasi Mengerucut" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Modus curah" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Bersambungan" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleransi" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Kuas Cat" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Klik kiri untuk menggambar dengan warna primer, klik kanan untuk warna " "sekunder." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Jenis" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pensil" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Klik kiri untuk menggambar garis bentuk bebas selebar satu piksel dengan " "warna primer, klik kanan untuk warna sekunder." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Pemilih Elips" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klik dan seret untuk menggambar pemilih elips. Tahan shift untuk memaksakan " "bentuk lingkaran." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Garis" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Klik kiri untuh menggambar dengan warna primer, klik kanan untuk warna " "sekunder. Tahan tombol Shift untuk menjaga sudut" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Penghapus" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Ctrl-Kiri untuk menghapus ketransparan, klik kiri untuk menghapus ke warna " "sekunder " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Geser" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klik dan seret untuk menavigasi citra." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pemilih Warna" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Klik kiri untuk mengeset warna primer. Klik kanan untuk warna sekunder." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Setelah memilih" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Jangan ganti alat" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Ganti ke alat sebelumnya" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Ganti ke alat Pensil" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Persegi Panjang Berlengkung" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Jari-jari" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Kecilkan jari-jari lengkungan sudut persegi panjang" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Besarkan jari-jari lengkungan sudut persegi panjang" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Pindahkan Piksel Terpilih" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Seret pilihan untuk memindahkan isi terpilih." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Warnai-ulang" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Klik kiri untuk mengganti warna sekunder dengan warna primer." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Ember Cat" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Klik kiri untuk mengisi area dengan warna primer, klik kanan untuk warna " "sekunder." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klik dan seret untuk menggambar elips (klik kanan untuk warna sekunder). " "Tahan shift untuk memaksakan bentuk lingkaran." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Teks" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Klik kanan untuk menempatkan kursor, lalu ketik teks yang diinginkan. Warna " "teks adalah warna primer." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Tebal" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Miring" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Garis Bawah" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Rata Kiri" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Rata Tengah" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Rata Kanan" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Corak Teks" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal dan Skema" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Lebar outline" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "kurangi ukuran outline" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Tambah ukuran outline" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Lebar kuas" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Kecilkan ukuran kuas" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Besarkan ukuran kuas" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Model isian" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Bentuk Bergaris Tepi" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Bentuk Berisi" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Bentuk Berisi dan Bergaris Tepi" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Lingkaran" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Petak" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kotak" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zum" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Klik kiri untuk zum masuk. Klik kanan untuk zum keluar. Klik dan seret untuk " "zum dalam pilihan." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Pemilih Laso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik dan seret untuk menggambar garis tepi area pemilihan." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Bentuk Bebas" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Tentang" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "Be_rkas" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edit" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Tampakan" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Citra" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lapisan" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Penyesuaian" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_k" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Jendela" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Jendela Alat" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Bantuan" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Alat" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palet" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumen" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lapisan" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Riwayat" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Sembunyikan" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Berlabuh" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Auto-Sembunyikan" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dapat dilabuhkan" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Mengambang" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ambil Cuplikan Layar" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Jeda sebelum mengambil cuplikan layar (dalam detik)" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Simpan perubahan ke citra \"{0}\" sebelum menutup?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Bila Anda tidak simpan, semua perubahan akan hilang." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Tutup tanpa menyimpan" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Tempel Ke Lapisan Baru" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Ketaktembusan Lapisan" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Ubah Nama Lapisan" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Sembunyikan Lapisan" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Tampilkan Lapisan" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Properti Lapisan" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Buka Berkas Citra" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Berkas citra" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Semua berkas" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Simpan Berkas Citra" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta tidak dapat menyimpan gambar dalam format ini" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Kesalahan" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "File bernama \"{0}\" sudah ada. Apakah anda ingin mengantinya?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "File sudah ada di \"{1}\". Mengantinya akan menghilangkan isi folder." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kualitas JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kualitas: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Judul" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versi" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Jalur" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Kontributor Rilis Ini" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Kontributor Sebelumnya" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Fauzie Rofi https://launchpad.net/~fauzie811\n" " H Parulian Hutagalung https://launchpad.net/~bataxx-keren\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Permata Harahap https://launchpad.net/~permataharahap\n" " Triwanto Simanjuntak https://launchpad.net/~lu176\n" " Viko Adi Rahmawan https://launchpad.net/~vikoadi" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Diterjemahkan oleh:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Berdasarkan karya Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Menggunakan ikon dari:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Tentang Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Info Versi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lisensi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Dirilis di bawah Lisensi MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Hak Cipta" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "oleh kontributor Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nama:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Terlihat" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Ketaktembusan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ubah Ukuran Kanvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Per persentasi:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Per ukuran absolut:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Lebar:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "piksel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Tinggi:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Pertahankan rasio panjang-lebar" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Jangkar:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ubah Ukuran Citra" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Citra Baru" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Ukuran Citra Baru " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "jumlah ulir yang digunakan untuk melukis" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efek Lukis" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Latar Belakang" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Buka Citra" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Gagal membuka berkas: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Tempel" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Putar 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Balikkan Citra Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Balikkan Citra Vertikal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Putar 90° Perijam" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Putar 90° Lawan-Perijam" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Balikkan Lapisan Horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Balikkan Lapisan Vertikal" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Selesaikan Piksel" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Laman Web Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Laporkan Masalah" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Terjemahkan Aplikasi Ini" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Simpan Semua" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Tutup Semua" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Baru..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Buka..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Buka Terkini" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Tutup" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Simpan" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Simpan Sebagai..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Cetak" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Keluar" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Baru" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Buka" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Tambah Lapisan Baru" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Hapus Lapisan" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Gandakan Lapisan" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Gabungkan Ke Bawahnya" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Impor dari Berkas..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Balikkan Horizontal" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Balikkan Vertikal" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Naikkan Lapisan" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Turunkan Lapisan" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Impor Dari Berkas" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Pangkas Pilihan" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Sedatarkan" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zum Masuk" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zum Keluar" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zum ke Pilihan" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Ukuran Normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Toolbar" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Kisi Piksel" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Mistar" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Piksel" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inci" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Sentimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Layar Penuh" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Jendela" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Urungkan" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ulangi" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Potong" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Salin" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Tempel Ke Citra Baru" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Arsir Pilihan" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inversikan Pilihan" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Pilih Semua" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Tentukan Jumlah Warna" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Hapus Pilihan" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Awapilih" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lapisan" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "salin" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Alat" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Kunci pintasan" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Timpa" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} citra ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Umum" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Sebanyak" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Sudut" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modus Pencampuran" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Kecerahan" #: PixelateData dialog msgid "Brush Size" msgstr "Ukuran Kuas" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Ukuran Sel" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Ofset Tengah" #: OilPaintingEffect dialog msgid "Centered" msgstr "Ditengahkan" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Kekasaran" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Kisaran Warna" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Kepekatan Warna" #: GlowEffect dialog msgid "Coloring" msgstr "Pewarnaan" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontras" #: FragmentEffect dialog msgid "Coverage" msgstr "Cakupan" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Jarak" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Sifat Tepian" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmen" #: TileEffect dialog msgid "Ink Outline" msgstr "Garis Tepi Tinta" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitas" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Pencahayaan" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Ofset" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Ukuran Ujung Pensil" #: CloudsEffect dialog msgid "Percentile" msgstr "Persentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Daya" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Mutu" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Putaran" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Persentasi kepekatan" #: CloudsEffect dialog msgid "Scale" msgstr "Skala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Umpan" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Kehalusan" #: OutlineEffect dialog msgid "Strength" msgstr "Kekuatan" #: TileEffect dialog msgid "Thickness" msgstr "Ketebalan" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Ukuran Ubin" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Kehangatan" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Gunakan kualitas rendah untuk pratinjau, citra kecil, dan sudut kecil. " "Gunakan kualitas tinggi untuk hasil akhir, citra besar, dan sudut besar." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Saran: Demi hasil terbaik, terlebih dahulu gunakan alat pemilih untuk " "memilih masing-masing mata." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Penyunting Gambar" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Buat dan sunting gambar dengan mudah" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Penyunting Gambar Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/it.po0000664000175000017500000014656311747026475015252 0ustar00cameroncameron00000000000000# Italian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-27 16:12+0000\n" "Last-Translator: magic3 \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Livelli automatici" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverti i colori" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Livelli" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Seppia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizza" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Bianco e nero" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curve" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Luminosità / Contrasto" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Tonalità / Saturazione" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Regolazione livelli" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Istogramma di partenza" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Risultato" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Istogramma dell'output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Azzera" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rosso" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blu" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Collegato" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mappa di trasferimento" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosità" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rosso " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blu " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Suggerimento: fai Click con il tasto destro per rimuovere i punti di " "controllo." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Riduci disturbo" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Disturbo" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Frammentazione" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Sfocature" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nuvole" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderizza" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Sfoca" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Rimozione occhi rossi" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Frattale Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Luminosità" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Rileva bordi" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizza" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Sfocatura radiale" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Vetro ghiacciato" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsione" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pittura ad olio" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistici" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Frattale Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Ammorbidire il ritratto" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Rilievo" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Schizzo di inchiostro" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Rilievo" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Sfocatura Gaussiana" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Nitidezza" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Aggiungi disturbo" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Riflessione di piastrelle" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Mosaico" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Sfocatura movimento" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversione polare" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Rigonfiamento" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Sfocatura zoom" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Schizzo a matita" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorno" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Twist" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etichetta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etichetta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Rumore casuale" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Rigenera il seme" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Scegli il Colore Primario" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Scegli il Colore Secondario" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Scegli Tavolozza dei Colori" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Selezione rettangolare" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Fare click e trascinare per effettuare una selezione rettangolare. Mantieni " "premuto shift per forzare a quadrato." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Timbro clone" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+tasto sinistro per impostare l'origine, click con il tasto sinistro per " "disegnare." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Seleziona la bacchetta magica" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Fare click in una regione di colore simile." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rettangolo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Fare click e trascinare per disegnare un rettangolo (click con il pulsante " "destro per il colore secondario). Tenere premuto Maiusc per disegnare un " "quadrato." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Muovi selezione" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Trascina la selezione per muovere il bordo della selezione." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Sfumatura" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Clicca e trascina per disegnare la sfumatura dal colore primario a quello " "secondario. Clicca con il tasto destro per invertirli." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Sfumatura lineare" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Sfumatura lineare riflessa" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Sfumatura a diamante lineare" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Sfumatura radiale" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Sfumatura conica" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Modo riempimento" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contiguo" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globale" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolleranza" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pennello" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Fare click sinistro per disegnare col colore primario, click destro per " "disegnare col colore secondario." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Matita" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Tasto sinistro del muose per disegnare liberamente una linea di un pixel " "come spessore e con il colore primario. Tasto destro del mouse per usare il " "colore secondario." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Selezione ellittica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Clicca e Trascina per disegnare una selezione ellittica. Tieni premuto il " "tasto Maiusc per forzare una selezione circolare." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linea" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Fai click sinistro per disegnare col colore primario, click destro per " "disegnare col colore secondario. Mantieni premuto il tasto Shift per " "attivare la guida magnetica sugli angoli." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gomma" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Clicca pulsante sinistro per rendere trasparente, clicca pulsante per " "cancellare il colore secondario. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Clicca e trascina per muoverti nell'immagine." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Selettore colore" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Tasto sinistro del mouse per impostare il colore primario. Tasto destro del " "mouse per impostare il colore secondario." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Dopo la selezione" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Non cambiare strumento" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Passa allo strumento precedente" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Passa alla matita" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rettangolo arrotondato" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Fare click e trascinare per disegnare un rettangolo arrotondato (click con " "il pulsante destro per il colore secondario). Tenere premuto Maiusc per " "disegnare un quadrato." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Raggio" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Riduci il raggio dell'angolo del rettangolo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Aumenta il raggio dell'angolo del rettangolo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Sposta i pixel selezionati" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Trascina la selezione per spostare i contenuti selezionati." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Ricolora" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Fare click per sostituire il colore secondario con il colore primario." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Secchiello" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Fare click sinistro per riempire una regione col colore primario, click " "destro per riempire col colore secondario." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellisse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Fare click e trascinare per disegnare un ellisse (click destro per il colore " "secondario). Mantenere premuto shift per forzare ad un cerchio." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Testo" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Fare click sinistro per posizionare il cursore, quindi scrivere il testo " "desiderato. Il colore del testo è quello primario." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Carattere" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Grassetto" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Corsivo" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Sottolineato" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Allinea a sinistra" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Allinea al centro" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Allinea a destra" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stile di testo" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normale" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normale e contornato" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Larghezza contorno" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Diminuire dimensione contorno" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Aumentare dimensione contorno" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Dimensione pennello" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Diminuisci la dimensione del pennello" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Aumenta la dimensione del pennello" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stile di ripempimento" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Solo contorno" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Forma piena" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Contorno e forma piena" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Circolare" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Griglia" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Quadrati" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Ingradimento" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Tasto destro del mouse per ingrandire. Tasto destro del mouse per " "rimpicciolire. Cliccare e trascinare per ingrandire la selezione." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Selezione libera" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Clicca e trascina per disegnare il contorno dell'area da selezionare" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma a mano libera" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Informazioni su Pinta" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Modifica" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Visualizza" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Immagine" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Livelli" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Regolazioni" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Effetti" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Finestra" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Finestre Strumenti" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Guida utente" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Strumenti" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Tavolozza" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documenti" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Livelli" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Cronologia" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Nascondi" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Aggancia" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Nascondi automaticamente" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Agganciabile" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Fluttuante" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Cattura Schermata" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Ritardo prima di catturare lo schermo (secondi):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Salvare i cambiamenti all'immagine \"{0}\" prima di chiudere?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" "Se non si salva ora, tutte le modifiche saranno definitivamente perse." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Chiudi senza salvare" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ridimensiona Tavolozza" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nuova dimensione Tavolozza:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Incolla in un nuovo livello" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacità del livello" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Rinomina livello" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Nascondi livello" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Mostra livello" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Proprietà del livello" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Apri immagine" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "File di immagini" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Tutti i file" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Salva immagine" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta non supporta il salvataggio in questo formato di file." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Errore" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Un file chiamato \"{0}\" esiste già. Vuoi sostituirlo?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Il file esiste già in \"{1}\". Sostituendolo verrà sovrascritto il suo " "contenuto." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "L'immagine non può essere incollata" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "Gli appunti non contengono un'immagine." #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualità JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualità: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titolo" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versione" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Percorso" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Hanno contribuito a questa versione" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Collaboratori precedenti" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Antonio Tuzzi AKA usa_getta https://launchpad.net/~usa-getta\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Daniele \"OpenNingia\" Simonetti https://launchpad.net/~oppifjellet\n" " Daniele Del Giudice https://launchpad.net/~d4n13le\n" " Daniele Napolitano https://launchpad.net/~dnax88\n" " Davide Lunghi https://launchpad.net/~davide-lunghi\n" " Guybrush88 https://launchpad.net/~guybrush\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Kabir94 https://launchpad.net/~kabirsala\n" " Loris Turchetti https://launchpad.net/~l-turchetti\n" " Luca Urbini https://launchpad.net/~luca-urbini\n" " Nicola Moretto https://launchpad.net/~nicola88\n" " Pullus In Fabula https://launchpad.net/~zatunga11\n" " Valeria De Luca https://launchpad.net/~adilaksmi\n" " flux https://launchpad.net/~luigimarco\n" " giacomo margarito https://launchpad.net/~eagleman\n" " joshg https://launchpad.net/~joshg\n" " magic3 https://launchpad.net/~magic3\n" " nTia89 https://launchpad.net/~tia-tif-deactivatedaccount-" "deactivatedaccount\n" " simone.sandri https://launchpad.net/~lexluxsox" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tradotto da:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basato sul lavoro di Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Utilizzando delle icone da:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "A proposito di Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informazioni sulla versione" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenza" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Rilasciato sotto la licenza MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "dai collaboratori di Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nome:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visibile" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacità:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ridimensiona Tela" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "In percentuale:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "In dimensioni assolute:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Larghezza:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altezza:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Mantieni le proporzioni" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ancora:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ridimensiona immagine" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nuova immagine" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nuova dimensione immagine " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "numero di processi usati per la renderizzazione" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Opzioni Nome" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Effetti di rendering" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Immagine non salvata {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Sfondo" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Apri immagine" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossibile aprire il file: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Incolla" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Ruota di 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Ribalta immagine orizzontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Ribalta immagine verticalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Ruota di 90° in senso orario" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Ruota di 90° in senso antiorario" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Ribalta livello orizzontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Ribalta livello verticalmente" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finisci pixel" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Sito di Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Segnala un bug" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduci questo programma" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Salva tutto" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Chiudi tutto" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nuovo..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Cattura Schermata" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Apri..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Aperti di recente" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Chiudi" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Salva" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Salva con nome..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Stampa" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Esci" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nuovo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Apri" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Aggiungi nuovo livello" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Elimina livello" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplica livello" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Unisci al livello sottostante" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importa dal file..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Ribalta orizzontalmente" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Ribalta verticalmente" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Sposta il livello in alto" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Sposta il livello in basso" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Proprietà Livello..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importa da file" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Ritaglia la selezione" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Autoritaglio" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Ridimensiona Immagine..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Ridimensiona la superficie..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Appiattisci" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Ingrandisci" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Riduci" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Adatta alla pagina" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Ingrandisci alla selezione" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Dimensione normale" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra degli strumenti" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Griglia dei pixel" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Righello" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixel" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Pollici" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Schermo intero" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unità di misura" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Finestra" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Annulla" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ripristina" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Taglia" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copia" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Incolla in una nuova immagine" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Elimina selezione" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Riempi selezione" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverti la selezione" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Seleziona tutto" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deseleziona tutto" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Ripristina originale" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Imposta numero di colori" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Elimina la selezione" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deseleziona" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Apri Tavolozza" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "File Tavolozza (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Impossibile aprire la Tavolozza: {0}.\n" "Verifica che sia una tavolozza valida per GIMP o Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Salva Tavolozza" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Tavolozza Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Tavolozza GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Livello" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copia" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Strumenti" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Scorciatoia" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Mescola normale" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Sovrascrivi" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Attiva Antialiasing" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Disattiva Antialiasing" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} immagine ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Generali" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Quantità" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angolo" #: CloudsEffect dialog msgid "Antialias" msgstr "Anti-Aliasing" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modalità fusione" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Luminosità" #: PixelateData dialog msgid "Brush Size" msgstr "Dimensione pennello" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Dimensione cella" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centra Offset" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrato" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Ruvidezza" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Intervallo di colore" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturazione colore" #: GlowEffect dialog msgid "Coloring" msgstr "Colorazione" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrasto" #: FragmentEffect dialog msgid "Coverage" msgstr "Copertura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distanza" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportamento dei bordi" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Fattore" #: InkSketchEffect dialog msgid "Fragments" msgstr "Frammenti" #: TileEffect dialog msgid "Ink Outline" msgstr "Bordo ad inchiostro." #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensità" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Illuminazione" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Scostamento" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Dimensioni della punta della matita" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentile" #: RadialBlurEffect dialog msgid "Power" msgstr "Potenza" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualità" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotazione" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Percentuale saturazione" #: CloudsEffect dialog msgid "Scale" msgstr "Scala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Seme" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Morbidezza" #: OutlineEffect dialog msgid "Strength" msgstr "Forza" #: TileEffect dialog msgid "Thickness" msgstr "Spessore" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Dimensione della piastrella" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Calore" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Usa una bassa qualità per l'anteprima, per piccole immagini e con i piccoli " "angoli. Usa un'alta qualità per i lavori finali, per immagini grandi e con " "grandi angoli." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Suggerimento: Per ottenere i migliori risultati, usa prima gli strumenti di " "selezione per selezionare ciascun occhio." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor di immagini" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Crea e modifica immagini facilmente" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor di immagini Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Immagini" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Impossibile salvare file di sola lettura." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Immagine troppo grande" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "L'immagine da incollare è più larga della superficie. Cosa vorresti fare?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Espandi la superificie" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Non cambiare la dimensione della superficie" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Livello Mostrato" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Livello Nascosto" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ja.po0000664000175000017500000014050411747026475015215 0ustar00cameroncameron00000000000000# Japanese translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "自動レベル補正" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "色を反転" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "レベル" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "セピア" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "ポスタリゼーション" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "モノクロ" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "カーブ" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "明度 / コントラスト" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "色彩 / 彩度" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "レベル補正" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "入力ヒストグラム" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "入力" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "出力" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "出力ヒストグラム" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "自動" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "リセット" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "赤" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "緑" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "青" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "リンク済み" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "転送マップ" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "明度" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "赤 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "青 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "ノイズの低減" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "ノイズ" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "フラグメント" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "ぼかし" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "雲" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "レンダリング" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "アンフォーカス" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "赤目除去" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "写真" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "フラクタル" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "発光" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "エッジの強調" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "スタイライズ" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "ぼかし (放射状)" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "すりガラス" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "変形" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "油絵" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "アーティスティック" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "フラクタル (Julia)" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "描写" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "浮き彫り" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "スケッチ" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "中央値" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "エンボス" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "ぼかし (ガウス)" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "シャープ" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "ノイズの追加" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "タイルの反射" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "ピクセレート" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "ぼかし (詳細)" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "極の反転" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "ふくらみ" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "ぼかし (ズーム)" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "鉛筆" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "アウトライン" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "ねじれ" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "ラベル1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "ラベル" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "ランダムノイズ" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "シード再生成" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "プライマリーカラーを選択" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "矩形選択" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "クリック&ドラッグで四角形の選択範囲を作成します。Shift を押しながらドラッグすると正方形になります。" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "選択(魔法の杖)" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "選択範囲を移動" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "ドラッグで選択範囲を移動します。" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "グラデーション" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "線形グラデーション" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "反射形グラデーション" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "菱形グラデーション" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "放射状グラデーション" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "円錐形グラデーション" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "フルードモード" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "隣接領域を抽出" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "グローバル" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "許容値" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "ブラシで描画" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "鉛筆" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "クリック - ドラッグで楕円の選択範囲を作成します。Shift を押しながらドラッグすると正円になります。" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "ライン" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "スポイト" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "左クリックで前景色、右クリックで背景色を選択。" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "以前のツールに切り替える" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "鉛筆ツールに切り替える" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "半径" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "ドラッグで選択範囲のピクセルを移動します。" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "テキスト" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "フォント" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "太文字" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "斜体" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "下線" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "行揃え (左詰め)" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "ブラシサイズ" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "ブラシサイズを小さくします" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "ブラシサイズを大きくします" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "フィルスタイル" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "輪郭を描く" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "塗りつぶす" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "塗りつぶして輪郭を描く" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "ズーム" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "左クリックのときはズームイン、右クリックのときはズームアウトします。クリック - ドラッグで選択した範囲にズームインします。" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "クリック - ドラッグで境界線を描いて選択範囲を作成します。" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "このソフトウェアについて" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "ファイル(_F)" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "編集(_E)" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "表示(_V)" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "画像(_I)" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "レイヤ(_L)" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "調整(_A)" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "エフェクト(_C)" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "ウィンドウ(_W)" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "ヘルプ(_H)" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "ツール" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "パレット" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "ドキュメント" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "レイヤー" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "履歴" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "非表示" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "ドッキング" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "自動的に隠す" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "ドックに格納可能" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "フローティング" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "スクリーンショットを撮るまでの遅延時間(秒):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "閉じる前に変更を \"{0}\" に保存しますか?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "保存しない場合、すべての変更が失われます。" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "保存せずに閉じる" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "新規レイヤーに貼り付け" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "レイヤーの不透明度" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "レイヤー名を変更" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "レイヤーを非表示" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "レイヤーを表示" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "レイヤーのプロパティ" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "イメージファイルを開く" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "イメージファイル" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "すべてのファイル" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "イメージファイルの保存" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pintaはこの画像形式での保存をサポートしていません" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "エラー" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "同名のファイル \"{0}\" があります。置き換えますか?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 画質" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "画質 " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "タイトル" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "バージョン" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "パス名" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "このバージョンの貢献者" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "過去の貢献者" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Kiyotaka NISHIBORI https://launchpad.net/~ml-nishibori-kiyotaka\n" " OTHUBO Jumpei https://launchpad.net/~otsubo-jumpei\n" " Yutaka Aiko https://launchpad.net/~ubon\n" " ytetsu https://launchpad.net/~ytetsu" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "翻訳:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Paint.NET プロジェクト:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "一部のアイコン:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Pinta について" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "バージョン情報" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "ライセンス" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "MIT X11 ライセンスの元で公開されました。" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "著作権" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pinta 貢献者" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "名前:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "表示" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "不透明度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "キャンバスサイズの変更" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "パーセント指定:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "絶対サイズ指定:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "幅:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "ピクセル" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "高さ:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "アスペクト比を保持する" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "アンカー:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "画像サイズの変更" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "新規イメージ" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "新規イメージのサイズ " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "レンダリングに使用するスレッド数" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "効果のレンダリング" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "未保存の画像 {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "背景色" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "イメージを開く" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "ファイルを開けません: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "貼り付け" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "180度回転" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "イメージを水平方向に反転" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "イメージを垂直方向に反転" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "90度回転 (時計回り)" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "90度回転 (反時計回り)" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "レイヤーを水平方向に反転" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "レイヤーを垂直方向に反転" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "ピクセル完了" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta 公式サイト" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "バグの報告" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "このアプリケーションを翻訳" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "すべて保存" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "すべて閉じる" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新規..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "新規スクリーンショット..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "開く..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "最近使用したファイルを開く" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "閉じる" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "保存" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "名前を付けて保存..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "印刷" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "終了" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "新規" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "開く" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "新規レイヤーを追加" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "レイヤーを削除" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "レイヤーを複製" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "レイヤーを統合" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "ファイルからインポート..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "水平方向に反転" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "垂直方向に反転" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "レイヤーを上に移動" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "レイヤーを下に移動" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "レイヤー・プロパティ" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "ファイルからインポート" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "選択範囲を切り取る" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "フラット化" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "拡大" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "縮小" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "選択範囲に合わせる" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "ツールバー" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "網目" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "ルーラー" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "ピクセル" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "インチ" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "センチメートル" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "全画面表示" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "ルーラーの単位" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "ウィンドウ" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "元に戻す" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "やり直し" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "切り取り" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "コピー" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "新規イメージに貼り付け" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "選択範囲を塗りつぶす" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "選択範囲を反転" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "すべて選択" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "標準設定に戻す" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "色数を指定" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "選択範囲を消去" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "選択解除" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "パレットファイルを開く" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "パレットファイル(*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "パレットが保存できません: {0}." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "パレットの保存" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "レイヤー" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "コピー" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "ツール" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "ショートカットキー" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "ノーマルブレンド" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "上書き" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "アンチエイリアスの有効" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "アンチエイリアスの無効" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} イメージ ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "一般" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "量" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "角度" #: CloudsEffect dialog msgid "Antialias" msgstr "アンチエイリアス" #: GlowEffect dialog msgid "Blend Mode" msgstr "ブレンドモード" #: OilPaintingEffect dialog msgid "Brightness" msgstr "輝度" #: PixelateData dialog msgid "Brush Size" msgstr "ブラシのサイズ" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "セルのサイズ" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "中央オフセット" #: OilPaintingEffect dialog msgid "Centered" msgstr "中央揃え" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "粗さ" #: AddNoiseEffect dialog msgid "Color Range" msgstr "色の範囲" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "彩度" #: GlowEffect dialog msgid "Coloring" msgstr "色の設定" #: AddNoiseEffect dialog msgid "Contrast" msgstr "コントラスト" #: FragmentEffect dialog msgid "Coverage" msgstr "範囲" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "距離" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "境界処理" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "係数" #: InkSketchEffect dialog msgid "Fragments" msgstr "断片" #: TileEffect dialog msgid "Ink Outline" msgstr "インクのアウトライン" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "輝度" #: RadialBlurEffect dialog msgid "Lighting" msgstr "照明" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "オフセット" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "鉛筆の先端のサイズ" #: CloudsEffect dialog msgid "Percentile" msgstr "パーセント" #: RadialBlurEffect dialog msgid "Power" msgstr "強さ" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "品質" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "回転" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "彩度" #: CloudsEffect dialog msgid "Scale" msgstr "スケール" #: SoftenPortraitData dialog msgid "Seed" msgstr "乱数シード" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "ソフトネス" #: OutlineEffect dialog msgid "Strength" msgstr "強度" #: TileEffect dialog msgid "Thickness" msgstr "太さ" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "タイルのサイズ" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "暖色度" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "プレビューは低品質(小さいイメージ、小さい角度)を使い、最終的な出力は高品質(大きなイメージ、大きな角度)にする。" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "ヒント: まず目の部分を選択ツールで選択するとうまくいきます。" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ko.po0000664000175000017500000013620011747026475015232 0ustar00cameroncameron00000000000000# Korean translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "자동 색보정" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "색 반전" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "레벨" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "세피아" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "포스터화" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "흑백변환" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "커브" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "밝기 / 대비" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "색조 / 채도" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "색보정" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "입력 히스토그램" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "입력" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "출력" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "출력 히스토그램" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "자동" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "초기화" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "적색" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "녹색" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "청색" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "아울러 바꾸기" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "보정대상 기준" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "적녹청" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "밝기" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "적색 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "청색 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "도움말: 오른쪽 딸깍으로 조정점을 지울 수 있습니다." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "잡티 줄이기" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "잡티" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "조각흔들기" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "흐릿하게 만들기" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "구름" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "덧씌우기" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "초점 없애기" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "붉은 눈동자 수정" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "사진" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "만델브로트의 프랙탈" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "발광 효과" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "테두리만 강조" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "테두리 효과" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "방사형 흐리기" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "젖빛 유리 씌우기" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "뒤틀어놓기" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "유화효과" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "미술품 흉내내기" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "줄리아 프랙탈" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "보드랍게 만들기" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "돋을새김" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "먹으로 밑그림 그린 효과" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "뭉개기" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "돋을새김" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "가우스 곡선식 흐리기" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "선명하게" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "잡티 섞기" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "매끄러운 타일에 반사효과" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "그림낱 강조" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "움직임 효과" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "구의 꼭지점 향해 객체 반복해서 넣기" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "부풀리기" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "확대해 흐리기" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "연필 밑그림 효과" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "윤곽선" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "비틀기" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "꼬리표1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "꼬리표" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "잡티 마구섞기" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "으뜸 색깔 선택" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "버금 색깔 선택" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "색깔판 색깔 선택" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "사각형 선택" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "딸깍해 끌기로 사각형 공간을 선택합니다. Shift글쇠를 누른 상태에는 정사각형이 선택됩니다." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "따라그리기" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl글쇠를 누르고 왼쪽 딸깍 원본이 지정되고, 왼쪽 딸깍하면 따라서 그려집니다." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "요술봉 선택" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "딸깍해서 색깔이 비슷한 부분을 선택합니다" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "사각형" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "딸깍해 끌기로 사각형을 그립니다. (오른쪽 딸깍하면 버금색으로 그려짐). Shift글쇠를 누른 상태에서는 정사각형이 그려집니다." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "선택한 부분 옮기기" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "색변화" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "딸깍해서 끌기로 으뜸색에서 버금색으로 색변화를 그린다. 오른쪽 딸깍하면 반대 방향으로 색변화." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "선형 색변화" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "반사광 삽입 선형 색변화" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "마름모 삽입 선형 색변화" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "원 삽입 색변화" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "원뿔 삽입 색변화" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "채워넣기 방식" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "내부" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "전체" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "오차" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "붓" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "왼쪽 딸깍해 으뜸색으로 그린다. 오른쪽 딸깍하면 버금색으로 사용." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "형식" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "연필" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "왼쪽 딸깍해 선굵기 1픽셀에 으뜸색으로 도형을 그린다. 오른쪽 딸깍하면 버금색 적용." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "타원 선택" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "딸깍해서 끌기로 타원을 선택한다. Shift를 누른채 끌면 원을 선택." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "선" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "지우개" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "왼쪽 딸깍하면 투명하게 지운다. 오른쪽 딸깍하면 버금색으로 지움. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "잡기" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "딸깍해서 끌기로 그림을 움직인다" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "색 고르기" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "왼쪽 딸깍하면 으뜸색을 고른다. 오른쪽 딸깍은 버금색 고르기." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "색 고른 후" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "계속 색 고르기" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "이전 도구로 전환" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "연필로 전환" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "둥글린 사각형" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "둥글림 정도" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "모퉁이를 덜 둥글게 한다" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "모퉁이를 더 둥글게 한다" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "선택한 부분을 복사해 옮긴다" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "선택한 부분 안의 내용을 끌어서 옮긴다" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "색바꾸기" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "왼쪽 딸깍하면 버금색을 으뜸색으로 바꿔 칠한다." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "색칠" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "왼쪽 딸깍하면 영역을 으뜸색으로 채운다. 오른쪽 딸깍하면 버금색으로 채움." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "타원" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "딸깍해서 끌면 타원을 그린다 (오른쪽 딸깍하면 버금색 적용). Shift를 누르면 원을 그림." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "글자" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "위치를 왼쪽 딸깍해 정하고, 글자를 입력. 글자색은 으뜸색 적용." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "글꼴" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "굵게" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "기울임" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "밑줄" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "왼쪽 정렬" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "가운데 정렬" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "오른쪽 정렬" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "글꼴처리" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "보통" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "보통 과 외곽선" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "외곽선 굵기" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "외곽선을 덜 굵게" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "외곽선을 더 굵게" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "붓 굵기" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "붓을 가늘게" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "붓을 굵게" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "색칠 방식" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "윤곽 모양" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "알맹이" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "알맹이와 바깥선" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "동그라미" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "모눈" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "사각형" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "확대" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "왼쪽 딸깍해 확대. 오른쪽 딸깍해 축소. 딸깍해 끌기로 선택한 부분 확대." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "올가미 선택" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "딸깍해 끌기로 일정 영역 외곽선 그리기" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "도형그리기" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "소개" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "자료 (_F)" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "편집(_E)" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "보기(_V)" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "영상(_I)" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "면(_L)" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "조정(_A)" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "효과(_C)" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "창(_W)" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "도구 창" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "도움말(_H)" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "도구" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "색깔판" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "문서" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "면" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "작업 기록" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "숨기기" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "도구상자" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "자동 숨기기" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "고정하기" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "따로 띄우기" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "화면찍기" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "화면찍기 전에 지연 시간 두기 (초):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "\"{0}\"의 변경 내용을 닫기 전에 저장하겠습니까?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "저장하지 않으면, 모든 변경 사항을 잃어버립니다" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "저장하지 않고 종료" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "색판 크기조정" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "새 색판 크기:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "새 면으로 붙여넣기" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "면의 투명도" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "면 이름변경" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "면 숨기기" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "면 보이기" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "면 속성" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "영상자료 열기" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "영상자료" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "모든 자료" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "영상자료 저장" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "핀타는 해당자료 형식으로 영상저장을 지원하지 않습니다." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "오류" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "자료이름 \"{0}\" , 이미 존재합니다. 덮어씌우겠습니까?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "자료가 이미 \"{1}\" 에 존재합니다. 저장하면 현재 내용으로 바뀝니다." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 화질" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "화질: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "제목" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "판" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "위치" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "이번 배포판의 기여자" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "이전 기여자" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Choi gyu ho https://launchpad.net/~cgh48\n" " Jeongkyu Kim https://launchpad.net/~jeongkyu-kim\n" " Mike Sierra https://launchpad.net/~ubuntuda\n" " Softblow https://launchpad.net/~ccwpc" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "번역 :" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "이 무른모는 Paint.NET을 기반으로 합니다." #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "일부 상징은 아래에서 가져왔습니다." #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "핀타에 대해" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "판 정보" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "사용권" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "MIT X11 사용허가 하에 배포됐습니다." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "저작권" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "핀타 기여자" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "이름:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "표시" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "불투명도:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "그림판 크기 변경" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "백분율 기준:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "절대 크기 기준:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "너비:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "픽셀" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "높이:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "비율 유지" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "저자:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "그림 크기 조정" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "새 그림" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "새 그림 크기 " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "창" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/la.po0000664000175000017500000012455011747026475015222 0ustar00cameroncameron00000000000000# Latin translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "automaticus derigens" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "colores convertere" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Aequare" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "sepiaceus" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "niger et albus" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "curvaturae" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Fulgor / Contrarietas" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Circumlitio / Saturitas" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Aptare quantitas" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Conde imaginum graphium" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Conde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "proventus" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "proventus imago graphium" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automaticus" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "iterum facere" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Ruber" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Pratinus" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Caeruleus" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Conexus" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Christian Brickhouse https://launchpad.net/~cbrick77" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/lt.po0000664000175000017500000013435711747026475015253 0ustar00cameroncameron00000000000000# Lithuanian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:06+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertuoti spalvas" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Lygiai" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepija" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Juoda ir balta" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kreivės" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Šviesumas/ Kontrastas" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Lygių koregavimas" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Įvesties histograma" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Įvestis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Išvestis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Išvesties histograma" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatinis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Atstatyti" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Raudona" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Žalia" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Mėlyna" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Sujungtas" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Perduoti žemėlapį" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Šviesumas" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Raudona " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Mėlyna " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Patarimas:dešiniu pelės klavišu paspauskite, kad pašalintumėte valdymo tašką." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Sumažinti triukšmą" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Triukšmas" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmentas" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Suliejimas" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Debesys" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Generuoti" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Nefokusuoti" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Raudonų akių pašalinimas" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Nuotrauka" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbroto fraktalas" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Švytėjimas" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Krašto suradimas" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizuoti" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radialinis suliejimas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Matinis stiklas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Iškraipymas" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Tapyba aliejiniais dažais" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Meninis" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julijos fraktalas" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Švelnesnis portretas" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljefas" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Rašalo eskizas" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Reljefinis ornamentas" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gauso suliejimas" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Paryškinti" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Pridėti triukšmo" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Plytelių refleksija" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Vaizdo taškinimas" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Suliejimas judesiu" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Šaltoji inversija" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bumbulas" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Priartinimo suliejimas" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Pieštukinis eskizas" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontūras" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Susukimas" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "žymė1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "žymė" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Atsitiktinis triukšmas" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Pakrauti iš naujo" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Pasirinkti pirmines spalvas" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Pasirinkti antrines spalvas" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Pasirinkti paletės spalvas" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Stačiakampis pažymėjimas" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "Paspauskite ir temkite pažymėtą vietą. Laikykite Lyg2 klavišą, kad" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kopijuoti pažymėtą" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Vald+kairys pelės klavišas kad palikti originalą, tik kaitys kad perkelti." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magiškos lazdelės parinktis" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Spustelėkite kad pasirinkti tos pačios spalvos regioną" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Stačiakampis" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Paspauskite ir temkite, kad nupieštumėte stačiakampį(dešinys klavišas, kad " "pasirinkti antrinę spalvą). Laikykite Lyg2, kad išlaikyti pažymėjimus." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Perkelti pažymėjimą" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Temkite pažymėjimą, kad perkelti pažymėjimą už pasirinkties." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradientas" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Spustelėkite ir tempkite, kad nupiešti perėjimą (gradientą) iš pirminės į " "antrinę spalvą. Dešinys pelės mygtukas atvirkščiam efektui." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Tiesinis perėjimas (gradientas)" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Tiesinis atspindėtas perėjimas (gradientas)" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Tiesinis rombo formos perėjimas (gradientas)" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radialinis perėjimas (gradientas)" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Užpilimo režimas" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Vientisas" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globalus" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toletantiškumas" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Teptukas" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "Kairys mygtukas piešti pirmine spalva, dešinys - antrine." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipas" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pieštukas" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Kairys pelės mygtukas piešti laisvos formos, vieno pikselio pločio linijas " "pirmine spalva, dešinys mygtukas - antrine spalva." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elipsinis pažymėjimas" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Spustelėkite ir tempkite, kad sukurti elipsinį pasirinkimą (selection). " "Laikykite nuspaustą \"Shift\" klavišą, kad išlaikyti apskritimo proporcijas." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linija" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Trintukas" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Spalvų pipetė" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Po pasirinkimo" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Neperjungti įrankio" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Perjungti į ankstenį įrankį" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Stačiakampis apvaliais kampais" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Apie" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Failas" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Keisti" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Rodymas" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Paveikslėlis" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Sluoksniai" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efektai" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Langas" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pagalba" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Įrankiai" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paletė" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumentai" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Sluoksniai" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Istorija" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Slėpti" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatinis slėpimas" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plaukiojantis" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Neišsaugojus, visi pakeitimai bus negrįžtamai prarasti." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Sluoksnio permatomumas" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Pervadinti sluoksnį" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Paslėpti sluoksnį" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Rodyti sluoksnį" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Sluoksnio savybės" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pavadinimas" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versija" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Kelias" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Gintaras https://launchpad.net/~gintaras-sakalauskas\n" " Mantas Kriaučiūnas https://launchpad.net/~mantas\n" " Rytis Slatkevičius https://launchpad.net/~rytis-s\n" " pencininkas4 https://launchpad.net/~pencininkas4" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Vertėjai:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Dalis ikonų naudojama iš:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Apie Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Laidos informacija" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licencija" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autorinės teisės" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Pavadinimas:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Matomas" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Permatomumas:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Plotis:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "tašk." #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Aukštis:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Keisti paveikslėlio dydį" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Naujas paveikslėlis" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invertuoti pažymėjimą" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Pasirinkti viską" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Atžymėti viską" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Atstatyti į numatytąjį" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Nustatyti spalvų skaičių" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Panaikinti žymėjimą" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Atidaryti paletės failą" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletės dailai (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nepavyko atverti paletės failo: {0}.\n" "Prašome įsitikinti ar tikrai bandote atidaryti taisyklingą GIMP arba " "Paint.NET paletę." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Išsaugoti paletės failą" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paletė (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paletė (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Sluoksnis" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopijuoti" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Įrankis" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Kiekis" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kampas" #: CloudsEffect dialog msgid "Antialias" msgstr "Glotninimas" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Šviesumas" #: PixelateData dialog msgid "Brush Size" msgstr "Teptuko dydis" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centruotas" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensyvumas" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Apšvietimas" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Poslinkis" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "Procentai" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kokybė" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Posūkis" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "Mastelis" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Švelnumas" #: OutlineEffect dialog msgid "Strength" msgstr "Stiprumas" #: TileEffect dialog msgid "Thickness" msgstr "Storis" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Patarimas: geriausiems rezultatas gaunamas gaunamas prieš tai pasirinkimo " "įrankiu pažymėjus abi akis." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Paveikslėlių redaktorius" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Lengvai kurk ir redaguok paveikslėlius" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Paveikslėlių redaktorius „Pinta“" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Negalima išsaugoti failo atidaryto peržiūros režimu." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Įklijuojamas paveikslėlis yra didesnis už darbinę drobę. Ką norėtumėte " "daryti?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Išplėsti darbinę drobę" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Nekeisti darbinės drobės dydžio" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/lv.po0000664000175000017500000014352211747026475015247 0ustar00cameroncameron00000000000000# Latvian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Latvian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automātiskie Līmeņi" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertēt krāsas" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Līmeņi" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sēpija" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Plakātēšana" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Melnbalts" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Līknes" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Gaišums / Kontrasts" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Tonis / Piesātinājums" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Pielāgot līmeņus" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Ievadīt Histogrammu" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Ievade" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Izvade" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Izvadīt Histogrammu" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automātiski" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Atstatīt" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Sarkans" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zaļš" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Zils" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Saistīts" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Pārnešanas karte" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Spilgtums" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256 ,256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Sarkans " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Zils " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Uzziņai: Labais klikšķis lai noņemtu kontrol punktus" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Samazināt Troksni" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Troksnis" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmentēt" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Izpludināšana" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Mākoņi" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderēt" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "izfokusēt" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Sarkano acu noņemšana" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrota fraktālis" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Kvēlošana" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Malu Effekts" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizēt" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiāla pludināšana" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Matstikls" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Kropļojumi" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Eļļas Glezna" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Māksliniecisks" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Jūlija Fractālis" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Mīkstināt portretu" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljefs" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Tintes skice" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediāna" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Gofrēt" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gausa izpludināšana" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Asināt" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Pielikt Troksni" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Flīžu atspūlgs" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselēt" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Virziena izpludināšana" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polārā griešana" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Izliekums" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Mērogošanas pludināšana" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Skice ar zīmuli" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontūra" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Savīt" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiķete 1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiķete" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Pamīšus troksnis" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Pārstādīt" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Izvēlēties pirmo Krāsu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Izvēlēties Otro Krāsu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Izvēlēties Paletes Krāsu" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Taisnstūrveida iezīmējums" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikšķini un velc lai ievilktu tainstūrveida iezīmējumu. Pieturot taustiņu " "shift tiks saglabāta kvadrāta proporcija." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonēšanas rīks" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl - kreisais klikšķis lai iestatītu klonēšanas avotu, kreisais klikšķis " "lai krāsotu." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Aptuvenās iezīmēšanas rīks" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikšķini lai iezīmētu līdzīgas krāsas apgabalu" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Taisnstūris" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikšķini un velc lai zīmētu taisnstūri (labais klikškis otrā krāsa). " "Pieturot taustiņu shift tiks saglabāta kvadrāta proporcija." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pārvietot iezīmēto" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Velc iezīmējumu lai pārvietotu iezīmējuma kontūru" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Krāsu pāreja" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Pieturot peles pogu velc lai zīmētu krāsu pāreju no pirmās krāsas uz otro. " "Labais peles taustiņš samaina krāsas vietām." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineāra krāsu pāreja" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineāra, atstarota krāsu pāreja" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Dimantveida krāsu pāreja" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiāla krāsu pāreja" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Koniskā krāsu pāreja" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Pārpludināšanas režīms" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Nepārtraukts" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globāls" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerance" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Ota" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "Kreisā peles poga lai zīmētu ar pirmo krāsu, labā - ar otro krāsu." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tips" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Zīmulis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Kreisā peles poga lai zīmētu brīvu, viena pikseļa platu līniju ar pirmo " "krāsu, labā poga - ar otro krāsu." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elipses iezīmēšana" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klikšķini un velc ar peli lai ievilktu eliptisko iezīmēšanas līniju. " "Pieturot shift lai ievilktu precīzu apli." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Līnija" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Kreisais klikšķis, lai zīmētu ar primāro krāsu, labais klikšķis — ar " "sekundāro. Turiet Shift taustiņu, lai pievilku pie stūriem." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Dzēšgumija" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Kreisā poga lai dzēstu līdz caurspīdīgumam, labā lai dzēstu ar sekundāro " "krāsu. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Aplūkošana" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikšķini un velc lai aplūkotu attēlu" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Krāsas noteicējs" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Kreisais klikšķis lai iestatītu pirmo krāsu. Labais klikšķis lai iestatītu " "otro krāsu." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Pēc izvēles:" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Nepārslēgt rīkus" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Pārslēgt uz iepriekšējo rīku" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Pārslēgt uz zīmuli" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Noapaļots taisnstrūris" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Rādiuss" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Samazināt stūru rādiusu" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Palielināt stūru rādiusu" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Pārvietot iezīmētos pikseļus" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Velc iezīmējumu lai pārvietotu tajā esošo saturu." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Pārkrāsot" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Kreisasi klikšķis lai samainītu pirmo krāsu ar otro krāsu." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Krāsas Spainis" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Kreisais klikšķis lai aizpildītu reģionu ar pirmo krāsu, labais - ar otro." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikšķini un velc lai zīmētu elipsi (labais klikšķis otrajai krāsai). " "Pieturot shift tiks zīmēts precīzs aplis." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Teksts" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Kreisais klikšķis lai novietotu kursoru un rakstītu vēlamo tekstu. Teksts " "būs pirmās krāsas tonī." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Fonts" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Treknraksts" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Slīpraksts" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Pasvītrots" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Līdzināt pa kreisi" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Līdzināt pēc vidus" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Līdzināt pa labi" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Teksta Stils" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normāls" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normāla Ārlīnija" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Ārlīnijas Platums" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Samazināt Ārlīnijas Izmēru" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Palielināt Ārlīnijas Izmēru" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Otas Platums" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Samazināt Otas Izmēru" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Palielināt Otas Izmēru" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Iekrāsošanas veids" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Tikai ārlīnija" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Tikai pildīt" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Pildīt un ārlīnija" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Rinķi" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Režģis" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kvadrāti" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Šļaksts" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Tālummaiņa" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Kreisais klikšķis - tuvināt. Labais klikšķis - tilināt. Klikšķināt un vilkt " "lai iezīmētu apgabalu kuru palielināt." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso Iezīmēšana" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikškini un velc lai zīmētu iezīmēšanas apgabalu." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Brīvformas figūra" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Par programmu" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fails" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Rediģēt" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Skats" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Attēls" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "S_lāņi" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Korekcij_as" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_kti" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Logs" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Rīku Logi" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Palīdzība" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Rīki" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palete" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenti" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Slāņi" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Vēsture" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Slēpt" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Novietot panelī" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Paslēpt automātiski" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Panelī" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Atsevišķā logā" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Uzņemt ekrānattēlu" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Laiks pirms uzņemt ekrān-šāviņu (sekundēs):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Vai saglabāt \"{0}\" pirms aizvēršanas?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ja nesaglabāsiet, visas izmaiņas tiks neatgriezeniski zaudētas." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Aizvērt nesaglabājot" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Toņu daudzums" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Jaunās paletes toņu daudzums:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Iekopēt jaunā slānī" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Slāņa caurredzamība" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Pārsaukt slāni" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Paslēpt Slāni" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Parādīt Slāni" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Slāņa Opcijas" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Atvērt Attēla Failu" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Attēla faili" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Visi faili" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Saglabāt Attēla Failu" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta neatbalsta šo faila formātu." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Kļūda" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Fails \"{0}\" jau eksistē. Vai vēlaties to pārrakstīt?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Šis fails jau pastāv \"{1}\". Aizvietojot tiks pārskatīts tā saturs." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Kvalitāte" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalitāte: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Nosaukums" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versija" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ceļš" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Šī laidiena atbalstītāji" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Bijušie atbalstītāji" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Janis Petersons https://launchpad.net/~bakape\n" " Rūdolfs Mazurs https://launchpad.net/~rudolfs-mazurs\n" " Stendec https://launchpad.net/~stendec" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tulkoja:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Veidots uz Paint.NET bāzes" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Lietot dažas ikonas no:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Par Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versijas Informācija" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licence" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Publicēts zem MIT X11 licences." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autortiesības" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "visi Pinta atbalstītāji" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Vārds:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Redzams" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Necaurspīdīgums:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Audekla izmērs" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Procentuāli:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Prezīzs izmērs:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Platums:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikseļi" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Augstums:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Saglabāt malu attiecību" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Enkurs:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Mainīt attēla izmēru" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Jauna Bilde" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Jaunais Attēla Izmērs " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "Pavedienu daudzums ko izmantot renderēšanai" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "ParametraVārds" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Renderēšanas Effekti" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nesglabāts attēls {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fons" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Atvērt attēlu" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nevar atvērt failu: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Ievietot" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Pagriezt 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Pagriezt attēlu horizontāli" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Pagriezt attēlu vertikāli" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Pagriezt par 90° pa labi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Pagriezt par 90° pa kreisi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Pagriezt slāni horizontāli" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Pagriezt slāni vertikāli" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pabeigtie piksleļi" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta mājaslapa" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Ziņot par kļūdu" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Tulkot šo programmu" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Saglabāt visu" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Aivērt visu" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Jauns..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Jauns ekrān-šāviņš..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Atvērt..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Atvērt nesenos" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Aizvērt" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Saglabāt" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Saglabāt kā..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Drukāt" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Iziet" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Jauns" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Atvērt" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Pievienot jaunu slāni" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Dzēst slāni" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dublēt slāni" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Apvienot ar zemāko slāni" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Ievietot no faila..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Apmest horizontāli" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Apmest vertikāli" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Pārvietot Slāni Uz Augšu" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Pārvietot Slāni uz Leju" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Slāņa īpašības" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Ievietot no faila" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Apcirst līdz iezīmējumam" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Mainīt attēla izmēru..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Mainīt audekla izmēru..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Placināt" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Tuvināt" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Tālināt" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Labākais Izmērs" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Tuvināt līdz iezīmētajam" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normāla izmēra" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Rīkjosla" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pikseļu rūtis" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Līneāli" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikseļi" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Collas" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pilnekrāns" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Lineāla Mērvienības" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Logs" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Atsaukt" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Atkārtot" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Izgriezt" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopēt" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Ielīmēt jaunā attēlā" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Dzēst iezīmējumu" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Aizpildīt iezīmējumu" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invertēt iezīmējumu" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Iezīmēt visu" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Atcelt visu iezīmēto" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Iestatīt noklusētos parametrus" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Iestatīt krāsu daudzumu" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Dzēst iezīmējumu" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Noņemt iezīmējumu" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Atvērt paletes failu" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palešu faili (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nevar atvērt paleti: {0}.\n" "Pārliecinieties vai tā ir derīga GIMP vai Paint.NET krāsu palete." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Saglabāt paleti" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palete (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palete (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Slānis" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopēt" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Rīks" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Taustiņš" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Parastā Jaukšana" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Pārrakstīt" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Malu pludināšana Ieslēgta" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Malu pludināšana izslēgta" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} attēls ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Vispārīgi" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Daudzums" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Leņķis" #: CloudsEffect dialog msgid "Antialias" msgstr "Nogludināt" #: GlowEffect dialog msgid "Blend Mode" msgstr "Jaukšana" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Spilgtums" #: PixelateData dialog msgid "Brush Size" msgstr "Otas izmērs" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Šūnas izmērs" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centra nobīde" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrēts" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Rupjums" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Krāsu apgabals" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Krasu piesātinājums" #: GlowEffect dialog msgid "Coloring" msgstr "Krāsošana" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrasts" #: FragmentEffect dialog msgid "Coverage" msgstr "Pārklājums" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Attālums" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Malu uzvedība" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Koeficients" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenti" #: TileEffect dialog msgid "Ink Outline" msgstr "Līnijas ar tinti" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitāte" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Apgaismonjums" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Nobīde" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Zīmuļa tipa izmērs" #: CloudsEffect dialog msgid "Percentile" msgstr "Procentile" #: RadialBlurEffect dialog msgid "Power" msgstr "Spēks" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalitāte" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotācija" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Piesātinājums procentos" #: CloudsEffect dialog msgid "Scale" msgstr "Mērogs" #: SoftenPortraitData dialog msgid "Seed" msgstr "Sēt" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mīkstums" #: OutlineEffect dialog msgid "Strength" msgstr "Stiprums" #: TileEffect dialog msgid "Thickness" msgstr "Biezums" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Rūts izmērs" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Siltums" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Izvēlaties zemu kvalitāti priekšskatījumam, maziem attēliem un maziem " "leņķiem. Izvēlaties augstu kvalitāti labam rezultātam, lieliem attēliem un " "lieliem leņķiem." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Izziņai: Labākam rezultātam, vispirms lietojiet iezīmēšanas rīku lai " "iezīmētu katru aci." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Attēlu redaktors" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Viegli veidot un rediģēt atēlus" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta attēlu redaktors" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nevar saglabāt tikai lasāmu failu" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Ielīmētais attēls ir lielāks kā audekla izmērs. Ko vēlaties darīt?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Izvērst audeklu" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Nemainīt audekla izmēru" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/messages.in0000664000175000017500000002461311747026475016424 0ustar00cameroncameron00000000000000 #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "Use low quality for previews, small images, and small angles. Use high quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/messages.pot0000664000175000017500000012340511747026475016617 0ustar00cameroncameron00000000000000#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "X-Launchpad-Export-Date: 2012-04-01 18:16+0000\n" "X-Generator: Launchpad (build 15032)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ms.po0000664000175000017500000014144411747026475015246 0ustar00cameroncameron00000000000000# Malay translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Malay \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:21+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Paras Auto" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Terbalikkan Warna" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Paras-paras" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterkan" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Hitam Putih" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Lengkung" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Kecerahan / Beza Jelas" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Hue / Ketepuan" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Pelarasan Paras" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogram Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogram Output" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Tetap semula" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Merah" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Hijau" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Biru" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Terpaut" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Peta Pindahan" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminans" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Merah " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Biru " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Klu: Klik kanan untuk buang titik kawalan" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Kurangkan Hingar" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Hingar" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Serpihan" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Kabur" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Awan" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Jadikan" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Samar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Pembuangan Mata Merah" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Bersinar" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Kesan Tepi" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Gayakan" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Kabur Berjejari" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Gelas Beku" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Herot" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Lukisan Minyak" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistik" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Lembutkan Potret" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Lepas" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Lakaran Dakwat" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Cetak Timbul" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Kabur Gaussian" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Jelaskan" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Tambah Hingar" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Pantulan Genting" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselkan" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Kabur Gerakan" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Pembalikan Kutub" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bonjol" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Kabur Zum" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Lakaran Pensil" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Garis Luar" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Putar" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Hingar Rawak" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Benih Semula" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Pilih Warna Utama" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Pilih Warna Kedua" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Pilih Warna Palet" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Pilih Segi Empat Tepat" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klik dan heret untuk buat pilihan segi empat tepat. Tekan dan tahan shift " "untuk jadikan segi empat sama." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klon Setem" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+klik kiri untuk tetapkan asalan, klik kiri untuk cat" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Pilih Tongkat Ajaib" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klik untuk pilih kawasan yang sama warna" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Segiempat Tepat" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klik dan heret untuk lukis segi empat tepat ( klik kanan untuk warna kedua). " "Tahan shift untuk jadikan segi empat sama." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Alih Pilihan" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Heret pilihan untuk alih garis luar pilihan." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradien" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik dan seret untuk lukis gradien dari warna utama ke warna sekunder. Klik " "kanan untuk songsangkan." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gredien Linear" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradien Terpantul Linear" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradien Intan Linear" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradien Jejari" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradien Berkon" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mod Limpah" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Bersebelahan" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Sejagat" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Had terima" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Berus cat" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Klik kiri untuk lukis warna utama, klik kanan untuk lukis warna sekunder." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Jenis" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Pensil" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Klik kiri untuk lukis secara bebas, garis berlebar satu-piksel dengan warna " "utama, klik kanan untuk guna warna sekunder." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Pilih Elips" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klik dan seret untuk lukis pemilihan berelips. Tekan shift untuk kekalkan " "kepada bulatan." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Garis" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Klik kiri untuk lukis warna utama, klik kanan untuk warna sekunder. Tekan " "kekunci Shift untuk lekat ke sudut." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Pemadam" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Klik kiri untuk padam ke lutsinar, klik kanan untuk padam ke warna sekunder. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klik dan seret untuk pandu arah imej." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pemilih Warna" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Klik kiri untuk tetapkan warna utama. Klik kanan untuk tetapkan warna " "sekunder." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Selepas pilih" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Jangan tukar alat" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Tukar kepada alat terdahulu" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Tukar ke alat Pensel" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Segi Empat Tepat Bundar" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Jejari" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Kurangkan jejari bucu segi empat tepat" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Tingkatkan jejari bucu segi empat tepat" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Alih Piksel Pilihan" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Seret pemilihan untuk alihkan kandungan pilihan." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Warna Semula" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Klik kiri untuk gantikan warna sekunder dengan warna utama." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Baldi Cat" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Klik kiri untuk isi kawasan dengan warna utama, klik kanan untuk isi dengan " "warna sekunder." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klik dan seret untuk lukis elips (klik kanan untuk warna sekunder). Tekan " "shift untuk kekalkan ke bulatan." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Teks" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Klik kiri untuk letakkan kursor, kemudian taip teks dikehendaki. Warna teks " "ialah warna utama." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Huruf" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Huruf Tebal" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Huruf condong" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Garis Bawah" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Jajar Kiri" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Jajar Tengah" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Jajar Kanan" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Gaya Tulisan" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Biasa" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Biasa dan Garis Luar" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Isi Latar Belakang" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Lebar garis luar" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Kurangkan saiz garis luar" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Tingkatkan saiz garis luar" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Lebar Berus" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Kurangkan saiz berus" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Tingkatkan saiz berus" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Gaya Isi" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Bentuk Garis Luar" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Bentuk Isi" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Isi dan Bentuk Garis Luar" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Bulatan" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grid" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Segi Empat Sama" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zum" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Klik kiri untuk zum masuk. Klik kanan untuk zum keluar. Klik dan seret untuk " "zum dalam pemilihan." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Pilih Lasso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik dan seret untuk lukis garis luar kawasan pemilihan." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Bentuk Bebas" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Perihal" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fail" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Sunting" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Paparan" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imej" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lapisan" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Pelarasan" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Kes_an" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Tetingkap" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Tetingkap Alat" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Bantuan" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Alatan" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palet" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumen" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lapisan" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Sejarah" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Sorok" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Labuh" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Auto Sembunyi" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Boleh labuh" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Terapung" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ambil Cekupan Skrin" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Lengahan sebelum mengambil cekupan skrin (saat):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Simpan perubahan ke imej \"{0}\" sebelum menutup?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Jika anda tidak simpan, semua perubahan akan hilang." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Tutup tanpa simpan" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ubah Saiz Palet" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Saiz baru palet:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Tampal dalam Lapisan Baru" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Kelegapan Lapisan" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Namakan Semula Lapisan" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Sorok Lapisan" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Paparkan Lapisan" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Ciri Lapisan" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Buka Fail Gambar" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fail-fail Gambar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Semua fail-fail" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Simpan fail Gambar" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta tidak boleh menyimpan gambar dalam format fail ini." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Ralat" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Fail bertajuk \"{0}\" sudah pun ada. Anda mahu gantikan ia?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Fail sudah pun wujud dalam \"{1}\". Semua kandungan sedia ada akan ditindan " "jika anda pilih gantikan." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kualiti JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kualiti: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tajuk" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versi" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Laluan" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Penyumbang Terbitan ini" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Penyumbang Terdahulu" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Mohd Farimi Ab Rahman https://launchpad.net/~farimi\n" " abuyop https://launchpad.net/~abuyop\n" " lcdvirgo https://launchpad.net/~lcdvirgo" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Diterjemah oleh:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Berasaskan Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Menggunakan beberapa ikon dari:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Berkenaan Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Maklumat Versi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lesen" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Dilepaskan dibawah Lesen X11 MIT." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Hakcipta" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "oleh penyumbang Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nama:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Boleh Dilihat" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Kelegapan:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ubah Saiz Kanvas" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Ikut peratus:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Mengikut saiz mutlak:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Lebar:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "piksel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Tinggi:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Kekalkan nisbah aspek" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Sauh:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ubah Saiz Gambar" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Gambar Baru" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Saiz Baru Gambar " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "bilangan bebenang yang digunakan untuk penerapan" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nama Pilihan" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Kesan Penerapan" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Gambar Belum Simpan {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Latar Belakang" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Buka Gambar" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Gagal buka fail: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Tampal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Pusing 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Pusing Mendatar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Pusing Menegak" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Pusing 90° Arah Jam" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Pusing 90° Lawan Arah Jam" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Kalih Lapisan Secara Melintang" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Kalih Lapisan Secara Menegak" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Piksel Selesai" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Laman web Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Adukan Ralat" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Terjemah Aplikasi Ini" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Simpan Semua" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Tutup Semua" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Baru..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Cekupan Skrin Baru..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Buka..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Buka Terkini" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Tutup" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Simpan" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Simpan Sebagai..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Cetak" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Berhenti" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Baru" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Buka" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Tambah Lapisan Baru" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Padam Lapisan" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Gandakan Lapisan" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Gabungkan Lapisan Bawah" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Import dari Fail..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Kalih Mengufuk" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Kalih Menegak" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Putar / Zum Lapisan..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Alih Lapisan Ke atas" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Alih Lapisan Ke bawah" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Ciri-ciri Lapisan..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Import Dari Fail" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Kerat ke Pemilihan" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Kerat-Sendiri" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Saiz Semula Imej..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Saiz Semula Kanvas..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Meratakan" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zum Masuk" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zum Keluar" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Sesuai Muat" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zum ke Pemilihan" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Saiz Normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Palang Alat" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grid Piksel" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Pembaris" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Piksel" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inci" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Sentimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Skrin Penuh" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unit Pembaris" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Tetingkap" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Buat Asal" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Buat semula" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Potong" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Salin" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Tampal ke Imej Baru" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Padam Pemilihan" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Isi Pemilihan" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Songsangkan Pemilihan" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Pilih Semua" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Nyahpilih Semua" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Tetap ke Lalai" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Tetapkan Bilangan Warna" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Padamkan Pemilihan" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Nyahpilih" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Buka Fail Palet" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Fail Palet (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Tidak Boleh Buka Fail Palet: {0}.\n" "Sila mengesahkan bahawa anda cuba membuka palet GIMP atau palet Paint.NET " "yang sah." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Simpan Fail Palet" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Palet Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Palet GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lapisan" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "salin" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Alat" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Kekunci pintasan" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Pengadunan Normal" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Tulis-Ganti" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialias Hidup" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialias Mati" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imej ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Am" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Amaun" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Sudut" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mod Adunan" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Kecerahan" #: PixelateData dialog msgid "Brush Size" msgstr "Saiz Berus" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Saiz Sel" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Ofset Pusat" #: OilPaintingEffect dialog msgid "Centered" msgstr "Ditengahkan" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Kekasaran" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Julat Warna" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Ketepuan Warna" #: GlowEffect dialog msgid "Coloring" msgstr "Pewarnaan" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Beza Jelas" #: FragmentEffect dialog msgid "Coverage" msgstr "Liputan" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Jarak" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kelakuan Pinggir" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Cebisan" #: TileEffect dialog msgid "Ink Outline" msgstr "Garis Luar Dakwat" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensiti" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Pencahayaan" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Ofset" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Saiz Tip Pensel" #: CloudsEffect dialog msgid "Percentile" msgstr "Persentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Kuasa" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kualiti" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Putaran" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Peratusan Ketepuan" #: CloudsEffect dialog msgid "Scale" msgstr "Skala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Benih" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Kelembutan" #: OutlineEffect dialog msgid "Strength" msgstr "Kelembutan" #: TileEffect dialog msgid "Thickness" msgstr "Ketebalan" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Saiz Jubin" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Kehangatan" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Guna kualiti rendah untuk previews, imej kecil, dan sudut kecil. Guna " "kualiti tinggi untuk kualiti terakhir, imej besar, dan sudut besar." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Pembayang: Untuk hasil yang terbaik, mula-mula sila gunakan alat pemilihan " "untuk memilih setiap mata." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Penyunting Imej" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Cipta dan sunting imej dengan mudah" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Penyunting Imej Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imej" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Tidak dapat simpan fail baca-sahaja" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Imej yang ditampal lebih besar dari saiz kanvas. Apa yang anda ingin lakukan?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Kembangkan kanvas" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Jangan ubah saiz kanvas" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Putar / Zum Lapisan" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/nb.po0000664000175000017500000014220511747026475015222 0ustar00cameroncameron00000000000000# Norwegian Bokmal translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-22 20:07+0000\n" "Last-Translator: Robert Nordan \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Autonivå" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Snu om farger" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivåer" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Bruntone" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Plakateffekt" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Svart-hvitt" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurver" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Lysstyrke / kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Fargetone / Metning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Nivå tilpassning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogram inndata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Inndata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Utdata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogram utdata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatisk" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Nullstill" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rød" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grønn" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blå" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Koblet" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Overføringskart" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Lysstyrke" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rød " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blå " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tips: Høyreklikk for å fjerne kontrollpunkter" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduser støy" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Støy" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Utydeliggjør" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Skyer" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Generer" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Defokusér" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Fjern røde øyne" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Bilde" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glød" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Oppdag kanter" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilisér" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radial blur" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frostet glass" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Forvreng" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oljemaleri" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Kunstnerisk" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Mykne portrett" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relieff" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Pennskisse" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Preg" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussisk slør" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Gjør skarpere" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Legg til støy" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Flisrefleksjon" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikseller" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Bevegelsesslør" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polar invertering" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Buling" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Uklar forstørrelse" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Blyantskisse" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Omriss" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Vridd" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etikett1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etikett" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Tilfeldig støy" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Fordel på nytt" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Velg primærfarge" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Velg sekundærfarge" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Velg palettfarge" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rektangelutvalg" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikk og dra for å tegne rektangelutvalget. Hold skift inne for å begrense " "firkanten." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonestempel" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+venstre museklikk for å sette utgangspunkt, venstre museklikk for å " "tegne." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magisk utvalgsstav" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikk for å velge utvalg av samme farge." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rektangel" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikk og dra for å tegne et rektangel (høyreklikk for sekundærfarge). Hold " "shift-knappen inne for å tvinge frem et kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytt merket område" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Dra i utvalget for å flytte utvalgets omriss." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klikk og dra for å tegne gradient fra primærfarge til sekundærfarge. " "Høyreklikk for å tegne motsatt." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineær gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineær gradient med refleksjon" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Diamantformet gradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kjegleformet gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Fyllmodus" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Kontinuerlig" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleranse" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Malerpensel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Venstreklikk for å tegne med primærfarge, høyreklikk for å tegne med " "sekundærfarge." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Blyant" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Venstreklikk for å tegne fritt med en piksel brede linjer i primærfargen, " "høyreklikk for sekundærfargen." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elliptisk utvalg" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klikk og dra for å gjøre et elliptisk utvalg. Hold shift-knappen for å " "tvinge frem en sirkel." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Strek" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Venstreklikk for å tegne med primærfarge, høyreklikk for sekundærfarge. Hold " "Shift-tasten for å tvinge frem rette vinkler." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Viskelær" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Venstreklikk for å viske til gjennomsiktighet, høyreklikk for å viske til " "sekundærfarge. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Panorér" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikk og dra for å navigere i bildet." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Fargeplukker" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Venstreklikk for å sette primærfarge. Høyreklikk for å sette sekundærfarge." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Etter utvalg" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ikke bytt verktøy" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Bytt til det forrige verktøyet" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Bytt til blyant-verktøyet" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Avrundet rektangel" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Reduser rektangelets hjørneradius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Øk rektangelets hjørneradius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Flytt valgte piksler" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Dra i utvalget for å flytte valgt innhold." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Endre farge" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Venstreklikk for å erstatte sekundærfargen med primærfargen." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Malingsspann" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Venstreklikk for å fylle et område med primærfargen, høyreklikk for å fylle " "med sekundærfargen." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikk og dra for å tegne en ellipse (høyreklikk for sekundærfarger). Hold " "shift-knappen for å tvinge frem en sirkel." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Venstreklikk for å plassere markøren, så skriv ønsket tekst. Tekstfargen er " "primærfargen." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Skrifttype" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Fet" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Understreket" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Venstrejuster" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Senterjuster" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Høyrejuster" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Tekststil" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal og uthevet" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Fylt bakgrunn" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Uthevelsesbredde" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Reduser uthevelsesbredde" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Øk uthevelsesbredde" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Børstebredde" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Reduser børstestørrelse" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Øk børstestørrelse" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fyllstil" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Lag omriss av formen" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fyll formen" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Lag omriss og fyll formen" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Sirkler" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Rutenett" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Firkanter" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Malingsdrypp" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Forstørr/forminsk" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Venstreklikk for å forstørre. Venstreklikk for å forminske. Klikk og dra for " "å forstørre til valgt område." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lasso-utvalg" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikk og dra for å tegne omrisset til et utvalgsområde." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Fri from" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Om" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fil" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "R_ediger" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vis" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Bilde" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lag" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Justeringer" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Effekter" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Vindu" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Verktøyvinduer" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Hjelp" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Verktøy" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palett" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenter" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lag" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Logg" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Skjul" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Feste/løsne" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Skjul automatisk" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Kan festes til hovedvinduet" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flytende" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ta skjermbilde" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Ventetid før skjermbilde blir tatt (sekunder):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Lagre endringene til bildet \"{0}\" før det lukkes?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Hvis du ikke lagrer vil alle endringer gå tapt." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Lukk uten å lagre" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Endre palettstørrelse" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Ny palettstørrelse:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Lim inn i nytt lag" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Laggjennomsiktighet" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Endre navn på lag" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Gjem lag" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Vis lag" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Laginnstillinger" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Åpne bildefil" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Bildefiler" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Alle filer" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Lagre bildefil" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta støtter ikke lagring av bilder i dette formatet." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Feil" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "En fil ved navn \"{0}\" eksisterer allerede. Vil du erstatte den?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Filen eksisterer allerede i \"{1}\". Hvis den erstattes vil innholdet bli " "overskrevet." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalitet: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tittel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versjon" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sti" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bidragsytere til denne utgaven" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Tidligere bidragsytere" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Espen L https://launchpad.net/~espenl\n" " Hender https://launchpad.net/~simsalabimladen\n" " Robert Nordan https://launchpad.net/~rpvn\n" " Svein Tore Seljebotn https://launchpad.net/~sveint\n" " Terje Andersen https://launchpad.net/~terander" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Oversatt av:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basert på Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Bruker noen av ikonene fra:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Om Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versjonsinformasjon" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lisensavtale" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Utgitt under MIT X11-lisensen." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Opphavsrett" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "av Pintas bidragsytere" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Navn:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Synlig" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Tetthet:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Endre lerretstørrelse" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Prosentvis:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Etter absolutt størrelse:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Bredde:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "piksler" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Høyde:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Behold høyde/bredde-forhold" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Anker:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Endre størrelse på bilde" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nytt bilde" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Størrelse på nytt bilde " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "antall beregningstråder å bruke til tegning" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "AlternativsNavn" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Visningseffekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ulagret bilde {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Bakgrunn" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Åpne bilde" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunne ikke åpne fil: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Lim inn" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Roter 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Bilde vendt horisontalt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Bilde vendt vertikalt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Roter 90° med klokken" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Roter 90° mot klokken" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Lag vendt horisontalt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Lag vendt vertikalt" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Avslutt piksler" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta-hjemmesiden" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Rapporter en feil" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Oversett dette programmet" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Lagre alle" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Lukk alle" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Ny …" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nytt skjermbilde..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Åpne..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Åpne nylig brukt" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Lukk" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Lagre" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Lagre som..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Skriv ut" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Avslutt" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Ny" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Åpne" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Legg til et nytt lag" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Slett lag" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliser lag" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Flett lag nedover" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importer fra fil..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Vend horisontalt" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Vend vertikalt" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotér / Forstørr lag..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Flytt lag opp" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Flytt lag ned" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Lagegenskaper..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importer fra fil" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Klipp til utvalg" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatisk Beskjæring" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Endre bildestørrelse..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Endre lerretstørrelse..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Flat ut" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Forstørr" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Forminsk" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Beste tilpasning" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Forstørr til utvalget" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal størrelse" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Verktøylinje" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pikselrutenett" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linjaler" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Piksler" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tommer" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Fullskjerm" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Linjalenheter" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Vindu" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Angre" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Gjenta" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Klipp ut" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiér" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Lim inn i et nytt bilde" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Slett utvalget" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fyll utvalget" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverter utvalg" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Merk alle" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Avmerk alle" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Sett tilbake til standard" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Still inn antall farger" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Slett utvalg" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Fjern merking" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Åpne palett-fil" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palett-filer (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Klarte ikke å åpne palett-filen: {0}.\n" "Vennligst verifiser at du forsøker å åpne en gyldig palett-fil for GIMP " "eller Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Lagre palett-fil" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palett-fil (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palett-fil (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lag" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopi" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Verktøy" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Hurtigtast" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal blending" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overskriv" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Kantutjevning slått på" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Kantutjevning slått av" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} bilde ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Generelt" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Mengde" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Vinkel" #: CloudsEffect dialog msgid "Antialias" msgstr "Kantutjevning" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blendingsmodus" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Lyshet" #: PixelateData dialog msgid "Brush Size" msgstr "Penselstørrelse" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cellestørrelse" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Sentrumsforskyvning" #: OilPaintingEffect dialog msgid "Centered" msgstr "Midtstilt" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grovhet" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Fargeområde" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Fargemetning" #: GlowEffect dialog msgid "Coloring" msgstr "Fargelegging" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Omfang" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Avstand" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kanthåndtering" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenter" #: TileEffect dialog msgid "Ink Outline" msgstr "Blekkutheving" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Lyssetting" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Forskyving" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Blyanttykkelse" #: CloudsEffect dialog msgid "Percentile" msgstr "Prosentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Styrke" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalitet" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotasjon" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Metningsprosent" #: CloudsEffect dialog msgid "Scale" msgstr "Målestokk" #: SoftenPortraitData dialog msgid "Seed" msgstr "Utgangsverdi" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mykhet" #: OutlineEffect dialog msgid "Strength" msgstr "Styrke" #: TileEffect dialog msgid "Thickness" msgstr "Tykkelse" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Flisstørrelse" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Varme" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Bruk lav kvalitet for forhåndsvisninger, små bilder og små vinkler. Bruk " "høyt kvalitet for ferdig produkt, store bilder og store vinkler." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Hint: For best mulig resultat bruk først utvalgsverktøy for å velge hvert " "øye." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Bildebehandler" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Lag og rediger bilder på en enkel måte" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Bildebehandler" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Bilder" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Kan ikke lagre over en skrivebeskyttet fil." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Bildet du limer inn er større enn lerretet. Hva vil du gjøre?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Utvid lerretet" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "La være å endre lerretets størrelse" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotér / Forstørr lag" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/nl.po0000664000175000017500000014257511747026475015246 0ustar00cameroncameron00000000000000# Dutch translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatisch niveaus bepalen" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Kleuren omkeren" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveaus" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterize" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Zwart / Wit" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curven" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Helderheid / Contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Tint / Verzadiging" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Niveaus aanpassen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Invoerhistogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Invoer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Uitvoer" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Uitvoerhistogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatisch" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Herstellen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rood" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Groen" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blauw" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Gekoppeld" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transferkaart" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminantie" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rood " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blauw " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Rechtermuisklik om controlepunten te verwijderen." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Ruis verminderen" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Ruis" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmenteren" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Vervagen" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Wolken" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderen" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Ontfocussen" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Rode ogen verwijderen" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Gloed" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Randen detecteren" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stileren" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiale vervaging" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Matglas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Vervormen" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olieverf" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistiek" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-fractal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "\"Portret verzachten" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reliëf" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Inkttekening" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediaan" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Emboss" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussiaans vervagen" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Verscherpen" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Ruis toevoegen" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Tegelreflectie" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelvorming" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Bewegingsvervaging" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polaire inversie" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bolvorm" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoomvervaging" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Potloodtekening" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Omlijnen" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Spiraal" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "label1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "label" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Willekeurige ruis" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Hergenereren" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Primaire kleur kiezen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Secundaire kleur kiezen" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Paletkleur kiezen" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rechthoekselectie" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klik en sleep om rechthoek te tekenen. Houd shift ingedrukt voor een " "vierkant." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kloonstempel" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-klik voor bronselectie, klik om te tekenen." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Toverstafselectie" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klik om regio met gelijkwaardige kleur te selecteren." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rechthoek" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klik en sleep om rechthoek te tekenen (rechtermuis voor secundaire kleur). " "Houd shift ingedrukt voor een vierkant." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Selectie verplaatsen" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Sleep de selectie om selectieomlijning te verplaatsen." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradiënt" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik en sleep om gradiënt van primaire naar secunaire kleur te tekenen. " "Rechtermuisklik om kleuren om te draaien." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineaire gradiënt" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineair gereflecteerde gradiënt" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Lineaire diamantgradiënt" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiale gradiënt" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Conische gradiënt" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Vulmodus" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Aangrenzend" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globaal" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerantie" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Penceel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Linkermuisklik voor primaire kleur, rechtermuisklik voor secundaire kleur." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Soort" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Potlood" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Klik om vrije vorm, één pixel brede lijnen in primaire kleur te tekenen. " "Rechtermuisklik voor secundaire kleur." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellips-selectie" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klik en sleep voor een elliptische selectie. Houd shift ingedrukt voor een " "cirkel." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Lijn" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Klik met de linkermuisknop om te tekenen met primaire kleuren, klik met de " "rechtermuisknop voor secundaire kleur. Houd de Shift-toets in om hoeken te " "uitlijnen." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gum" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Linkermuisklik om te verwijderen en transparant te maken, rechtermuisklik om " "te verwijderen en secundaire kleur te gebruiken. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Verschuiven" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klik en sleep om door afbeelding te navigeren." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pipet" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Linkermuisklik voor kiezen primaire kleur. Rechtermuisklik voor kiezen " "secundaire kleur" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Na selecteren" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Gereedschap behouden" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Ga naar vorig gereedschap" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Potloodgereedschap" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Afgerond rechthoek" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Hoekradius van rechthoek verkleinen" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Hoekradius van rechthoek vergroten" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Geselecteerde pixels verplaatsen" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Sleep de selectie om de inhoud te verplaatsen." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Verkleuren" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Linkermuisklik om secundaire kleur door primaire kleur te vervangen" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vullen" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Linkermuisklik om te vullen met primaire kleur, rechtermuisklik om te vullen " "met secundaire kleur." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klik en sleep om ellips te tekenen. Houd shift ingedrukt voor een cirkel." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Klik om cursor te plaatsen en tekst te typen. Tekstkleur is primaire kleur." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Lettertype" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Vetgedrukt" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Cursief" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Onderstreept" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Links uitlijnen" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Centreren" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Rechts uitlijnen" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Tekststijl" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normaal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Standaard en omlijnd" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Vul achtergrond" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Lijndikte" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Verklein lijndikte" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Vergroot lijndikte" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Penceeldikte" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Penceeldikte verkleinen" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Penceeldikte vergroten" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Vullingstijl" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Omlijnen" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Opvullen" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Opvullen en omlijnen" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cirkels" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Raster" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Vierkanten" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Spatten" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zoomen" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Linkermuisklik voor inzoomen. Rechtermuisklik voor uitzoomen. Klik en sleep " "om in te zoomen op selectie." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lassoselectie" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik en sleep om een selectie te tekenen." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Vrije vorm" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Over" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Bestand" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "B_ewerken" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "Weerga_ve" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "Afbeeld_ing" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Laag" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Aanpassingen" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Effe_cten" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Venster" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Gereedschapvensters" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Help" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Gereedschappen" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palet" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documenten" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lagen" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Geschiedenis" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Verbergen" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dock" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatisch verbergen" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Zwevend" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Schermafdruk maken" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Vertraging voor maken schermafbeelding (seconden):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Aanpassingen aan afbeelding \"{0}\" opslaan voor sluiten?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Als U niet opslaat, zullen alle veranderingen verloren gaan." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Sluiten zonder opslaan" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Paletgrootte aanpassen" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nieuw paletgrootte" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "In nieuwe laag plakken" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Laagdekking" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Laag hernoemen" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Laag verbergen" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Laag tonen" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Laageigenschappen" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Afbeeldingsbestand openen" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Afbeeldingsbestanden" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Alle bestanden" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Afbeelding opslaan" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ondersteunt het opslaan in dit bestandsformaat niet." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Fout" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Bestand genaamd \"{0}\" bestaat reeds. Wilt u deze vervangen?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Bestand bestaat reeds in \"{1}\". Vervangen zal de inhoud overschrijven." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kwaliteit" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kwaliteit: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versie" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pad" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bijdragen aan deze release" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Voorgaande bijdragen" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Arjan ten Vergert https://launchpad.net/~info-bobsquad\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Guus https://launchpad.net/~guus-verbeek\n" " Harry Slieker https://launchpad.net/~harryslieker\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Richard Prins https://launchpad.net/~pewpewaliens\n" " Tijmen Rekmans https://launchpad.net/~tijmenr\n" " Yordi de Graaf https://launchpad.net/~yddegraaf" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Vertaald door:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Gebaseerd op het werk aan Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Met gebruikmaking van iconen van:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Over Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versie Info" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licentie" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Uitgebracht onder de MIT X11 Licentie." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Auteursrecht" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "door Pinta bijdragers" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Naam:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Zichtbaar" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Dekking:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Canvasgrootte aanpassen" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Met percentage:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Tot absolute grootte" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Breedte:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Hoogte:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Verhouding handhaven" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Vastzetten:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Formaat wijzigen" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nieuwe afbeelding" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nieuwe afbeeldingsgrootte " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "Aantal te gebruiken threads voor renderen" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OptieNaam" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Render-effect" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Niet opgeslagen bestand {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Achtergrond" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Afbeelding openen" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Kan bestand niet openen: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Plakken" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Roteer 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Afbeelding horizontaal spiegelen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Afbeelding verticaal spiegelen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Roteer 90° rechtsom" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Roteer 90° linksom" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Laag horizontaal spiegelen" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Laag verticaal spiegelen" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pixels beëindigen" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta website" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Een bug rapporteren" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Deze applicatie vertalen" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Alles opslaan" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Alles sluiten" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nieuw..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nieuwe schermafdruk" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Openen..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Recent openen" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Sluiten" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Opslaan" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Opslaan als..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Afdrukken" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Afsluiten" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nieuw" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Openen" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Nieuwe laag toevoegen" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Laag verwijderen" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Laag dupliceren" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Laag omlaag samenvoegen" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Uit bestand importeren..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Horizontaal spiegelen" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Verticaal spiegelen" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Draai / Zoom Laag..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Laag omhoog verplaatsen" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Laag omlaag verplaatsen" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Laageigenschappen..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importeer uit bestand" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Tot selectie bijsnijden" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatisch Uitsnijden" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Wijzig Afbeeldingsformaat..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Wijzig Canvasformaat..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Plat maken" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Inzoomen" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Uitzoomen" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Passend" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Naar selectie zoomen" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Standaardgrootte" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Werkbalk" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Pixelraster" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linialen" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixels" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inches" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeters" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Volledig scherm" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Eenheden" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Venster" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Ongedaan maken" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Opnieuw" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Knippen" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiëren" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Als nieuwe afbeelding plakken" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Selectie verwijderen" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Selectie vullen" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Selectie omkeren" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Alles selecteren" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Alles deselecteren" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Naar standaard terugzetten" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Aantal kleuren instellen" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Wis selectie" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deselecteren" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Paletbestand openen" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletbestanden (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Kan Paletbestand niet openen:{0}.\n" "Verifieer dat dit een valide GIMP of Paint.NET palet is." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Paletbestand opslaan" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palet (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP palet (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Laag" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiëren" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Gereedschap" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Sneltoets" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Standaard menging" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Overschrijven" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialias aan" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialias uit" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} afbeelding ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Algemeen" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Hoeveelheid" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Hoek" #: CloudsEffect dialog msgid "Antialias" msgstr "Antialias" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mengmodus" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Helderheid" #: PixelateData dialog msgid "Brush Size" msgstr "Penceelgrootte" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Celgrootte" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centrumbepaling" #: OilPaintingEffect dialog msgid "Centered" msgstr "Gecentreerd" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grofheid" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Kleurbereik" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Kleurverzadiging" #: GlowEffect dialog msgid "Coloring" msgstr "Inkleuren" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Bereik" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Afstand" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Randgedrag" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenten" #: TileEffect dialog msgid "Ink Outline" msgstr "Inktomlijning" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensiteit" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Belichting" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Verschuiven" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Potloodpuntgrootte" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentiel" #: RadialBlurEffect dialog msgid "Power" msgstr "Kracht" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kwaliteit" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotatie" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Verzadigingspercentage" #: CloudsEffect dialog msgid "Scale" msgstr "Schaal" #: SoftenPortraitData dialog msgid "Seed" msgstr "Genereren" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Zachtheid" #: OutlineEffect dialog msgid "Strength" msgstr "Sterkte" #: TileEffect dialog msgid "Thickness" msgstr "Dikte" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tegelgrootte" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Warmte" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Gebruik lage kwaliteit voor previews en kleine afbeelding. Gebruik hoge " "kwaliteit voor uiteindelijke versies en grote afbeeldingen." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Tip: Voor het beste resultaat, gebruik eerst selectiegereedschap om elk oog " "te selecteren." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Afbeeldingsbewerker" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Afbeeldingen maken en bewerken" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Afbeeldingen" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Kan niet alleen-lezen bestand opslaan." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "De afbeelding die wordt geplakt is groter dan de canvas grootte. Wat zou U " "graag willen doen?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Verruim canvas" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Verander het canvasformaat niet" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Draai / Zoom Laag" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/nn.po0000664000175000017500000013131111747026475015232 0ustar00cameroncameron00000000000000# Norwegian Nynorsk translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Norwegian Nynorsk \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatisk nivå" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Snu om fargane" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivå" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Bruntone (sepia)" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterisering" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Svart/kvit" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurver" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Lysstyrke / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Fargetone / Metning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Nivå tilpassing" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogram inndata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Inndata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Utdata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogram utdata" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatisk" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Tilbakestill" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Raud" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grøn" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blå" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Kopla" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Overføringskart" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Lysstyrke" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Raud " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blå " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tips: Høgreklikk for å fjerna kontrolpunkt." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduser støy" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Støy" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Utydeligjer" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Skyer" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Rendre" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Endre fokus" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Fjern raude auge" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Bilete" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glød" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Oppdag kantar" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylize" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "frosta glas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oljemåleri" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Kunstnarleg" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Gjer skarpare" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikseller" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Blyantskisse" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "Etikett" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Velg primærfarge" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Velg sekundærfarge" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Velg palettfarge" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rektangelutval" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikk og dra for å teikne rektangelutvalet. Hold skift inne for å avgrense " "firkanten." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonestempel" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+ventre museklikk for å setje utgangspunkt, venstre museklikk for " "å teikne." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magisk utvalsstav" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikk for å velje utval av samme farge" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rektangel" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikk og dra for å teikne eit rektangel (høyreklikk for sekundærfarge). Hold " "shift-knappen inne for å tvinge fram eit kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytt utvalet" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Dra i utvalet for å flytta utvalets omriss." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Fargeovergang" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klikk og dra for å teikne gradient frå primærfarge til sekundærfarge. " "Høyreklikk for å teikne motsett." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineær gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineær gradient med refleksjon" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Diamantformet gradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radial gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kjegleformet gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Flodmodus" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Samanhengande" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globalt" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleranse" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Målarpensel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Venstreklikk for å teikne med primærfarge, høyreklikk for å teikne med " "sekundærfarge." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Type" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Blyant" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Venstreklikk for å teikne fritt med ein piksels breie linjer i primærfargen, " "høyreklikk for sekundærfargen." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipseutval" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klikk og dra for å gjere et elliptisk utval. Hold shift-knappen for å tvinge " "frem ein sirkel." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Strek" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Viskelær" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Panorér" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikk og dra for å navigere i bildet." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Fargeveljar" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Venstreklikk for å setje primærfarge. Høyreklikk for å setje sekundærfarge." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Etter utval" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ikkje byt verktøy" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Byt til det forje verktøyet" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Byt til blyant-verktøyet" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Avrunda firkant" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radius" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Reduser rektangelets hjørneradius" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Øk rektangelets hjørneradius" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Flytt valgte piksler" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Dra i utvalget for å flytte valgt innhold." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Endre farge" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Venstreklikk for å erstatte sekundærfargen med primærfargen." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Malingsbøtte" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Venstreklikk for å fylle eit område med primærfargen, høyreklikk for å fylle " "med sekundærfargen." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikk og dra for å teikne ein ellipse (høyreklikk for sekundærfarger). Hold " "shift-knappen for å tvinge fram ein sirkel." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Venstreklikk for å plassere markøren, så skriv ønska tekst. Tekstfargen er " "primærfargen." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Skrifttype" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Feit" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Understreka" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Venstrejuster" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Senterjuster" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Høyrejuster" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Tekststil" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Vanleg" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal og uthevet" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Martin Myrvold https://launchpad.net/~myrvold-martin\n" " Mozzyb https://launchpad.net/~mozzyb" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/oc.po0000664000175000017500000013326411747026475015231 0ustar00cameroncameron00000000000000# Occitan (post 1500) translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2011-10-08 20:43+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Nivèl automatic" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inversar las colors" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivèls" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sèpia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizar" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Blanc e negre" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Corbas" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Luminositat / contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Tencha / Saturacion" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajustament dels nivèls" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Istograma d'entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Sortida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Istograma de sortida" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatic" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Reïnicializar" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Roge" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verd" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blau" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Per afinitats" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Carta de transferiment" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RVB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminositat" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Roge " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blau " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduire lo bruch" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Bruch" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmentacion" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Fosc" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nívols" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Exportar en vidèo" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Defocalizar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Supression dels uèlhs roges" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fòto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractala de Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Lusor" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detectar los contorns" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizar" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Fosc radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsion" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintrura d'òli" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractala de Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Adocir lo retrach" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relèu" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Fosc gaussian" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Accentuacion de la netetat" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Apondon de bruch" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Reflexion mosaïca" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelizar" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Fosc de movement" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Transformacion Simetrica" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Fosc de rèire plan" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorn" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Tòrcer" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiqueta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiqueta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Bruch aleatòri" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "regenerar" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Causir la color primària" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Causir la color segondària" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Causir la paleta de colors" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Seleccion rectangulara" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Tampon Duplicador" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Seleccion Bagueta Magica" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rectangle" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Desplaçar la seleccion" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Degradat" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Degradat Linear" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Degradat circular" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Degradat conic" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mòde d'emplenatge" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contigua" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globala" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerança" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pincèl" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipe" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Gredon" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Seleccion elliptica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linha" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Goma" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Panoramic" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Pipeta a colors" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Aprèp la seleccion" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Cambiar pas d'aisina" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Cambiar per l'aisina precedenta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Cambiar per l'aisina Gredon" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rectangle arredondit" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Rai" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolorizacion" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Pòt de pintrura" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tèxte" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Poliça de caractèr" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Gras" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Italica" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Soslinhat" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Alinhament a esquèrra" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Alinhat al centre" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Alinhat a drecha" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estil del tèxte" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal amb contorns" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Largor del contorn" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Demesir la talha del contorn" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Augmentar la talha del contorn" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Largor del pincèl" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Demesir la talha del pincèl" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Augmentar la talha del pincèl" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Estil d'emplenatge" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Forma exteriora" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Forma d'emplenatge" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cèrcles" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grasilha" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Carrats" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Redimensionar" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma Liura" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "A prepaus" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fichièr" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edicion" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Afichatge" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imatge" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Calques" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Ajustaments" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efièche_s" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fenèstra" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Ajuda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Aisinas" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documents" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Calques" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Istoric" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Amagar" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Incrustar" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Amagament automatic" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancorable" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotanta" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Prene una captura d'ecran" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" "S'enregistratz pas, totas las modificacions seràn perdudas per totjorn." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Tampar sens enregistrar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacitat del calc" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renomenar lo calc" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Amagar lo calc" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Afichar lo calc" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Proprietats del calc" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Dobrir un fichièr imatge" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fichièrs d'imatges" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Totes los fichièrs" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Enregistrar lo fichièr imatge" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Error" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualitat JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualitat : " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Títol" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Camin" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributors a aquesta version" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Contributors precedents" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cédric VALMARY (Tot en òc) https://launchpad.net/~cvalmary" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traduch per :" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Basat sul trabalh de Paint.NET :" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "A prepaus de Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacion de version" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licéncia" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Mes a disposicion jos licéncia MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Dreches d'autor" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "pels contributors de Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nom :" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visible" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacitat :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "En percentatge :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Largor :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixèls" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Nautor :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Conservar las proporcions" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ancòra :" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Redimensionar l'imatge" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Imatge nèlov" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Talha de l'imatge novèl " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nom de l'opcion" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efièch de rendut" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imatge pas enregistrat {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Rèire plan" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Dobrir un imatge" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossible de dobrir lo fichièr : {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Pegar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotacion de 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Site Web de Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduire aqueste logicial" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Enregistrar tot" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Tampar tot" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novèl..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Dobrir..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Dobèrt(s) recentament" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Tampar" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Enregistrar" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Enregistrar jos..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Estampar" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Quitar" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novèl" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Dobrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Apondre un calc novèl" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Suprimir lo calc" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicar lo calc" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Proprietats del calc" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Aplatir" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zoom avant" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zoom arrièr" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Talha ideala" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zoomar cap a la seleccion" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Talha normala" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra d'aisinas" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grasilha dels pixèls" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Règlas" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixèls" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Poces" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimètres" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Ecran complet" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unitats règla" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fenèstra" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Anullar" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Restablir" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Copar" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiar" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inversar la seleccion" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Seleccionar tot" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deseleccionar tot" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Restablir las valors per defaut" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Definir lo nombre de colors" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deseleccionar" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Fichièrs Paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Calc" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copiar" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Aisina" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Espotir" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "Imatge {0} ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Quantitat" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Angle de presa de vista" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Luminositat" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Excentracion" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrat" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Gama de colors" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "Coloracion" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distància" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Compòrtament del bòrd" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragments" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Fondut d'intensitat" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Esclairatge" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Decalatge" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "Exponenciala" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualitat" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotacion" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "Metre a l'escala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Grana" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "Fòrça" #: TileEffect dialog msgid "Thickness" msgstr "Espessor" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Talha dels tèules" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Calor" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/pl.po0000664000175000017500000014663211747026475015246 0ustar00cameroncameron00000000000000# Polish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-24 09:50+0000\n" "Last-Translator: Ireneusz Chorosz \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Automatyczne ustawienie poziomu" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Odwróć kolory" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Poziomy" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Redukcja kolorów" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Czarno-biały" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krzywe" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Jasność / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Barwa / Nasycenie" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Regulacja poziomów" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Poziomy wejściowe" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Źródło" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Wyjście" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Poziomy wyjściowe" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatycznie" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Przywróć ustawienia domyślne" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Czerwony" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zielony" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Niebieski" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Powiązane" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa przeniesienia" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Jaskrawość" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Czerwony " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Niebieski " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Wskazówka: Kliknij prawym przyciskiem by usunąć punkty kontrolne." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Redukcja szumu" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Szum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Rozmycia" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Chmury" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderowanie" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Rozmycie powierzchowe" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Usuwanie efektu czerwonych oczu" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografia" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrota" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Poświata" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Wykrywanie krawędzi" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stylizacja" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Rozmycie promieniowe" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Zamarznięte szkło" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Zniekształcanie" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Obraz olejny" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artystyczne" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktal Julii" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Wygładź portret" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Płaskorzeźba" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Szkic tuszem" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Płaskorzeźba" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Rozmycie Gaussa" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Wyostrzanie" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Dodaj szum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Refleks" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselizacja" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Rozmycie ruchem" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Odwrócenie biegunów" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Wypukłość" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Rozmycie przez powiększenie" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Szkic ołówkiem" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontur" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Wir" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etykieta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etykieta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Losowy szum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Nowe ziarno" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Wybierz kolor podstawowy" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Wybierz kolor dodatkowy" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Wybierz kolor z palety" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Zaznaczenie prostokątne" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Kliknij i przeciągaj, aby narysować zaznaczenie prostokątne. Przytrzymaj " "klawisz Shift aby zawsze rysowane było zaznaczenie kwadratowe." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Stempel Klonujący" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Trzymając Ctrl kliknij lewym przyciskiem myszy w celu wybrania punktu " "źródłowego, następnie kliknij lewym przyciskiem, aby malować." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Magiczna różdżka" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Kliknij, aby zaznaczyć obszar o podobnym kolorze." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Prostokąt" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Kliknij i przeciągaj, aby narysować prostokąt (jeśli chcesz użyć koloru " "dodatkowego, użyj prawego przycisku myszy). Przytrzymaj klawisz Shift aby " "zawsze rysowany był kwadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Przesuń Zaznaczenie" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Przeciągnij zaznaczenie, aby przenieść kontur zaznaczenia." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Kliknij i przeciągnij, aby wypełnić gradientem od koloru podstawowego do " "dodatkowego. Użyj prawego przycisku myszy, aby zastosować odwrotną kolejność " "kolorów." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradient liniowy" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradient liniowy lustrzany" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradient liniowy diamentowy" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradient promienisty" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradient stożkowy" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Tryb zalewania" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Przylegające" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globalne" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancja" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pędzel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Kliknij lewym przyciskiem myszy, aby rysować kolorem podstawowym, a prawym - " "aby rysować kolorem dodatkowym." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Rodzaj" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Ołówek" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Kliknij lewym przyciskiem, aby rysować swobodnie kolorem podstawowym linie o " "szerokości 1 piksela. Kliknij prawym przyciskiem, aby rysować kolorem " "dodatkowym." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Zaznaczenie eliptyczne" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Kliknij i przeciągnij, aby narysować zaznaczenie eliptyczne. Przytrzymaj " "klawisz Shift, aby zawsze rysowane było zaznaczenie o kształcie koła." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linia" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Lewy przycisk myszy aby rysować podstawowym kolorem, prawy przycisk myszy " "aby rysować drugorzędnym kolorem. Przytrzymaj klawisz Shift, aby użyć " "przyciągania do kątów." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gumka" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Kliknij lewym przyciskiem myszy aby usunąć do przezroczystości, prawym aby " "usunąć do koloru podrzędnego. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Nawigacja" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Naciśnij i przytrzymaj lewy przycisk myszy aby przesuwać obraz." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Wybór koloru" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Kliknij lewym przyciskiem myszy, aby ustawić kolor podstawowy. Kliknij " "prawym przyciskiem, aby ustawić kolor dodatkowy." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Po wybraniu" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "NIe zmieniaj narzędzia" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Zmień na poprzednie narzędzie" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Zmień na Ołówek" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaokrąglony prostokąt" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Promień" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Zmniejsz promień zaokrąglenia prostokąta" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Zwiększ promień zaokrąglenia prostokąta" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Przenieś zaznaczone piksele" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Przeciągnij zaznaczenie, aby przenieść jego zawartość." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Przemaluj" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Kliknij lewym przyciskiem myszy, aby zamienić kolor podstawowy na kolor " "dodatkowy." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Wypełnienie" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Kliknij lewym przyciskiem myszy, aby wypełnić obszar kolorem podstawowym, a " "prawym - aby wypełnić go kolorem dodatkowym." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Kliknij i przeciągnij, aby narysować elipsę (kliknij prawym przyciskiem " "myszy, by użyć koloru dodatkowego). Przytrzymaj klawisz Shift, aby zawsze " "rysowany był okrąg." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Kliknij lewym przyciskiem by ustawić kursor, a następnie wpisz tekst. " "Kolorem tekstu będzie kolor wybrany jako podstawowy." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Czcionka" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Pogrubienie" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursywa" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podkreślenie" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Wyrównanie do lewej" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Wyrównanie do środka" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Wyrównanie do prawej" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Styl napisu" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normalny" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normalny i kontur" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Wypełnij tło" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Szerokość konturu" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Zmniejsz wielkość konturu" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Zwiększ rozmiar konturu" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Szerokość pędzla" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Zmniejsz rozmiar pędzla" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Zwiększ rozmiar pędzla" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Styl wypełniania" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Obrysowywanie kształtu" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Wypełnianie kształtu" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Obrysowywanie i wypełnianie kształtu" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Okręgi" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Siatka" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kwadraty" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Rozprysk" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Powiększenie" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Kliknij lewym przyciskiem myszy, aby powiększyć. Kliknij prawym przyciskiem " "myszy, aby pomniejszyć. Kliknij i przeciągnij, aby powiększyć zaznaczony " "obszar." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Zaznaczanie lassem" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknij i przeciągnij, aby zaznaczyć obszar." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Dowolny kształt" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O programie..." #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Plik" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Edycja" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Widok" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Obraz" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "Wa_rstwy" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Do_stosowanie kolorów" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "E_fekty" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Okno" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Okna narzędziowe" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pomoc" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Narzędzia" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenty" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Warstwy" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historia" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ukryj" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Zadokuj" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatyczne ukrywanie" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokowalne" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Ruchoma" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Zrzut ekranu" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Opóźnienie wykonania zrzutu ekranu (w sekundach):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Czy chcesz zapisać zmiany w obrazie \"{0}\" przed jego zamknięciem?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Jeśli nie zapiszesz, wszystkie zmiany zostaną utracone" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zamknij bez zapisywania" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Zmień rozmiar palety" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nowy rozmiar palety:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Wklej do nowej warstwy" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Nieprzezroczystość warstwy" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Zmień nazwę warstwy" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ukryj warstwę" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Pokaż warstwę" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Właściwości warstwy" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Otwórz plik obrazu" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Pliki graficzne" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Wszystkie pliki" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Zapisz Obraz" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nie obsługuje zapisu w tym formacie." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Błąd" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Plik \"{0}\" już istnieje. Czy chcesz go zastąpić?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Już istnieje taki plik w \"{1}\". Zastąpienie go spowoduje nadpisanie jego " "zawartości przez nowy plik." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Jakość JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Jakość: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tytuł" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Wersja" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ścieżka" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Zaangażowani w to wydanie" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Wcześniej zaangażowani" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Artur Dudek https://launchpad.net/~erupl\n" " Bartosz Kaszubowski https://launchpad.net/~simek\n" " Dweight https://launchpad.net/~devilsenator\n" " Ireneusz Chorosz https://launchpad.net/~ichorosz\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Krzysztof Banaś https://launchpad.net/~banan\n" " Maciej Leśniewski https://launchpad.net/~leshniak\n" " Mariusz Jeznach https://launchpad.net/~mariusz-jeznach\n" " Michał Richter https://launchpad.net/~matmatyk\n" " Michał Ćwikliński https://launchpad.net/~mcwiklinski\n" " Miłosz Kosobucki https://launchpad.net/~mikom\n" " RapierTG https://launchpad.net/~rapier\n" " Sebastian Mazur https://launchpad.net/~sebastianmaz\n" " Spox5 https://launchpad.net/~spox5\n" " doiges https://launchpad.net/~bohopicasso\n" " eeree https://launchpad.net/~eeree\n" " jacek https://launchpad.net/~yacka71\n" " pp/bs https://launchpad.net/~pawprok\n" " skrzat https://launchpad.net/~radek-floraland\n" " Łukasz Semler https://launchpad.net/~lukasz-semler" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tłumaczenie:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Bazuje na projekcie Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Wykorzystane ikony:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacje o wersji" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licencja" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Wydane na licencji MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Prawa autorskie" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "przez współtwórców Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nazwa:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Widoczna" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Krycie:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Zmień rozmiar płótna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Procentowo:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Rozmiar bezwzględny" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Szerokość:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pikseli" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Wysokość:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Zachowanie proporcji obrazu" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Kotwica:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Zmień rozmiar..." #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nowy obraz" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nowy rozmiar obrazu " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "ilość wątków używanych podczas renderingu" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Opcjonalna nazwa" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efekt renderowania" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Niezapisany obraz {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Tło" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otwórz obraz" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nie udało się otworzyć pliku: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Wklej" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Obróć o 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Odbij obraz w pionie" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Odbij obraz w poziomie" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Obróć o 90° w prawo" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Obróć o 90° w lewo" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Odbij warstwę w pionie" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Odbij warstwę w poziomie" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Zakończ pikselowanie" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Strona internetowa Pinty" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Zgłoś błąd" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Przetłumacz tę aplikację" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Zapisz wszystkie" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zamknij wszystkie" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nowy..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nowy zrzut ekranu..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otwórz..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Ostatnio otwierane" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zamknij" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Zapisz" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Zapisz jako...." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Drukuj" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Wyjście" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nowy" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otwórz" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Dodaj nową warstwę" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Usuń warstwę" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Powiel warstwę" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Scal warstwę w dół" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importuj z pliku..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Odbij w poziomie" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Odbij w pionie" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Obróć / Przybliż warstwę..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Przesuń warstwę w górę" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Przesuń warstwę w dół" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Właściwości warstwy..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importuj z pliku" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Przytnij do zaznaczenia" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatyczne przycięcie" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Zmień rozmiar obrazu..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Zmień rozmiar płótna..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Spłaszcz" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Powiększ" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Pomniejsz" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Dopasuj" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Powiększ do zaznaczenia" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normalny rozmiar" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Pasek narzędzi" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Siatka pikseli" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linijki" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Piksele" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Cale" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centymetry" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Pełen ekran" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jednostki linijki" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Okno" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Cofnij" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ponów" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Wytnij" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiuj" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Wklej do nowego obrazu" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Usuń zaznaczone" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Wypełnij zaznaczenie" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Odwróć zaznaczenie" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Zaznacz wszystko" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Odznacz wszystko" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Przywróć domyślne" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Ustaw liczbę kolorów" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Wyczyść zaznaczenie" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Usuń zaznaczenie" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otwórz plik palety" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Pliki palety (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nie udało się otworzyć pliku palety: {0}.\n" "Upewnij się, że próbujesz otworzyć właściwy plik palety programu GIMP lub " "Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Zapisz plik palety" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta programu Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta programu GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "warstwa" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiuj" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Narzędzie" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Klawisz skrótu" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normalne mieszanie" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Zastąp" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Wygładzanie włączone" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Wygładzanie wyłączone" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obraz ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Główne" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Ilość" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kąt" #: CloudsEffect dialog msgid "Antialias" msgstr "Wygładzanie" #: GlowEffect dialog msgid "Blend Mode" msgstr "Tryb mieszania" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Jasność" #: PixelateData dialog msgid "Brush Size" msgstr "Rozmiar pędzla" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Rozmiar komórki" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Przesunięcie środka" #: OilPaintingEffect dialog msgid "Centered" msgstr "Wyśrodkowany" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Ziarnistość" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Zakres kolorów" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Nasycenie kolorów" #: GlowEffect dialog msgid "Coloring" msgstr "Kolorowanie" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokrycie" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Odległość" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Wykrywanie krawędzi" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Współczynnik" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenty" #: TileEffect dialog msgid "Ink Outline" msgstr "Wypełnij zarys" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensywność" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Oświetlenie" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Przesunięcie" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Rozmiar końcówki pędzla" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentyl" #: RadialBlurEffect dialog msgid "Power" msgstr "Siła:" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Jakość" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Obrót" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Procent nasycenia" #: CloudsEffect dialog msgid "Scale" msgstr "Skaluj" #: SoftenPortraitData dialog msgid "Seed" msgstr "Ziarno" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Wygładzanie" #: OutlineEffect dialog msgid "Strength" msgstr "Poziom" #: TileEffect dialog msgid "Thickness" msgstr "Grubość" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Rozmiar płytki" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Ciepło" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Używaj niskiej jakości do podglądu, małych obrazów i małych kątów. Używaj " "wysokiej jakości do obrazów w wersji ostatecznej, do dużych obrazów i dużych " "kątów." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Wskazówka: Aby uzyskać optymalny efekt, zaznacz oko korzystając z narzędzi " "zaznaczania." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Edytor obrazów" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Łatwo twórz i edytuj grafikę" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Edytor Obrazów Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Obrazy" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nie można zapisać pliku. Plik tylko do odczytu." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Obraz który próbujesz wkleić jest większy niż rozmiar płótna. Co chcesz z " "tym zrobić?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Powiększ płótno" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Nie zmieniaj rozmiaru płótna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Obróć / Przybliż warstwę" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Warstwa widoczna" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Warstwa ukryta" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/pt.po0000664000175000017500000014426511747026475015256 0ustar00cameroncameron00000000000000# European Portuguese translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: European Portuguese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" "X-Poedit-Country: PORTUGAL\n" "X-Poedit-Language: Portuguese\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Níveis automáticos" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverter cores" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Níveis" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sépia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Aplicar gradação às diversas regiões" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Preto e branco" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curvas" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brilho / Contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Matiz / Saturação" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajuste de níveis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histograma do original" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Original" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Destino" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histograma do destino" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automático" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Repor" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Vermelho" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Azul" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Vinculado" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa de transferência" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosidade" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Vermelho " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Azul " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Dica: Botão direito do rato para remover pontos de controle." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduzir ruído" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Ruído" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmento" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Manchas" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nuvens" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Processar" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desfocar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Remoção de olhos vermelhos" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Brilho" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Deteção de contornos" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizar" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Mancha radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Vidro fosco" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorcer" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintura a óleo" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artístico" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Retrato suavizado" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relevo" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Rascunho a tinta" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediana" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Gravar em relevo" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Mancha Gaussiana" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Precisão" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Adicionar ruído" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Reflexo ladrilhado" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "\"Pixelate\"" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Mancha de movimento" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversão polar" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Convexa" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Ampliar mancha" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Desenho a lápis" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorno" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Torção" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "rótulo1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "rótulo" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Ruído aleatório" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Semear novamente" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Escolha a cor primária" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Escolha a cor secundária" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Escolha a cor da paleta" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Seleção retangular" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Clique e arraste para desenhar uma seleção retangular. Prima Shift para " "restringir a um quadrado." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Clone Stamp" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+botão esquerdo do rato para definir origem, clique esquerdo para pintar." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Seleção batuta mágica" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Clique para seleccionar uma região de cor similar." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Retângulo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Clique e arraste para desenhar um retângulo (botão direito do rato para cor " "secundária). Prima Shift para restringir a um quadrado." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover seleção" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Arraste a seleção para mover os seus contornos." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradiente" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Clique e arraste para aplicar o gradiente principal para o secundário. Botão " "direito para inverter." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradiente linear" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradiente linear refletido" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradiente linear diamante" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradiente radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradiente cónico" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Modo de inundação" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Adjacente" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerância" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pincel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Botão esquerdo para desenhar com a cor principal, botão direito para " "desenhar com a cor secundária." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Lápis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Botão esquerdo do rato para desenho livre, linhas de um pixel de largura com " "cor primária, botão direito do rato para usar a cor secundária." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Seleção elíptica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Clique e arraste para desenhar a elipse. Prima Shitf para restringir a um " "círculo." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linha" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Botão esquerdo do rato para usar a cor primária e o direito para a cor " "secundária. Prima Shift para ajustar aos ângulos." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Borracha" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Botão esquerdo do rato para criar transparência principal, botão direito " "para transparência secundária. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "\"Pan\"" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Clique e arraste para navegar na imagem." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Seletor de cores" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Botão esquerdo do rato para definir a cor principal. Botão direito para " "definir a cor secundária." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Após selecionar" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Não trocar ferramenta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Trocar para a ferramenta anterior" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Trocar para ferramenta Lápis" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Retângulo arredondado" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Raio" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Diminuir o raio do canto do retângulo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Aumentar o raio do canto do retângulo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Mover pixeis selecionados" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Arraste a seleção para mover o conteúdo." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Colorir novamente" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Botão esquerdo do rato para substituir a cor secundária pela principal." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Balde de tinta" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Botão esquerdo do rato para preencher com a cor principal, botão direito " "para preencher com a cor secundária." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Clique e arraste para desenhar uma elipse (botão direito para cor " "secundária). Prima Shift para restringir a um círculo." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Texto" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Botão esquerdo do rato para posicionar o cursor e escrever o texto desejado. " "A cor utilizada será a principal." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Tipo de letra" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Negrito" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Itálico" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Sublinhado" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Alinhar à esquerda" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Alinhar ao centro" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Alinhar à direita" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estilo do texto" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal e contorno" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Preencher fundo" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Largura do contorno" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Diminuir contorno" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Aumentar contorno" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Largura do pincel" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Diminuir tamanho do pincel" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Aumentar tamanho do pincel" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Estilo de preenchimento" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Formato do contorno" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Formato do preenchimento" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Formato do contorno e preenchimento" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Círculos" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grelha" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Quadrados" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Salpico" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Ampliação" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Botão esquerdo do rato para ampliar. Botão direito para reduzir. Para " "ampliar a seleção, clique e arraste." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Seleção Lasso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Clique e arraste para desenhar o contorno da área selecionada." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma livre" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Sobre" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Ficheiro" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editar" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Ver" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imagem" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Camadas" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Ajustes" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efeito_s" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Janela" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Janelas de ferramentas" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "A_juda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Ferramentas" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documentos" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Camadas" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Histórico" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ocultar" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Acoplar" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoplável" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flutuante" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Tirar uma captura de ecrã" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes da captura do ecrã (segundos):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gravar alterações feitas em \"{0}\" antes de fechar?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Se não gravar o trabalho, todas as alterações serão perdidas." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Fechar sem gravar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ajustar paleta" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Novo tamanho da paleta:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Colar numa nova camada" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacidade da camada" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Mudar nome da camada" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ocultar camada" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Mostrar camada" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propriedades da camada" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Abrir imagem" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Imagens" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Todos os ficheiros" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Gravar imagem" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "O Pinta não suporta a gravação de imagens neste formato." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Erro" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Já existe um ficheiro com o nome \"{0}\". Substituir?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "O ficheiro já existe em \"{1}\". A sua substituição irá sobrepor o conteúdo." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualidade JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualidade: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versão" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Caminho" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contributos nesta versão" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Contributos anteriores" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Afer https://launchpad.net/~agosfernandes\n" " Almufadado https://launchpad.net/~almufadado\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Duarte Cunha Leão https://launchpad.net/~duarte-leao\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Rafael Neri https://launchpad.net/~rafepel\n" " Ricardo Conde https://launchpad.net/~turotulco\n" " Ricardo Perry https://launchpad.net/~pirolocito\n" " Sérgio Marques https://launchpad.net/~sergio+marques\n" " Tiago https://launchpad.net/~reis-tiago\n" " dcruz https://launchpad.net/~devel-david" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traduzido por:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Inspirado no Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Utiliza alguns ícones de:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Sobre o Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informações da versão" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licença" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Disponibilizado nos termos da licença MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Direitos de autor" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "pelos contribuidores Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nome:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visível" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacidade:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ajustar tela" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Em percentagem:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Em tamanho absoluto:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Largura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixeis" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Manter proporção" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Âncora:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ajustar imagem" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova imagem" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Tamanho da nova imagem " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "número de processos a utilizar na renderização" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "NomeDaOpção" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efeito de renderização" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagem não gravada {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Plano de fundo" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Abrir imagem" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Incapaz de abrir o ficheiro: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Colar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rodar 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Inverter imagem na horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Inverter imagem na vertical" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rodar 90° à direita" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rodar 90° à esquerda" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Inverter camada na horizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Inverter camada na vertical" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar pixeis" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Página web do Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Reportar um erro" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduzir esta aplicação" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Gravar tudo" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Fechar tudo" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novo..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova captura de ecrã..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Abrir..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Abrir recente" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Fechar" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Gravar" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Gravar como..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimir" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Sair" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Abrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Adicionar nova camada" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Eliminar camada" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicar camada" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Unir a camada inferior" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importar do ficheiro..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Inverter horizontalmente" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Inverter verticalmente" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rodar/Ampliar camada..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Mover camada para cima" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Mover camada para baixo" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Propriedades da camada..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importar do ficheiro" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Recortar selecção" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Recorte automático" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Ajustar imagem..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Ajustar tela..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Alisar" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Ampliar" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Reduzir" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Melhor ajuste" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Ajustar à seleção" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra de ferramentas" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grelha de pixeis" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Réguas" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixeis" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Polegadas" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centímetros" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Ecrã completo" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unidades da régua" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Janela" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Desfazer" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Refazer" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Cortar" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiar" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Colar numa nova imagem" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Eliminar seleção" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Preencher seleção" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverter seleção" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Selecionar tudo" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Desmarcar tudo" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Repor padrões" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Definir número de cores" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Apagar seleção" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Desmarcar" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Abrir ficheiro de paleta" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Ficheiros paleta (*.txt,*.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Não é possível abrir o ficheiro: {0}.\n" "Por favor, verifique que está a tentar abrir um ficheiro de paleta do GIMP " "ou Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Gravar ficheiro de paleta" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Camada" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copiar" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Ferramenta" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Tecla de atalho" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Mistura normal" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Substituir" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Ativar suavização de letras" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Desativar suavização de letras" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagem ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Geral" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Quantidade" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ângulo" #: CloudsEffect dialog msgid "Antialias" msgstr "Suavizar" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modo de mistura" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brilho" #: PixelateData dialog msgid "Brush Size" msgstr "Tamanho do pincel" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Tamanho da célula" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centrar rebordo" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrado" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Rugosidade" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Intervalo de cor" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturação da cor" #: GlowEffect dialog msgid "Coloring" msgstr "A colorir" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "Cobertura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distância" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportamento nos limites" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Fator" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmentos" #: TileEffect dialog msgid "Ink Outline" msgstr "Contorno de tinta" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensidade" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Iluminação" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Deslocamento" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Tamanho da ponta do lápis" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Energia" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualidade" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotação" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Percentagem de saturação" #: CloudsEffect dialog msgid "Scale" msgstr "Escala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Semente" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Suavidade" #: OutlineEffect dialog msgid "Strength" msgstr "Intensidade" #: TileEffect dialog msgid "Thickness" msgstr "Espessura" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tamanho do ladrilho" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Calor" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Utilize uma qualidade baixa para antevisões, imagens e ângulos pequenos. " "Utilize uma qualidade alta para trabalho final, imagens e ângulos grandes." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Dica: para melhores resultados, utilize as ferramentas de selecção para " "escolher cada olho." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor de imagens" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Crie e edite imagens com facilidade" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor de imagens Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imagens" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Não pode gravar um ficheiro de leitura." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "A imagem que vai ser colada é maior que a tela. O que pretende fazer?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expandir tela" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Não alterar o tamanho da tela" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rodar/Ampliar camada" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/pt_BR.po0000664000175000017500000015002711747026475015632 0ustar00cameroncameron00000000000000# Brazilian Portuguese translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 08:53+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Níveis Automáticos" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverter cores" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Níveis" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sépia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizar" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Preto e Branco" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curvas" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Brilho / Contraste" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Matiz / Saturação" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajuste de Níveis" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histograma de Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Entrada" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Saída" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histograma de Saída" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automático" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Restaurar" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Vermelho" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Azul" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Conectado" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa de transferência" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminosidade" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Vermelho " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Azul " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Dica: Dê um clique direito para remover os pontos de controle." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reduzir ruído" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Ruído" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmento" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Borrar" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nuvens" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Renderizar" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Desfocar" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Remoção de Olhos Vermelhos" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Fluorescência" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detecção de borda" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Estilizar" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Borrão radial" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Vidro Fosco" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorcer" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pintura a Óleo" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artístico" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Retrato Suavizado" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relevo" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Desenho a tinta" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediano" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Realçar" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Borrão gaussiano" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Nitidez" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Adicionar Ruído" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Reflexo de azulejo" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pincelada" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Borrar por Movimento" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversão Polar" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Inchar" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Borrão por ampliação" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Desenho a Lápis" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Contorno" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Torcer" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiqueta1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiqueta" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Ruído Aleatório" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Replantar" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Escolha a cor primária" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Escolha a cor secundária" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Escolha o padrão de cores" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Seleção Retangular" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Clique e arraste para desenhar uma seleção retangular. Pressione shift para " "restringir a um quadrado." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Ferramenta Carimbo" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+Botão Direito do mouse para ajustar a origem, botão direito para pintar." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Varinha Mágica de Seleção" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Clique para selecionar a região de cor similar." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Retângulo" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Clique e arraste para desenhar um retângulo (clique com o botão direito para " "cor secundária). Pressione shift para restringir a um quadrado." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover Seleção" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Arraste a seleção para mover suas bordas." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradiente" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Clique e arraste para desenhar o gradiente da cor primária para a " "secundária. Clique com botão direito para reverter." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradiente Linear" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradiente Linear Refletido" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradiente Linear Diamante" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradiente Radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradiente Cônico" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mode transbordo" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Contíguo" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerância" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pincel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Clique com o botão esquerdo para desenhar com a cor primária, clique com o " "botão direito para desenhar com a cor secundária." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tipo" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Lápis" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Clique esquerdo para desenho livre, um ponto de largura com linhas de cores " "primárias, clique direito para usar a cor secundária." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Seleção Elíptica" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Clique e arraste para desenhar a seleção elíptica. Pressione shift para " "restringir o círculo." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linha" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Clique esquerdo para desenhar com cor primária, com o botão direito para cor " "secundária. Segure a tecla Shift para tirar os ângulos." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Borracha" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Botão esquerdo do mouse para apagar a transparência, botão direito para " "apagar a cor secundária. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Posicionar" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Clique e arraste para navegar na imagem" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Seletor de Cores" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Botão esquerdo para definir cor primária. Botão direito para definir cor " "secundária." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Pós-seleção" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Não trocar de ferramenta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Trocar para ferramenta anterior" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Trocar para ferramenta Lápis" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Retângulo Arredondado" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Raio" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Diminuir o raio do canto do retângulo" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Aumentar o raio do canto do retângulo" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Mover pontos selecionados" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Arraste a seleção para mover o conteúdo" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolorir" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" "Clique com o botão esquerdo para substituir a cor secundária pela cor " "primária." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Balde de Tinta" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Clique com o botão esquerdo para preencher uma região com a cor primária, " "clique com o botão direito para preencher com a cor secundária." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipse" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Clique e arraste para desenhar uma elipse (clique com botão direito para cor " "secundária). Pressione shift para restringir a um círculo." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Texto" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Clique com o botão esquerdo para posicionar o cursor, então digite o texto " "desejado. A cor do texto é a cor primária." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Fonte" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Negrito" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Itálico" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Sublinhado" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Alinhar à esquerda" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Alinhar Centralizado" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Alinhar à direita" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Estilo do Texto" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal e Contorno" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Preencher Fundo" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Largura do contorno" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Diminuir o tamanho do contorno" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Aumentar o tamanho do contorno" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Largura do pincel" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Diminuir tamanho do pincel" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Aumentar tamanho do pincel" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Preencha o Estilo" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Formato do contorno" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Formato do preenchimento" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Formato do contorno e preenchimento" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Círculos" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grade" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Quadrados" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Espátula" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Ampliar" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Botão esquerdo para aproximar. Botão direito para afastar. Clique e arraste " "para aproximar a seleção" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Seletor Laço" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Clique e arraste para desenhar a linha da área a ser selecionada" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Forma livre" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Sobre" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Arquivo" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editar" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Exibir" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imagem" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Camadas" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Ajustes" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efeito_s" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Janela" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Janela de Ferramentas" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Ajuda" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Ferramentas" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documentos" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Camadas" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Histórico" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ocultar" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Acoplar" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Encaixável" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flutuante" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Capturar imagem da tela" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes de capturar a imagem da tela (segundos):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Salvar mudanças na imagem \"{0}\" antes de fechar?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" "Se você não salvar, todas as alterações serão perdidas permanentemente." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Fechar sem salvar" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ajustar tamanho do pálete" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Novo tamanho do pálete" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Colar em Nova Camada" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacidade da Camada" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Renomear Camada" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ocultar Camada" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Exibir Camada" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Propriedades da Camada" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Abrir Arquivo de Imagem" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Arquivos de Imagem" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Todos os arquivos" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Salvar Arquivo de Imagem" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta não tem suporte para salvar a imagem neste formato." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Erro" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Um arquivo chamado \"{0}\" já existe. Você deseja substitui-lo?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "O arquivo já existe em \"{1}\". Subsituindo-o sobrescreverá seu conteúdo." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualidade do JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Qualidade: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versão" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Caminho" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Colaboradores para esta versão" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Outros Colaboradores" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " André Gondim https://launchpad.net/~andregondim\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Celso H. L. S. Junior https://launchpad.net/~celsojunior\n" " Christian Marques https://launchpad.net/~csmchristian\n" " Eliton Miranda da Silva https://launchpad.net/~tudoembrulhado\n" " Felipe Amaral https://launchpad.net/~felpi-flick\n" " Fitoschido https://launchpad.net/~fitoschido\n" " Igor Belchior https://launchpad.net/~igorbelchior86\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " José Humberto Alvarenga Melo https://launchpad.net/~josehumberto-melo\n" " Julio Tomaschitz https://launchpad.net/~blaziushw\n" " Julius Miranda https://launchpad.net/~juliusmiranda\n" " Luiz Fernando Palacios https://launchpad.net/~sapo-mano\n" " Luiz da Costa Batista Silva https://launchpad.net/~luiz-rsk\n" " Rafael Neri https://launchpad.net/~rafepel\n" " Vitor da Silva Gonçalves https://launchpad.net/~vitorsgoncalves\n" " victor.westmann https://launchpad.net/~victor.westmann" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Traduzido por:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Inspirado no trabalho do Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Usando alguns ícones de:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Sobre o Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informações da versão" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licença" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Publicado sob a licença MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Direitos autorais" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "pelos colaboradores Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nome:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Visível" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacidade:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensionar Tela" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Por percentagem" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Por tamanho absoluto" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Largura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixels" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Altura:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Manter a taxa de proporção" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Âncora:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Mudar tamanho da imagem" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova Imagem" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Tamanho da nova imagem " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "Número de processos usados para renderizar" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nome da Opção" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efeito de Renderização" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagem não salva {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Plano de fundo" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Abrir Imagem" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Não foi possível abrir o arquivo: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Colar" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Girar 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Virar Imagem Horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Virar Imagem Verticalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Girar 90° Sentido Horário" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Girar 90° Sentido Anti-horário" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Virar Camada Horizontalmente" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Virar Camada Verticalmente" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar Pontos" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Website" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Relatar um erro" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduzir este Aplicativo" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Salvar tudo" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Fechar tudo" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novo..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nova captura de tela" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Abrir..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Abrir Recente" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Fechar" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Salvar" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Salvar Como..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Imprimir" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Fechar" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Abrir" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Adicionar Nova Camada" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Remover Camada" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicar Camada" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Unir a camada inferior" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importar do arquivo..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Inverter na Horizontal" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Inverter na Vertical" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotacionar / Camada de Ampliação..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Mover camada para cima" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Mover camada para baixo" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Propiedades da Camada..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importar de Um Arquivo" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Recortar para Seleção" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Auto corte" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Redimensionar Imagem..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Redimensionar Tela..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Achatar" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Aproximar" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Afastar" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Melhor Ajuste" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Ampliar para Seleção" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Tamanho Normal" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Barra de ferramentas" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grade de Pontos" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Réguas" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pontos" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Polegadas" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centímetros" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Tela cheia" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unidades de medida" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Janela" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Desfazer" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Repetir" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Recortar" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiar" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Colar em Nova Imagem" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Apagar Seleção" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Preencher Seleção" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inverter Seleção" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Selecionar tudo" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Desmarcar Todos" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Retornar ao padrão" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Definir número de cores" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Apagar Seleção" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Desmarcar" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Abrir arquivo de paleta" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Arquivo de paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Não foi possível abrir arquivo de paleta: {0}.\n" "Por favor, verifique se você está tentando abrir um GIMP válido ou paleta " "Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Salvar arquivo de paleta" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Camada" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copiar" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Ferramenta" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Tecla de atalho" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Misturando Norma" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Sobrescrever" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Suavização ligada" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Suavização desligada" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagem ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Geral" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Quantidade" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ângulo" #: CloudsEffect dialog msgid "Antialias" msgstr "Suavizar" #: GlowEffect dialog msgid "Blend Mode" msgstr "Modo Misturar" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Brilho" #: PixelateData dialog msgid "Brush Size" msgstr "Tamanho do Pincel" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Tamanho da Célula" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centralizar Deslocamento" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centralizado" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Aspereza" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Intervalo de Cor" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturação da Cor" #: GlowEffect dialog msgid "Coloring" msgstr "Colorindo" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contraste" #: FragmentEffect dialog msgid "Coverage" msgstr "Cobertura" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distância" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Comportamento nas Bordas" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Fator" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmentos" #: TileEffect dialog msgid "Ink Outline" msgstr "Contorno de Tinta" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensidade" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Iluminação" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Deslocamento" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Tamanho da ponta do lápis" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Ligar/Desligar" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Qualidade" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotação" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Porcentagem de Saturação" #: CloudsEffect dialog msgid "Scale" msgstr "Escala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Raiz" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Suavidade" #: OutlineEffect dialog msgid "Strength" msgstr "Concentração" #: TileEffect dialog msgid "Thickness" msgstr "Espessura" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Tamanho Mosaico" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Vivacidade" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Use baixa qualidade para pré-visualizações, imagens pequenas, e ângulos " "pequenos. Use alta qualidade para finalizações, imagens grandes, e ângulos " "grandes." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Dica: Para um melhor resultado, primeiro use as ferramentas de seleção para " "selecionar cada olho." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor de Imagens" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Crie e edite imagens facilmente" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor de imagem Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Imagens" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Não é possível salvar, apenas ler o arquivo." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "A imagem a ser colada é maior do que o tamanho da tela. O que você gostaria " "de fazer?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Expandir tela" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Não altere o tamanho da tela" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotacionar / Camada de Ampliação" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Gerenciador de suplementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Ativar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Desativar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Nenhuma seleção" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Atualização disponível" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versão instalada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instalação cancelada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Alguns dos suplementos requeridos não foram encontrados" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "A instalação falhou" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Instalados" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Atualizações" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "Galeria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Todos os repositórios" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Gerenciar repositórios..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} atualização disponível" msgstr[1] "{0} atualizações disponíveis" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalar pacote de suplemento" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pacotes de suplementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nenhum suplemento encontrado" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Suplemento" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Outros" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Desinstalar" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Os seguintes pacotes serão desinstalados:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Os seguintes pacotes serão instalados:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (no diretório do usuário)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Os seguintes pacotes precisam ser desinstalados:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Não foi possível resolver as seguintes dependências:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Tem certeza que quer cancelar a instalação?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "A instalação falhou." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "A instalação foi completada com ressalvas." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "A desinstalação falhou." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "A desinstalação foi completada com ressalvas." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "Ocorreu uma exceção: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Mais informações" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instalar..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Atualizar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Desinstalar..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "São necessárias extensões adicionais para realizar esta operação." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Os suplementos a seguir serão instalados:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Atualizar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Atualizar tudo" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repositório:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instalar de um arquivo..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "Detalhes" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instalar" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gerenciamento de repositórios de suplementos" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Adicionar novo repositório" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Selecione a localização do repositório que quer registrar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ro.po0000664000175000017500000014412111747026475015242 0ustar00cameroncameron00000000000000# Romanian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Ciprian \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 " "== 0) && (n != 0))) ? 2: 1));\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Nivel automat" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inversează culorile" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Niveluri" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizează" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Negru și alb" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Curbe" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Luminozitate / contrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nuanță / Saturație" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Ajustează niveluri" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogramă de intrare" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Intrare" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Rezultat" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogramă de ieșire" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automat" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Resetează" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Roșu" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Verde" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Albastru" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Legat" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Hartă de transfer" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminozitate" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Roșu " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Albastru " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Truc: Click dreapta ca să elimini puncte de control" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reducere zgomot" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Zgomot" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Neclarități" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Nori" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Randează" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Defocusează" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Suprimare ochi roșii" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografie" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "luminiscență" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detectează muchii" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilizează" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Neclaritate radială" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Sticlă înghețată" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Distorsionează" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Pictură în ulei" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Artistic" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fractal Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Portret înmuiat" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Schiță în cerneală" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Mediană" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Reliefare" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Neclaritate gaussiană" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Accentuează claritatea" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Adaugă zgomot" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Reflecție mozaic" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelează" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Efect de estompare în mișcare" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Inversie polară" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Umflare" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Efect de estompare de focalizare" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Schiță în creion" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Evidențiază contururi" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Răsucește" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etichetă1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etichetă" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Zgomot aleator" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reorganizează" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Alege culoarea principală" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Alege culoarea secundară" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Alege culoarea din paletă" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Selecție dreptunghiulară" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Clic apoi trage pentru selecție dreptunghiulară, apasă shift pentru " "constrângere la selecție pătrată." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Duplică marca" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Control-clic pentru alegerea originii, clic stânga pentru desenare." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Selectează cu bagheta magică" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Clic pentru a selecta regiunea de culoare similară." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Dreptunghi" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Clic apoi trage pentru a desena un dreptunghi (clic dreapta pentru culoarea " "secundară). Ține apăsat shift pentru pătrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mută selecția" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Trage selecţia pentru a muta conturul selecţiei" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Clic pentru a desena un gradient de la culoarea principală la cea secundară. " "Clic dreapta pentru inversare." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Gradient liniar" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Gradient liniar oglindit" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Gradient liniar în diamant" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Gradient radial" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Gradient conic" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Mod de umplere" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Continuu" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Toleranţă" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pensulă de pictură" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Clic pentru a desena cu culoarea principală, clic dreapta pentru a desena cu " "culoarea secundară." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tip" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Creion" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Clic pentru a desena linii libere cu grosimea de un pixel, clic dreapta " "pentru a folosi culoarea secundară." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Selecție eliptică" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Clic, apoi trage pentru a desena o selecție eliptică. Ține apăsat shift " "pentru a constrânge selecâia la cerc." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linie" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gumă de șters" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Clic stânga pentru a șterge până la transparent , clic dreapta pentru a " "șterge până la culoarea secundară. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Mișcă" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Clic şi trage pentru a naviga în imagine." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Selector de culoare" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Clic stânga pentru stabilirea culorii principale. Clic dreapta pentru " "stabilirea culorii secundare." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "După selecţie" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Nu schimba unealta" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Schimbă la unealta precedentă" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Schimbă pe creion" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Dreptunghi rotunjit" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Rază" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Micșorează raza colțului dreptunghiului" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Măreşte raza colţului dreptunghiului" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Mută pixelii selectați" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Trage de selecție pentru a muta conținutul selectat." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Recolorează" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Clic pentru a inlocui culoarea secundară cu cea principală." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Găleată cu vopsea" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Clic pentru a umple o regiune folosind culoarea principală, clic dreapta " "pentru culoarea secundară." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsă" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Clic și trage pentru a desena o elipsă (clic dreapta pentru culoarea " "secundară). Ține apăsat shift pentru a constrânge la cerc." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Clic stânga pentru a plasa cursorul, apoi tastează textul dorit. Culoarea " "textului este culoarea primară." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Aldin" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Cursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Subliniat" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Aliniază la stânga" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Aliniază centrat" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Aliniază la dreapta" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stilul textului" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normală" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal și contur" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Lățimea conturului" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Micșorează lățimea conturului" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Mărește lățimea conturului" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Grosime pensulă" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Micşorează mărimea pensulei" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Mărește dimensiunea pensulei" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stil de umplere" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Evidiențiere margini formă" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Umple formă" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Umple și conturează formă" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cercuri" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Grilă" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Pătrate" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Stropi" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Mărire/Micşorare" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Clic stânga pentru mărire. Clic dreapta pentru micșorare. Clic și trage " "pentru a mări o zonă selectată." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Selecție lasou" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Clic și trage pentru a desena o margine zonei selectate." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Formă liberă" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Despre aplicație" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fișier" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Editare" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Vizualizare" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Imagine" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Straturi" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "Ajustări" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Efe_cte" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fereastră" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Ferestre cu unelte" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Ajutor" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Unelte" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paletă" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Documente" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Straturi" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Istoric" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ascunde" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Strat de text" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Ascunde automat" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Andocabil" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutitor" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Capturează ecran" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Întârziere înaintea capturii de ecran (secunde):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Doriți să salvați modificările imaginii \"{0}\" înainte de ieșire?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Dacă nu salvați, toate modificările vor fi pierdute definitiv." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Închide fără a salva" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Redimensionează paleta" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Noua mărime a paletei:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Lipește într-un strat nou" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Opacitatea stratului" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Redenumește stratul" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ascunde Strat" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Arată Strat" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Proprietățile stratului" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Deschide fişier imagine" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fișiere imagine" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Toate fişierele" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Salvează fișierul imagine" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nu susţine salvarea imaginii in acest tip de fişier" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Eroare" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Există deja un fișier cu numele \"{0}\". Doriți să-l înlocuiți?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Acest fișier deja în \"{1}\". Dacă îl înlocuiți, conținutul lui va fi " "rescris." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calitate JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Calitate: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titlu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Versiune" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cale" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Contribuitori la această lansare" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Contribuitori precedenți" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alex https://launchpad.net/~icidrop\n" " Calota Romeo https://launchpad.net/~kicsyromy\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Ciprian https://launchpad.net/~c1pr1ancip\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Nicolae Crefelean https://launchpad.net/~kneekoo\n" " Radu Zoran https://launchpad.net/~radu-r2dev\n" " ciplogic https://launchpad.net/~ciprian-mustiata\n" " monocoder https://launchpad.net/~monocoder\n" " ovidiuteaca https://launchpad.net/~ovidiuteaca" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Tradus de:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Bazat pe munca la programul Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Sunt utilizate unele pictograme din:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Despre Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informaţii despre versiune" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenţă" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Publicat sub licenţă MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Copyright" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "de contribuitorii Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Nume:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Vizibil" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacitate:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Redimensionează pânza" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "După procentaj:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "După dimensiune absolută:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Lungime:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixeli" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Înălțime:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Menține raportul de aspect" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ancoră:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Redimensionează imaginea" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Imagine nouă" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Dimensiunea noii imagini " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "numărul firelor de execuţie utilizate pentru randare" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Nume opțiune" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efect de randare" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagine nesalvată {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Fundal" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Deschide imagine" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nu am putut deschide fişierul: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Lipeşte" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Roteşte cu 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Oglindeşte imaginea orizontal" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Oglindeşte imaginea vertical" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Roteşte 90° în sensul acelor de ceas" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Roteşte 90° contra acelor de ceas" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Oglindeşte orizontal stratul" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Oglindeşte vertical stratul" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Termină pixeli" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Site-ul Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Reportează o eroare" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Tradu această aplicaţie" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Salvează toate" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Închide tot" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nou..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Captură nouă de ecran..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Deschide..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Deschise recent" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Închide" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Salvează" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Salvează Ca..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Tipărește" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Ieșire" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nou" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Deschide" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Adaugă strat nou" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Şterge strat" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Clonează stratul" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Combină cu stratul inferior" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importă din fișier..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Întoarce pe orizontală" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Răstoarnă pe verticală" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Mută stratul mai sus" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Mută stratul mai jos" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Proprietăţile stratului..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importă din fişier" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Taie cat e selecţia" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Redimensionare imagine..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Aplatizează" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Apropie" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Depărtează" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Cea mai bună încadrare" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Panoramează la selecție" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Mărime normală" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Bară de unelte" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Grilă pixeli" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Rigle" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixeli" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Țoli" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Afişare pe tot ecranul" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Unităţi de măsură riglă" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fereastră" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Anulează" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Refă" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Taie" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Copiază" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Lipește într-o imagine nouă" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Șterge selecția" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Umple selecția" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Inversează selecția" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Selectează tot" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Deselectează tot" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Restaurează la valorile implicite" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Alege numărul de culori" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Șterge selecția" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Deselectează" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Deschide fișier paletă" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Fișiere paletă (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Eroare la deschiderea fișierului paletă: {0}.\n" "Vă rugăm să vă asigurați că încercați să deschideți o paletă validă GIMP sau " "Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Salvează fișier paletă" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paletă Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Paletă GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Strat" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "copie" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Unealtă" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Combinaţie de taste" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Contopire normală" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Suprascrie" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Finisare margini activată" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Finisare margini deactivată" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagine ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "General" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Cantitate" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Unghi" #: CloudsEffect dialog msgid "Antialias" msgstr "Anticrenelare" #: GlowEffect dialog msgid "Blend Mode" msgstr "Mod contopire" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Luminozitate" #: PixelateData dialog msgid "Brush Size" msgstr "Mărime pensulă" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Mărime celulă" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centrare decalaj" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrat" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Interval culoare" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Saturație culoare" #: GlowEffect dialog msgid "Coloring" msgstr "Colorare" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Contrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Acoperire" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Distanță" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Factor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmente" #: TileEffect dialog msgid "Ink Outline" msgstr "Cerneală contur" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitate" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Iluminare" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Decalaj" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Mărime vârf pensulă" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "Putere" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Calitate" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotație" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Procentaj saturație" #: CloudsEffect dialog msgid "Scale" msgstr "Scalează" #: SoftenPortraitData dialog msgid "Seed" msgstr "Sămânță" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Finețe" #: OutlineEffect dialog msgid "Strength" msgstr "Putere" #: TileEffect dialog msgid "Thickness" msgstr "Grosime" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Mărime mozaic" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Căldură" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Folosiți calitatea redusă pentru previzualizări, imagini și unghiuri mici. " "Folosiți calitatea înaltă pentru calitatea finală, imagini și unghiuri mari." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Sfat: Pentru rezultate optime folosiți mai întâi uneltele de selecție pentru " "încadrarea fiecărui ochi." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor de imagini" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Creare şi editare uşoară de imagini" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Editor Imagini Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/ru.po0000664000175000017500000016252311747026475015256 0ustar00cameroncameron00000000000000# Pinta Translatable Strings # Copyright (C) 2010 Pinta Contributors # This file is distributed under the same license as the Pinta package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Автокоррекция" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Обратить цвета" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Уровни" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Сепия" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Постеризовать" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Чёрно-белое" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Кривые" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Яркость / Контраст" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Тон / Насыщенность" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Коррекция уровней" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Гистограмма входа" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Вход" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Выход" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Гистограмма выхода" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Автоматически" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Сброс" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Красный" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Зелёный" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Синий" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Связь" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Канал" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Освещённость" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Красный " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Синий " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" "Подсказка: Нажмите правую кнопку мыши, чтобы убрать контрольные отметки" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Уменьшить шум" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Шум" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Фрагмент" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Размытие" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Облака" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Рисование" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Расфокусировка" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Удаление красных глаз" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Снимок" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Фрактал Мандельброта" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Сияние" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Определение краёв" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Стилизация" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Радиальное размытие" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Матовое стекло" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Искажения" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Масляные краски" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Художественные" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Фрактал Жюлиа" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Смягчить портрет" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Рельеф" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Набросок чернилами" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Медиана" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Барельеф" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Размывание Гаусса" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Добавить резкость" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Добавить шум" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Мозаичное отражение" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Пикселизация" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Размытие в движении" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Полярная инверсия" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Выпуклость" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Увеличительное размытие" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Карандашный набросок" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Контур" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Завихрение" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "метка1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "метка" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Случайный шум" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Перемешать" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Выберите цвет переднего плана" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Выберите фоновый цвет" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Выберите цвет цалитры" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Прямоугольное выделение" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Нажмите и перетаскивайте, чтобы нарисовать прямоугольное выделение. Нажмите " "Shift, чтобы получить квадрат." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Штамп клонирования" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+щелчок левой кнопкой мыши для установки основы, левой кнопкой мыши " "начать рисовать" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Волшебная палочка" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Щёлкните, чтобы выделить регион с похожим цветом." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Прямоугольник" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Щёлкните и перетащите мышь, чтобы нарисовать прямоугольник (правая кнопка " "рисует вторичным цветом). Зажмите Shift, чтобы получить квадрат." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Перемещение выделения" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Перетащите выделение мышью, чтобы переместить контур выделения." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Градиент" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Щёлкните и перетаскивайте, чтобы нарисовать градиент от первичного цвета к " "вторичному. Щёлкните правой кнопкой для инверсии." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Линейный градиент" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Линейный отражённый градиент" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Линейный ромбовидный градиент" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Радиальный градиент" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Конический градиент" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Избыточный режим" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Смежная область" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Глобальная" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Чувствительность" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Кисть" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Нажмите левую кнопку, чтобы рисовать первичным цветом, правую - вторичным." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Тип" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Карандаш" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Щёлкните левой кнопкой для рисования произвольных линий в один пиксель " "толщиной первичным цветом, правой кнопкой для использования вторичного цвета." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Эллиптическое выделение" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Щёлкните и перетаскивайте, чтобы нарисовать эллиптическое выделение. Держите " "Shift, чтобы выделить круг." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Линия" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Нажмите левую кнопку мыши, чтобы рисовать первичным цветом, правую – чтобы " "рисовать вторичным цветом. Зажмите Shift, чтобы ограничить угол." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Ластик" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Левая кнопка мыши стирает до прозрачного фона, правая кнопка стирает цветом " "фона. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Перемещение" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Щёлкните и перетаскивайте для навигации по изображению." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Получение цвета" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Щёлкните левой кнопкой для задания первичного цвета. Щёлкните правой кнопкой " "для задания вторичного цвета." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "После выбора" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Не переключайте инструмент" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Переключиться на предыдущий инструмент" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Переключиться на инструмент \"Карандаш\"" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Скруглённый прямоугольник" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Радиус" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Уменьшить радиус углов прямоугольника" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Увеличить радиус углов прямоугольника" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Переместить выбранные пиксели" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Перетащите мышью выделение, чтобы переместить выделенный фрагмент." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Перекрашивание" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Щёлкните левой кнопкой, чтобы заменить вторичный цвет первичным." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Плоская заливка" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Щёлкните левой кнопкой, чтобы залить регион первичным цветом, правой - " "вторичным." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Эллипс" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Щёлкните и перетаскивайте мышь, чтобы нарисовать эллипс (правая кнопка " "рисует вторичным цветом). Нажмите Shift, чтобы получить круг." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Текст" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Щёлкните левой кнопкой, чтобы поместить курсор, затем наберите нужный текст. " "Текст рисуется первичным цветом." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Шрифт" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Полужирный" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Курсивный" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Подчёркнутый" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "По левому краю" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "По центру" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "По правому краю" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Стиль текста" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Обычный" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Нормальный и контурный" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Заполнить фон" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Ширина контура" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Уменьшить размер контура" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Увеличить размер контура" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Толщина кисти" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Уменьшить размер кисти" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Увеличить размер кисти" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Стиль заполнения" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Обвести фигуру" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Залить фигуру" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Залить и обвести фигуру" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Круги" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Сетка" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Квадраты" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Брызги" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Масштабирование" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Щёлкните левой кнопкой для приближения. Щёлкните правой кнопкой для " "отдаления. Нажмите и перетаскивайте мышь, чтобы масштабировать по выделению." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Выделение лассо" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" "Нажмите и перетаскивайте мышь, чтобы выделить контур области выделения." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Произвольная фигура" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "О программе" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Файл" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Правка" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Вид" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Изображение" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "С_лои" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Цвета" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Эффекты" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Окно" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Инструментальные окна" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Справка" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Инструменты" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Палитра" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Документы" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Слои" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "История" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Скрыть" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Прикрепить" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Автоматически скрывать" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прикрепляемое" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плавающее" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Сделать снимок экрана" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Задержка перед созданием снимка экрана (в секундах)" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Сохранить изменения изображения \"{0}\" перед закрытием?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Если вы не сохраните изменения, они будут потеряны безвозвратно." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Закрыть без сохранения" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Изменить размер палитры" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Новый размер палитры" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Вставить как новый слой" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Непрозрачность слоя" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Переименовать слой" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Скрыть слой" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Показать слой" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Свойства слоя" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Открыть файл изображения" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Файлы изображений" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Все файлы" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Сохранить файл изображения" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не поддерживает сохранение изображений в этом формате." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Ошибка" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл с именем \"{0}\" существует. Хотите ли вы его заменить?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Файл уже существует в \"{1}\". Его замена перзапишет его содержимое." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Качество JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Качество: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Название" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Версия" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Путь" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Работавшие над этой версией" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Работавшие над предыдущими версиями" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexey Ivanov https://launchpad.net/~alexey-ivanov\n" " ArtKun https://launchpad.net/~artkun\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Chubakur https://launchpad.net/~chubakur\n" " Dmitry Pashkevich https://launchpad.net/~dipish\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Maia Kozheva https://launchpad.net/~sikon\n" " Mairon https://launchpad.net/~an9227\n" " Nightingale https://launchpad.net/~solosn\n" " Nikita Putko https://launchpad.net/~ktototam98\n" " Nkolay Parukhin https://launchpad.net/~parukhin\n" " PocketSam https://launchpad.net/~dr-chaoss\n" " Polivoda Roman https://launchpad.net/~rom-polivoda\n" " Stepan Kislan https://launchpad.net/~stepa87\n" " Strahov Nikita https://launchpad.net/~newerty\n" " Vyacheslav Sharmanov https://launchpad.net/~vsharmanov\n" " Yogar https://launchpad.net/~me-yogar\n" " jeder https://launchpad.net/~i-jeder" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Переведено:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Основано на Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Использованы некоторые значки из:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "О программе Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Сведения о версии" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Лицензия" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Распространяется под лицензией MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Авторское право" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "разработчики Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Имя:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Видимый" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Непрозрачность:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Изменить размер холста" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "В процентах:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Абсолютный размер:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Ширина:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "пикселей" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Высота:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Соблюдать соотношение сторон" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Якорь:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Масштабировать изображение" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Новое изображение" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Размер нового изображения " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "число потоков для использования при отрисовке" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Название опции" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Эффект отрисовки" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Несохранённое изображение {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Фон" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Открыть изображение" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Не удалось открыть файл: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Вставить" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Повернуть на 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Отразить изображение по горизонтали" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Отразить изображение по вертикали" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Повернуть на 90° по часовой стрелке" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Повернуть на 90° против часовой стрелки" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Отразить слой по горизонтали" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Отразить слой по вертикали" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Завершить пиксели" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Веб-сайт Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Сообщить о неполадке" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Перевести это приложение" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Сохранить как" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Закрыть все" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Создать..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Новый снимок экрана" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Открыть..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Открыть последние" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Закрыть" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Сохранить" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Сохранить как..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Печать" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Выход" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Создать" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Открыть" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Добавить слой" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Удалить слой" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Дублировать слой" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Объединить с нижележащим" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Импорт из файла..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Отразить по горизонтали" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Отразить по вертикали" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Повернуть / Увеличить слой..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Переместить слой вверх" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Переместить слой вниз" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Параметры слоя..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Импорт из файла" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Откадрировать в выделение" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Автокадрирование" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Изменить размер изображения" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Изменить размер холста..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Объединить слои" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Крупнее" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Мельче" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Уместить в окне" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "По размеру выделения" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Исходный размер" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Стандартная панель" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Пиксельная сетка" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Линейки" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Пиксели" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Дюймы" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Сантиметры" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Полный экран" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Единицы измерения" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Окно" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Отменить" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Вернуть" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Вырезать" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Копировать" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Вставить как новое изображение" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Удалить выделение" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Заполнить выделение" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Обратить выделение" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Выделить всё" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Снять выбор" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Сбросить установки" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Установить количество цветов" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Удалить выделение" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Сбросить выделение" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Открыть файл палитры" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Файлы палитры (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Не открывается файл палитры: {0}.\n" "Пожалуйста, проверьте, что вы открываете правильный файл палитры GIMP или " "Paint.NET" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Сохранить файл палитры" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Палитра Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Палитра GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Слой" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "- копия" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Инструмент" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Горячая клавиша" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Обычное смешивание" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Переписать" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Включить сглаживание" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Выключить сглаживание" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "Изображение {0} ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Общие" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Количество" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Угол" #: CloudsEffect dialog msgid "Antialias" msgstr "Сглаживание" #: GlowEffect dialog msgid "Blend Mode" msgstr "Режим смешения" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Яркость" #: PixelateData dialog msgid "Brush Size" msgstr "Размер кисти" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Размер ячейки" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Смещение центра" #: OilPaintingEffect dialog msgid "Centered" msgstr "Центрирование" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Грубость" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Диапазон цветов" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Насыщенность цвета" #: GlowEffect dialog msgid "Coloring" msgstr "Окрашивание" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Контраст" #: FragmentEffect dialog msgid "Coverage" msgstr "Покрытие" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Расстояние" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Поведение на границе" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Фактор" #: InkSketchEffect dialog msgid "Fragments" msgstr "Фрагменты" #: TileEffect dialog msgid "Ink Outline" msgstr "Чернильный контур" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Интенсивность" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Освещение" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Смещение" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Размер конца карандаша" #: CloudsEffect dialog msgid "Percentile" msgstr "Процент" #: RadialBlurEffect dialog msgid "Power" msgstr "Мощность" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Качество" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Поворот" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Процент насыщения" #: CloudsEffect dialog msgid "Scale" msgstr "Масштаб" #: SoftenPortraitData dialog msgid "Seed" msgstr "Инициализатор" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Мягкость" #: OutlineEffect dialog msgid "Strength" msgstr "Сила" #: TileEffect dialog msgid "Thickness" msgstr "Толщина" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Размер плитки" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Теплота" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Используйте низкое качество для предварительного просмотра, малых " "изображений и малых углов. Используйте высокое качество для финального " "варианта, больших изображений и больших углов." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Подсказка: для наилучшего результата сначала выделите каждый глаз " "инструментами выделения." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Графический редактор" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Простое создание и редактирование изображений" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Графический редактор Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Изображения" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Невозможно сохранить файл, доступный только для чтения." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Размер вставленного изображения больше размера холста. Что нужно сделать?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Увеличить размер холста" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Не изменять размер холста" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Повернуть / Увеличить слой" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/sk.po0000664000175000017500000014333311747026475015243 0ustar00cameroncameron00000000000000# Slovak translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-03-27 07:51+0000\n" "Last-Translator: DAG Software \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto úrovne" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertovať farby" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Úrovne" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sépia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizovať" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Čiernobiele" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krivky" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Jas / kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Odtieň / sýtosť" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Doladenie úrovní" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Histogram vstupu" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Vstup" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Výstup" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Histogram výstupu" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automaticky" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Pôvodné" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Červená" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zelená" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Modrá" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Spojené" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Prenosová mapa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Svietivosť" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Červená " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Modrá " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tip: Kliknutím pravým tlačidlom odstránite kontrolné body." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Redukovať šum" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragmentovať" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Rozostrenia" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Oblaky" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Vykresliť" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Rozostrenie" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Odstránenie červených očí" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotka" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Fraktál Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Žiara" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Detekcia hrán" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Štylizovanie" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiálne rozostrenie" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Zamrznuté sklo" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Deformovať" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Olejomaľba" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umelecké" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktál Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Zjemniť portrét" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reliéf" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Atramentový náčrt" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Medián" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Reliéf" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gausovské rozostrenie" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Doostriť" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Pridať šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Dlaždicový odraz" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelizovať" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Rozostrenie pohybom" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Prevrátenie pólov" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Vyduť" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Rozostrenie priblížením" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Skica ceruzkou" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Zvýrazniť obrysy" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Skrútiť" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "popis1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "popis" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Náhodný šum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Nový počiatok" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Vybrať primárnu farbu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Vybrať sekundárnu farbu" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Vybrať farbu palety" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Obdĺžnikový výber" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Kliknutím a ťahaním nakreslíte obdĺžnikový výber. Držaním Shift obmedzíte na " "štvorec." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonovacie razítko" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+ľavý klik na výber zdroja, ľavý klik na kreslenie." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Čarovná palička" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Kliknutím vyberiete oblasť s podobnou farbou." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Obdĺžnik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Kliknutím a ťahaním nakreslíte obdĺžnik (kliknutím pravým tlačidlom " "sekundárnou farbou). Držaním Shift obmedzíte na štvorec." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Presunúť výber" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Potiahnutím výberu posuniete vybranú oblasť." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Farebný prechod" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Kliknutím a ťahaním nakreslíte prechod od primárnej k sekundárnej farbe. " "Kliknutie pravým tlačidlom kreslí obrátene." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Lineárny prechod" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Lineárny odrazený prechod" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Lineárny diamantový prechod" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiálny prechod" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kónický prechod" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Záplavový režim" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Spojité" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Všeobecné" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancia" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Štetec" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Kliknutím ľavým tlačidlom kreslíte primárnou farbou, kliknutím pravým " "tlačidlom kreslíte sekundárnou farbou." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Typ" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Ceruzka" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Kliknutím ľavým tlačidlom voľné kreslenie čiarou hrubou jeden pixel a " "primárnou farby, kliknutím pravým tlačidlom použiť sekundárnu farbu." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Eliptický výber" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Kliknutím a ťahaním nakreslíte elliptický výber. Držaním Shift obmedzíte na " "kružnicu." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Čiara" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Guma" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "Ľavým klikom mažete do priehľadna, pravým do sekundárnej farby. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Posúvanie" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Kliknutím a ťahaním sa pohybujete v obrázku" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Výber farby" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Kliknutím ľavým tlačidlom vyberiete primárnu farbu. Kliknutím pravým " "tlačidlom vyberiete sekundárnu farbu." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Po vybraní" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Neprepínať nástroj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Prepnúť na predošlý nástroj" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Prepnúť na ceruzku" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaoblený obdĺžnik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Polomer" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Zmenšiť polomer zaoblenia rohov" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Zväčšiť polomer zaoblenia rohov" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Presunúť vybrané pixle" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Pretiahnutím výberu posuniete vybraný obsah." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Prefarbiť" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Kliknutím ľavým tlačidlom nahradiť sekundárnu farbu primárnou." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vedro s farbou" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Kliknutím ľavým tlačidlom vyplniť oblasť primárnou farbou, Kliknutím pravým " "tlačidlom vyplniť oblasť sekundárnou farbou." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Kliknutím a ťahaním nakreslíte elipsu (kliknutím pravým tlačidlom " "sekundárnou farbou). Držaním Shift obmedzíte na kružnicu." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Kliknutím ľavým tlačidlom umiestnite kurzor, potom napíšte želaný text. " "Farba písma je primárna farba." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Písmo" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Hrubé" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kurzíva" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podčiarknuté" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Zarovnať doľava" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Zarovnať na stred" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Zarovnať doprava" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Štýl textu" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normálny" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normálny a obrys" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Vyplniť pozadie" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Šírka obrysu" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Zmenšiť veľosť obrysu" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Zväčšiť veľosť obrysu" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Šírka štetca" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Zmenšiť veľkosť štetca" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Zväčšiť veľkosť štetca" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Štýl výpne" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Obrys útvaru" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Vyplnený útvar" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Útvar s výplňou a obrysom" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Kruhy" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Mriežka" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Štvorce" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Špliechanec" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Priblíženie" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Kliknutím ľavým tlačidlom priblížiť. Kliknutím pravým tlačidlom oddialiť. " "Kliknutím a ťahaním priblížiť výber." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Laso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknutím a ťahaním obtiahnuť vybratú blasť." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Voľný tvar" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O aplikácii" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Súbor" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Úpravy" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Zobraziť" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Obrázok" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Vrstvy" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Prispôsobiť" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efekty" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Okno" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Okná nástrojov" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pomocník" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Nástroje" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenty" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Vrstvy" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "História" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Skryť" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dokovať" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automaticky skrývať" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokovateľné" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plávajúce" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Zachytiť snímku obrazovky" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Oneskorenie pred zachytením snímky obrazovky (v sekundách):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Uložiť zmeny do obrázka „{0}“ pred zatvorením?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ak neuložíte, všetky zmeny budú navždy stratené." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zatvoriť bez uloženia" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Zmeniť veľkosť palety" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nová veľkosť palety:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Vložiť do novej vrstvy" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Priehľadnosť vrstvy" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Premenovať vrstvu" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Skryť vrstvu" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Zobraziť vrstvu" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Vlastnosti vrstvy" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Otvoriť súbor obrázka" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Súbory obrázkov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Všetky súbory" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Uložiť súbor obrázka" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nepodporuje ukladanie obrázkov v tomto type súborov." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Chyba" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Súbor \"{0}\" už existuje. Chcete ho nahradiť?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Súbor už existuje v \"{1}\". Nahradenie prepíše jeho obsah." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalita: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Názov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Verzia" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cesta" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Prispeli do tohto vydania" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Predchádzajúci prispievatelia" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " DAG Software https://launchpad.net/~dagsoftware\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " helix84 https://launchpad.net/~helix84\n" " xXx https://launchpad.net/~michalhusar-it" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Preložili:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Založené na diele Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Použité niektoré ikony z:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O aplikácii Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Info o verzii" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licencia" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Vydané pod licenciou MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autorské práva" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "prispievatelia projektu Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Názov:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Viditeľnosť" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Priehľadnosť:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Zmeniť veľkosť plátna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Percentuálne:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Podľa abs. veľkosti" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Šírka:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "pixelov" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Výška:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Zachovať pomer strán" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Kotva:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Zmeniť veľkosť obrázka" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nový obrázok" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Veľkosť nového obrázka " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "počet vlákien použitých na vykreslenie" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "MenoMožnosti" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Vykresľovací efekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neuložený obrázok {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Pozadie" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otvoriť obrázok" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nedá sa otvoriť súbor: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Vložiť" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Otočiť o 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Preklopiť obrázok vodorovne" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Preklopiť obrázok zvislo" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Otočiť o 90° v smere hodinových ručičiek" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Otočiť o 90° proti smeru hodinovích ručičiek" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Preklopiť vrstvu vodorovne" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Preklopiť vrstvu zvislo" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dokončiť pixle" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Webstránka" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Nahlásiť chybu" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Preložiť tento program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Uložiť všetko" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zatvoriť všetko" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nový..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nová snímka obrazovky..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otvoriť..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Otvoriť nedávne" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zavrieť" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Uložiť" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Uložiť ako..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Tlačiť" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Ukončiť" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nový" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otvoriť" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Pridať novú vrstvu" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Odstrániť vrstvu" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplikovať vrstvu" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Zlúčiť vrstvy" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Vložit zo súboru..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Prevrátiť vodorovne" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Prevrátiť zvislo" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Otočiť / Priblížiť vrstvu..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Posunúť vrstvu vyžšie" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Posunúť vrstvu nižšie" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Vlastnosti vrstvy..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importovať zo súboru" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Vystrihnúť na výber" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatické orezanie" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Zmeniť veľkosť obrázka..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Zmeniť veľkosť plátna..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Sploštiť" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Priblížiť" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Oddialiť" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Prispôsobiť" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Priblížiť na výber" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normálna veľkosť" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Panel nástrojov" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Mriežka pixlov" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Pravítka" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pixle" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Palce" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetre" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Celá obrazovka" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jednotky pravítka" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Okno" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Späť" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Znovu" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Vystrihnúť" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopírovať" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Vložiť do nového obrázka" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Zmazať výber" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Vyplniť výber" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invertovať výber" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Vybrať všetko" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Zrušiť výber" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Nastaviť na východzie" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Nastaviť počet farieb" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Vymazať výber" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Zrušiť výber" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otvoriť súbor s paletou" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Súbory paliet (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Nedal sa otvoriť súbor palety: {0}.\n" "Prosím overte, že sa pokúšate otvoriť platnú paletu GIMP alebo Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Uložiť súbor palety" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Vrstva" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopírovať" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Nástroj" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Klávesová skratka" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normálne miešanie" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Prepísať" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Zapnúť antialiasing" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Vypnúť antialiasing" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obrázok ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Všeobecné" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Stupeň" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Uhol" #: CloudsEffect dialog msgid "Antialias" msgstr "Vyhladiť" #: GlowEffect dialog msgid "Blend Mode" msgstr "Režim miešania" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Jas" #: PixelateData dialog msgid "Brush Size" msgstr "Veľkosť štetca" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Veľkosť bunky" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Posunutie stredu" #: OilPaintingEffect dialog msgid "Centered" msgstr "V strede" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Hrubosť" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Rozsah farieb" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Sýtosť farby" #: GlowEffect dialog msgid "Coloring" msgstr "Farbenie" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokrytie" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Vzdialenosť" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Správanie hrán" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragmenty" #: TileEffect dialog msgid "Ink Outline" msgstr "Obtiahnutie atramentom" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzita" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Osvetlenie" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Posun" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Veľkosť hrotu ceruzky" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Sila" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalita" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Otočenie" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Percent sýtosti" #: CloudsEffect dialog msgid "Scale" msgstr "Mierka" #: SoftenPortraitData dialog msgid "Seed" msgstr "Báza" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mäkkosť" #: OutlineEffect dialog msgid "Strength" msgstr "Sila" #: TileEffect dialog msgid "Thickness" msgstr "Hrúbka" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Veľkosť dlaždice" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Teplo" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Nízku kvalitu používajte pri náhľadoch, malých obrázkoch a malých uhloch. " "Vysokú kvalitu používajte pri finálnej kvalite, veľkých obrázkoch a veľkých " "uhloch." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Rada: Najlepšie výsledky dosiahnete, keď najprv použijete výberové nástroje " "na označenie každého oka." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Editor obrázkov" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Jednoduché vytváranie a editovanie obrázkov" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta editor obrázkov" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Obrázky" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Nedá sa uložiť obrázok len na čítanie." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Nemeniť veľkosť plátna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Otočiť / Priblížiť vrstvu" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/sl.po0000664000175000017500000014634711747026475015254 0ustar00cameroncameron00000000000000# Slovenian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-28 07:44+0000\n" "Last-Translator: grofaty \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Samodejna raven" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Obrni barve" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Ravni" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepija" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Zmanjšaj število barv" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Črno in belo" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krivulje" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Svetlost / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Odtenek / Nasičenost" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Prilagoditev ravni" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Vhodni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Vhod" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Izhod" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Izhodni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Samodejno" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Ponastavi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Rdeča" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zelena" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Modra" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Povezan" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Prenos karte" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Svetlost" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Rdeč " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Modro " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Namig: Desni klik, da odstraniš nadzorne točke." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Zmanjšaj šum" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Delček" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Zabrisanost" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Oblaki" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Izriši" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Odstrani žarišče" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Odstranitev učinka rdečih oči" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografija" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Del Mandelbrot" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Žarenje" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Zaznaj rob" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Prilagodi slog" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radialno mehčanje" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Zamrznjeno steklo" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Popači" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oljno slikanje" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umetniški" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Fraktal julije" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Omehčana podoba" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Črnilo skice" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Srednja vrednost" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Izboči" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Zabriši po Gaussu" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Izostri" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Dodaj šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Razpostavi odsev" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Točkuj" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Zabriši kot pri gibanju" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Popolna obrnitev" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Izboklina" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Povečava mehčanja" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Svinčnikova skica" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Obroba" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Upogib" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "oznaka1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "oznaka" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Naključni šum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Osemeni" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Izberi osnovno barvo" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Izberi pomožno barvo" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Izberi barvo palete" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Pravokotni izbor" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Kliknite in vlecite za izris izbire pravokotnika. Držite Shift, da omejite " "na kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Razmnoževalni žig" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-levi klik, da določiš področje, levi klik za slikanje." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Izbor čarobne palice" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Kliknite, da izberete področje sorodne barve." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Pravokotnik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Kliknite in vlecite, da narišete pravokotnik (desni klik za izbiro pomožne " "barve). Držite Shift, da omejite na kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Premakni izbiro" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Vleci izbiro za premik izbire obrisa." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Preliv" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Kliknite in vlecite, da naslikate krivino iz osnovne v pomožno barvo. Desni " "klik za obratno." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Premočrten preliv" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Premočrten odsivni preliv" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Premočrtni kara preliv" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Krožni preliv" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Stožčast preliv" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Tekoči način" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Zvezno" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Splošno" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Odstopanje" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Slikarski čopič" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Levi klik za slikanje z osnovno barvo, desni klik za slikanje s pomožno " "barvo." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Vrsta" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Svinčnik" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Levi klik za slikanje proste oblike, eno-točkovna širina črte osnovne barve, " "desni klik za uporabo pomožne barve." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Eliptični izbor" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Kliknite in povlecite, da narišete eliptično obliko. Držite Shift, da " "omejite na krog." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Črta" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Levi klik, da rišete z osnovno barvo, desni klik, da rišete s pomožno barvo. " "Držite Shift za zamah po kotih." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Radirka" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Levi klik za brisanje do transparentnosti, desni klik za brisanje do " "drugotne barve. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pomik" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Kliknite in povlecite za krmarjenje slike" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Izbirnik barv" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Levi klik za izbiro osnovne barve. Desni klik za izbiro pomožne barve." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Po izbiri" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne preklopi orodja" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Preklopi na prejšnje orodje" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Preklopi na svinčnik" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaobljen pravokotnik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" "Kliknite in povlecite, da narišete zaobljen pravokotnik. Držite Shift, da " "omejite na kvadrat." #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Polmer" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Zmanjšaj polmer kota pravokotnika" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Povečaj polmer kota pravokotnika" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Premakni izbrane točke" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Povleci izbor, da prestaviš izbrano vsebino." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Ponovno pobarvaj" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Levi klik, da zamenjaš pomožno barvo z osnovno barvo." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vedro z barvo" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Levi klik za zapolnitev področja z osnovno barvo, desni klik za zapolnitev s " "pomožno barvo." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Kliknite in vlecite za izris elipse (desni klik za pomožno barvo). Držite " "Shift, da omejite na krog." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Besedilo" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Levi klik da postaviš kurzor, nato natipkaj želeno besedilo. Barva besedila " "je osnovna barva." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Pisava" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Krepko" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Ležeče" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podčrtano" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Poravnaj levo" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Središčna poravnava" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Poravnaj desno" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Slog besedila" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Običajno" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Običano in obroba" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Zapolni ozadje" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Širina obrobe" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Zmanjšaj velikost obrobe" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Povečaj velikost obrobe" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Širina čopiča" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Zmanjšaj velikost čopiča" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Povečaj velikost čopoča" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Zapolni slog" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Oblika orisa" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Polnilo orisa" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Polnilo in oris oblike" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Krogi" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Mreža" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kvadrati" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Škropilnik" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Približanje" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Levi klik za približanje. Desni klik za oddaljevanje. Kliknite in povlecite, " "da približate izbrano." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Laso izbira" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknite in povlecite, da narišete oris izbora." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Prosto oblikovana oblika" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O programu" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Datoteka" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Uredi" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "Po_gled" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "Sl_ika" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "P_lasti" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Prilagoditve" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "Učin_ki" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Okno" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Okna orodij" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "Pomo_č" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Orodja" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenti" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Plasti" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Zgodovina" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Skrij" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Usidraj" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Samodejno skrij" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Sidrno" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plavajoče" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Naredi posnetek" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Zakasni preden narediš posnetek (sekunde):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Shrani spremembe v sliko \"{0}\" pred zapiranjem?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "V primeru, da datoteke ne shranite, bodo vse spremembe izgubljene." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zapri brez shranjevanja" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Prilagodi paleto" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nova velikost palete" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Prilepi v novo plast" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Plast prekrivnosti" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Preimenuj plast" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Skrij plast" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Prikaži plast" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Lastnosti plasti" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Odpri slikovno datoteko" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Datoteke slik" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Vse datoteke" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Shrani slikovno datoteko" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podpira shranjevanje slike v to obliko datoteke." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Napaka" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Datoteka \"{0}\" že obstaja. Jo želite prepisati?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Datoteka že obstaja v \"{1}\". Zamenjava bo prepisala obstoječo vsebino." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "Slike ni mogoče prilepiti" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "Odložišče ne vsebuje slike" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kakovost" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kakovost: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naslov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Različica" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pot" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Prispevali k tej izdaji" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Prejšnji avtorji prispevkov" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Andrej Znidarsic https://launchpad.net/~andrej.znidarsic\n" " Fitoschido https://launchpad.net/~fitoschido\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " grofaty https://launchpad.net/~grofaty" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Prevedel:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Osnovano na programu Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Nekatere ikone uporabljene od:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O programu Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacije o različici" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Dovoljenje" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Izdano z dovoljenjem MIT X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Avtorske pravice" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "avtorjev prispevkov Pinte" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Ime:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Vidno" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Prekrivnost:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Prilagodi platno" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Po odstotku:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Za absolutno velikost:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Širina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "točk" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Višina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Obdrži velikostno razmerje" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Sidro:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Spremeni velikost slike" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova slika" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nova velikost slike " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "število niti za izrisovanje" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "OpcijskoIme" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Izrisovalni učinek" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neshranjena slika {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Ozadje" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Odpri sliko" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Ne morem odpreti datoteke: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Prilepi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Zavrti 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Vodoravno zrcali sliko" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Vodoravno zrcali sliko" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Zavrti 90° v smeri urinega kazalca" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Zavrti 90° v nasportni smeri urnega kazalca" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Vodoravno zrcali plast" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Navpično zrcali plast" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Končne točke" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Spletna stran Pinte" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Prijavi napako v programu" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Prevedi ta program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Shrani vse" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Zapri vse" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Novo ..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Nov posnetek ..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Odpri ..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Odpri nedavno" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zapri" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Shrani" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Shrani kot ..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Natisni" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Končaj" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novo" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Odpri" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Dodaj novo plast" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Izbriši plast" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Podvoji plast" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Združi plast navzdol" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Uvozi iz datoteke ..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Zrcali vodoravno" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Zrcali navpično" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Zavrti / Približaj plast..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Premakni plast gor" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Premakni plast dol" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Lastnosti plasti ..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Uvozi iz datoteke" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Izreži izbor" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Samodejno obreži" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Spremeni velikost slike..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Spremeni velikost platna..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Splošči" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Približaj" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Oddalji" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Prilagojeno zaslonu" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Približaj izbrano" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Običajna velikost" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Orodna vrstica" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Točkovna mreža" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Ravnila" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Točke" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Palci" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Celozaslonsko" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Mere ravnila" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Okno" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Razveljavi" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Uveljavi" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Izreži" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiraj" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Prilepi v novo sliko" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Zbriši izbor" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Zapolni izbor" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Obrni izbor" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Izberi vse" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Odstrani izbor" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Ponastavi na privzeto" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Nastavi število barv" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Zradiraj izbor" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Odstrani izbiro" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Odpri datoteko palete" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke palete (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Ne morem odpreti datotekeo palete: {0}.\n" "Prosim preverei ali želiš odpreti veljavno GIMP ali Paint.NET paleto." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Shrani datoteko palete" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Plast" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopija" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Orodje" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Tipka bližnice" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Običajno utripanje" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Prepiši" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Vključi glajenje robov" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Izključi glajenje robov" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Splošno" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Količina" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Kot" #: CloudsEffect dialog msgid "Antialias" msgstr "Glajenje robov" #: GlowEffect dialog msgid "Blend Mode" msgstr "Način utripanja" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Svetlost" #: PixelateData dialog msgid "Brush Size" msgstr "Velikost čopiča" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Velikost celice" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Osrediščen odmik" #: OilPaintingEffect dialog msgid "Centered" msgstr "Središčeno" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grobost" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Razpon barv" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Barvna nasičenost" #: GlowEffect dialog msgid "Coloring" msgstr "Obarvanje" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokritost" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Razdalja" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Vedenje robov" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Množitelj" #: InkSketchEffect dialog msgid "Fragments" msgstr "Kosi" #: TileEffect dialog msgid "Ink Outline" msgstr "Oris črnila" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Močnost" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Osvetlitev" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Odmik" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Velikost konice svinčnika" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Moč" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kakovost" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Vrtenje" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Odstotek zasičenosti" #: CloudsEffect dialog msgid "Scale" msgstr "Merilo" #: SoftenPortraitData dialog msgid "Seed" msgstr "Zasadi" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Omehčanost" #: OutlineEffect dialog msgid "Strength" msgstr "Jakost" #: TileEffect dialog msgid "Thickness" msgstr "Debelina" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Velikost ploščice" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Toplina" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Uporabi nizko kakovost za predogled, majhne slike, in majhne kote. Uporabi " "visoko kakovost za končno kakovost, velike slike, in velike kote." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Namig: Za najboljši izid najprej uporabi orodja za izbiro vsakega očesa." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Urejevalnik slik" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Enostavno ustvarjanje in urejanje slik" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Urejevalnik fotografij Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Slike" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Ne morem shraniti datoteke za branje" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "Slika je prevelika" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Datoteke ICO ne morejo biti večje od 255 x 255 točk." #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "Slika je večja od platna" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Prilepljena slika je večja od velikosti platna. Kaj želite storiti?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Razširi platno" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ne spremeni velikosti platna" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Zavrti / Približaj plast" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "Plast prikazana" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "Plast skrita" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "Upravljalnik vstavkov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Večkratna izbira\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Vključi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Izključi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Brez izbire" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Na voljo v skladišču" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Na voljo je posodobitev" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Ta vstavek se ne more naložiti zaradi manjkajočih odvisnosti" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Zahtevano {0} v{1}, najdeno v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Manjka: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Nameščena različica" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Različica skladišča" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Prenesena velikost" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "Sledeče odvisnosti zahtevane z vstavkom niso na voljo:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Namestitev je bila preklicana" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Ne najdem nekaterih zahtevanih vstavkov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Namestitev je spodletela" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "Nameščeno" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "Posodobitve" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "Galerija" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Vsa skladišča" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Upravljanje skladišč ..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} posodobitev je na voljo" msgstr[1] "{0} posodobitev je na voljo" msgstr[2] "{0} posodobitvi sta na voljo" msgstr[3] "{0} posodobitve so na voljo" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Osvežujem skladišče" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Namesti paket dodatkov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Paketi dodatkov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Vstavkov ni bilo mogoče najti" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Vstavek" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Drugo" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Odstrani" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Sledeči paketi bodo odstranjeni:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" "Obstajajo še drugi vstavki, ki so odvisni od prejšnjih, in bodo prav tako " "odstranjeni:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Obstoječi vstavki ne morejo biti nameščeni, ker obstajajo neskladnosti v " "odvisnosti." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Nameščeni bodo sledeči paketi:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (v uporabnikovi mapi)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Odstranjeni bodo sledeči paketi:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Ni bilo zadoščeno sledečim odvisnostim:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Ali ste prepričani, da želite preklicati namestitev?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Nameščam vstavke" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Namestitev je spodletela!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Namestitev je zaključena z opozorili." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Odstranjujem vstavke" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Odstranjevanje namestitve je spodletelo!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Odstranjevanje namestitve je bilo zaključeno z opozorili." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Vpisovanje skladišča" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "Prišlo je do izjemne napake: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Več podrobnosti" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Namesti ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Posodobitev" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Odstrani ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Za izvajanje dejanja so zahtevane dodatne razširitve." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Nameščeni bodo naslednji vstavki:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Ne najdem posodobitev" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Osveži" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Posodobi vse" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Skladišče:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Namesti iz datoteke ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "Podrobnosti" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Namesti" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Upravljanje skladišč dodatkov" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Dodajanje novega skladišča" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Izberite mesto skladišča za vpis:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Vpis spletnega odlagališča" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "Naslov:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Vpis krajevnega skladišča" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Pot:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Brskanje ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Napredek" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(ponudnik {0})" pinta-1.3/po/sq.po0000664000175000017500000012425611747026475015254 0ustar00cameroncameron00000000000000# Albanian translation for pinta # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Inverto ngjyrat" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivelet" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Bardh e Zi" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "e kuqe" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "e gjelbër" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blu" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "e Kuqe " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blu " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Lulzim https://launchpad.net/~rinia-iku" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "" #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/sr.po0000664000175000017500000014154111747026475015251 0ustar00cameroncameron00000000000000# Serbian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:08+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Serbian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Auto nivo" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Izvrni boje" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivoi" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterizuj" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Crno - Belo" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Krive" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Osvetljenost / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nijansa / Zasićenje" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Podešavanje nivoa" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Ulazni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Ulaz" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Izlaz" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Izlazni histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Automatski" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Resetuj" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Crveno" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Zeleno" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Plavo" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Povezano" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Mapa prenosa" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Osvetljenost" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "Copy text \t (256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Crveno " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Plavo " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Savet: Koristite desni klik da uklonite kontrolne tačke." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Umanji šum" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Šum" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Deo" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Zamućenja" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Oblaci" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Iscrtavanje" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Van fokusa" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Uklanjanje efekta crvenih očiju" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotografija" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrotov fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Сјај" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Pronađi ivice" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Silizuj" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Kružno zamućenje" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Zaleđeno staklo" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Deformiši" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Slikanje uljem" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Umetnička" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julijin fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Umekšani portret" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Reljef" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Skica mastilom" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Srednji" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Izbočine" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gausovo zamućenje" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Izoštri" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Dodaj šum" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Odsjaj pločica" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselizuj" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Zamućenje pokreta" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polarna inverzija" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Ispupči" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Uvećano zamućenje" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Skica olovkom" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Kontura" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "uvrni" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "natpis1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "natpis" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Slučajni šum" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Ponovo zasej" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Odaberi osnovnu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Odaberi sporednu boju" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Izaberi boju palete" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Odabir kvadratom" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klikni i prevuci da iscrtaš odabir pravougaonikom. Pritisni šift za kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Kloniraj kalup" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+ levi klik da podesite poreklo, levi klik za bojenje." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Odabir čarobnim štapićem" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klikni za odabir regiona sa sličnom bojom." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Pravougaonik" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Klikni i prevuci da iscrtaš pravougaonik (desni klik za drugu boju). " "Pritisni šift za kvadratni oblik." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Premesti odabrano" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Prevucite odabrano da premestite odabrani okvir." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Preliv" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klikni i prevuci da se iscrta od osnovne do druge boje. Desni klik za " "obrnuto." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linearni preliv" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linearni reflektujući preliv" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linearni dijamant preliv" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Kružni preliv" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Kupast preliv" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Popunjavanje" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Neprekidno" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Globalno" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerancija" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Četkica" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Levi klik za crtanje osnovnom bojom, desni klik za crtanje drugom bojom." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tip" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Olovka" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Levi klik za crtanje slobodnom formom, širine jedan piksel osnovnom bojom, " "desni klik za drugu boju." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Odaberi elipsom" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klikni i prevuci da za eliptični odabir. Pritisni šift za kružni odabir." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linija" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Gumica za brisanje" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Levi klik za brisanje do transparentnosti, desni klik za brisanje do " "sekundarne boje. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Pan" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klikni i prevuci za pozicioniranje slike." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Birač boja" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Levi klik za postavljanje osnovne boje. Desni klik za postavljanje druge " "boje." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Nakon odabira" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Ne vrši izmenu alata" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Izmeni na prethodni alaz" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Prebaci na alat olovka" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Zaobljeni pravougaonik" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Poluprečnik" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Smanji poluprečnik zaobljenja uglova" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Povećaj poluprečnik zaobljenja uglova" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Premesti odabrane piksele" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Premesti odabir da bi premestio odabrani sadržaj." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Ponovo oboji" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Levi klik da zamenite drugu boju osnovnom bojom." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Kantica sa bojom" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Levi klik da bi popunili oblast osnovnom bojom, desni za popunjavanje drugom " "bojom." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elipsa" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Klikni i prevuci da iscrtaš elipsu (desni klik za drugu boju). Pritisni šift " "za krug." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Tekst" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Levi klik da postavite kursor, zatim otkucajte željeni tekst. Boja teksta je " "osnovna." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Font" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Podebljano" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kurziv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Podvučeno" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Levo poravnanje" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Centralno poravnanje" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Desno poravnanje" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Stil teksta" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Нормално" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normalno i spoljna linija" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Širina spoljne linije" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Smanji veličinu spoljne linije" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Povećaj veličinu spoljne linije" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Širina četkice" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Smanji veličinu četkice" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Povećaj veličinu četkice" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stil popunjavanja" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Uokviri oblik" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Popuni oblikom" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Popuni i uokviri oblik" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Кругови" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Mreža" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Квадрати" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splater" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Uvećanje" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Levi klik za povećanje. Desni klik za smanjenje. Klik i povlačenje za " "povećanje odabranog." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Odabir tipa laso" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikni i povuci da se isrta okvir odabranog područja." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Slobodan oblik" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "O" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Fajl" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Izmeni" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Prikaz" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Slika" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Slojevi" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Podešavanja" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efekti" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Prozor" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Prozor sa alatkama" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Pomoć" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Alati" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Paleta" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokumenti" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Slojevi" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Istorijat" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Sakrij" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Dok" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Automatski Sakrij" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Prikačiv" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutajuće" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Slikaj ekran" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Odlaganje pre snimanja ekrana(u sekundama):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Sačuvaj izmene slike \"{0}\" pre zavaranja?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Ako ne sačuvate, sve izmene će biti trajno izgubljene." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Zatvori bez snimanja" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Promeni veličinu palete" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Nova veličina palete:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Prilepi u novi sloj" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Providnost sloja" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Preimenuj sloj" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Sakrij sloj" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Prikaži sloj" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Osobine sloja" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Učitaj sliku" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Fajlovi slika" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Svi fajlovi" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Sačuvaj falj sa slike" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podržava čuvanje slika u ovom formatu" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Greška" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Fajl \"{0}\" već postoji. Zameni?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Fajl već postoji u \"{1}\". Zamena će obrisati njegov stari sadržaj." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG квалитет" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalitet: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naslov" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Verzija" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Putanja" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Saradnici u ovoj verziji" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Prethodni saradnici" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Milena https://launchpad.net/~milenad13\n" " boki24 https://launchpad.net/~bojansav\n" " Никола Павловић https://launchpad.net/~nikola825" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Preveo:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Zasniva se na programu Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Koristi pojedine ikone iz:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "O Pinta programu" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Informacija o verziji" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licenca" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Izdato pod MIT X11 licencom" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Autorska prava" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "od Pinta saradnika" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Naziv:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Vidljivo" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Prozirnost" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Promeni veličinu platna" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "U procentima:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Po apsolutnoj veličini:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Širina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "piksela" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Visina:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Zadrži proporcije" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Sidro:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Promeni veličinu slike" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Nova slika" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Nova veličina slike " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "broj niti koje će se koristiti za iscrtavanje" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "ОпционоИме" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Efekat iscrtavanja" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nesačuvana slika {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Pozadina" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Otvori sliku" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Nisam uspeo otvoriti fajl: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Prilepi" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Okreni 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Prevrni sliku horizontalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Prevrni sliku vertikalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Okreni 90° u smeru kazaljke na časovniku" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Okreni 90° suprotno od smera kazaljke na časovniku" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Prevrni sloj horizontalno" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Prevrni sloj vertikalno" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dovrši piksele" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta internet stranica" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Zabeleži grešku" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Prevedi ovaj program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Сачувај све" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Затвори све" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nova..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Novi snimak ekrana..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Otvori..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Otvori skorašnje" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zatvori" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Sačuvaj" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Sačuvaj kao..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Odštampaj" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Izađi" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Novi" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Otvori" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Dodaj novi sloj" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Obriši sloj" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Dupliraj sloj" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Spoj sloj sa donjim" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Uvezi iz fajla ..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Prevrni vodoravno" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Prevrni uspravno" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Pomeri sloj gore" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Pomeri sloj dole" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Osobine sloja..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Unesi iz fajla" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Izreži prema odabiru" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Spljošti" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Uveličaj" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Umanji" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Najbolje uklapanje" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Uveličaj odabrano" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Нормална величина" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Traka alatki" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Mreža piksela" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Lenjiri" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Pikseli" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Inči" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimetri" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Ceo ekran" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Jedinice lenjira" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Prozor" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Opozovi" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Ponovi" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Iseci" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiraj" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Prilepi u novu sliku" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Obriši izabrano" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Popuni odabrano" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Obrni odabrano" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Izaberi sve" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Одзначи све" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Ресетуј на подразумевано" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Podesi broj boja" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Obriši odabrano" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Poništi izbor" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Otvori fajl palete" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Fajlovi paleta (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Ne mogu da otvorim fajl palete: {0}.\n" "Molim vas proverite da otvarate važeći GIMP ili Paint.NET paletu." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Sačuvaj fajl palete" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Sloj" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiraj" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Alatke" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Taster prečice" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normalno utapanje" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Prepiši" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialijas uključen" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Antialijas isključen" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Opšte" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Količina" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Ugao" #: CloudsEffect dialog msgid "Antialias" msgstr "Omakšavanje ivica" #: GlowEffect dialog msgid "Blend Mode" msgstr "Režim mešanja" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Osvijetljenost" #: PixelateData dialog msgid "Brush Size" msgstr "Veličina četkice" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Veličina ćelije" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centriraj pomak" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrirano" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Hrapavost" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Opseg boja" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Zasićenost boja" #: GlowEffect dialog msgid "Coloring" msgstr "Bojenje" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Pokrivenost" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Rastojanje" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Ponašanje ivica" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Delovi" #: TileEffect dialog msgid "Ink Outline" msgstr "kontura mastila" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intenzitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Osvetljenje" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Pomak" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Veličina vrha olovke" #: CloudsEffect dialog msgid "Percentile" msgstr "Procenat" #: RadialBlurEffect dialog msgid "Power" msgstr "Snaga" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalitet" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Okretanje" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Procenat zasićenosti" #: CloudsEffect dialog msgid "Scale" msgstr "Promjeni veličinu" #: SoftenPortraitData dialog msgid "Seed" msgstr "Posej" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mekoća" #: OutlineEffect dialog msgid "Strength" msgstr "Jačina" #: TileEffect dialog msgid "Thickness" msgstr "Debljina" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Veličina pločice" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Toplota" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Koristi manje kvalitetan prikaz za pregled, male slike i male uglove. " "Koristi visoki kvalitet prikaza, velike slike i velike uglove." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Savet: Za najbolje rezultate, prvo pomoću alata za odabir, odaberite jedno " "pa drugo oka." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Уређивач слика" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Jednostavno kreirajte i menjajte slike" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta, obrađivač slika" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/sv.po0000664000175000017500000014267111747026475015262 0ustar00cameroncameron00000000000000# Swedish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-22 14:00+0000\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-04-28 16:21+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Autonivå" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Invertera färger" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Nivåer" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepia" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterisera" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Svartvitt" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Kurvor" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Ljusstyrka / kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Nyans / mättnad" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Nivåjustering" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Inmatningshistogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Inmatning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Utmatning" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Utmatningshistogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Auto" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Återställ" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Röd" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Grön" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Blå" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Länkad" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Överföringskarta" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Luminositet" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Röd " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Blå " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Tips: Högerklicka för att ta bort kontrollpunkter." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Reducera brus" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Brus" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragment" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Oskärpa" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Moln" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Rendera" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Ofokusera" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Ta bort röda ögon" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Foto" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktal" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Glöd" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Kantupptäckt" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilisera" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Radiell oskärpa" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Frostat glas" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Förvräng" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Oljemålning" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Konstnärlig" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia-fraktal" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Mjuka upp porträtt" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Gör relief" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Bläckskiss" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Median" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Ciselera" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gaussisk oskärpa" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Gör skarpare" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Lägg till brus" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Kakelreflektion" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pixelera" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Rörelseoskärpa" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Polär inversion" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Bukta" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Zoomoskärpa" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Blyertsskiss" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Konturera" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Vrid" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etikett1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etikett" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Slumpmässigt brus" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Seeda om" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Välj primär färg" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Välj sekundär färg" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Välj palettfärg" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Rektangelmarkering" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Klicka och dra för att rita en rektangelmarkering. Håll ned Shift för att " "begränsa till en kvadrat." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonstämpel" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl-vänsterklicka för att ställa in ursprunget. Vänsterklicka för att rita." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Trollspömarkering" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Klicka för att markera ett område med liknande färg." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Rektangel" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Vänsterklicka och dra för att rita en rektangel. Högerklicka för sekundär " "färg. Håll ned Shift för att begränsa till en kvadrat." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytta markering" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Dra markeringen för att flytta markeringskonturen." #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Gradient" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klicka och dra för att rita gradient från den primära till den sekundära " "färgen. Högerklicka för motsatt riktning." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Linjär gradient" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Linjär reflekterad gradient" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Linjär diamantgradient" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Radiell gradient" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Konisk gradient" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Flödesläge" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Sammanhängande" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Global" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerans" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Pensel" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Vänsterklicka för att rita med den primära färgen. Högerklicka för att rita " "med sekundär färg." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Typ" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Penna" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Vänsterklicka för att rita friformiga linjer som är en bildpunkt med den " "primära färgen. Högerklicka för att använda sekundär färg." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Ellipsmarkering" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Klicka och dra för att rita en ellipsmarkering. Håll ned Shift för att " "begränsa till en cirkel." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Linje" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" "Vänsterklicka för att använda den första färgen, högerklicka för att använda " "den andra. Håll ner Shift för att fästa till kanter." #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Suddgummi" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Vänsterklicka för att radera till transparent, högerklicka för att radera " "till sekundär färg. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Panorera" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Klicka och dra för att navigera bilden." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Färghämtare" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Vänsterklicka för att ställa in den primära färgen. Högerklicka för sekundär " "färg." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Efter val" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Växla inte verktyg" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Växla till föregående verktyg" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Växla till pennverktyget" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Rundad rektangel" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Radie" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Minska rektangelns hörnradie" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Öka rektangelns hörnradie" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Flytta markerade bildpunkter" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Dra markeringen för att flytta markerat innehåll." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Omfärga" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Vänsterklicka för att ersätta den sekundära färgen med den primära." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Färghink" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Vänsterklicka för att fylla ett område med den primära färgen. Högerklicka " "för att fylla med sekundär färg." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Ellips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Vänsterklicka och dra för att rita en ellips. Högerklicka för sekundär färg. " "Håll ned Shift för att begränsa till en cirkel." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Text" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Vänsterklicka för att placera markören och skriv sedan önskad text. " "Textfärgen är den primära färgen." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Typsnitt" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Fet" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Kursiv" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Understruken" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Vänsterjustera" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Centrera" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Högerjustera" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Text stil" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Normal och Konturlinje" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Fyll bakgrund" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Bredd på konturlinje" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Minska konturlinje" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Öka konturlinje" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Penselbredd" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Minska penselstorlek" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Öka penselstorlek" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Fyllningsstil" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Konturera form" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Fyll form" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Fyll och konturera form" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Cirklar" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Rutnät" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Rutor" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Splatter" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Zooma" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Vänsterklicka för att zooma in. Högerklicka för att zooma ut. Klicka och dra " "för att zooma in markering." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Lassomarkering" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Klicka och dra för att rita konturen för ett markeringsområde." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Fri form" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Om" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Arkiv" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "R_edigera" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Visa" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "B_ild" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lager" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Justeringar" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Effekter" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Fönster" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Verktygsfönster" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Hjälp" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Verktyg" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palett" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Dokument" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lager" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Historik" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Dölj" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Docka" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Autodölj" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockningsbar" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flytande" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ta en skärmbild" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Fördröjning före en skärmbild tas (sekunder):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Spara ändringarna i bilden \"{0}\" innan du avslutar?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Om du inte sparar kommer alla ändringar att gå förlorade." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Stäng utan att spara" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Ändra palettstorlek" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Ny palettstorlek:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Klistra in i nytt lager" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Lageropacitet" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Döp om lager" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Dölj lager" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Visa lager" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Lageregenskaper" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Öppna bildfil" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Bildfiler" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Alla filer" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Spara bildfil" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta stöder inte sparande av bilder i detta filformat." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Fel" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Ett fil med namnet \"{0}\" finns redan. Vill du ersätta den?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Filen finns redan i \"{1}\". Vid ersättning skrivs dess innehåll över." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kvalitet: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Version" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sökväg" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bidragsgivare till denna utgåva" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Tidigare bidragsgivare" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Daniel Nylander https://launchpad.net/~yeager\n" " David Bengtsson https://launchpad.net/~jstfaking\n" " Emaspounder https://launchpad.net/~emasxp-gmail\n" " Jakob Gezelius https://launchpad.net/~jakob-knugen\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Phoenix https://launchpad.net/~thephoenix\n" " Tom Mannerhagen https://launchpad.net/~tom-mannerhagen-gmail" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Översatt av:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Baserat på arbetet med Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Använder en del ikoner från:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Om Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Versionsinfo" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Licens" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Släppt under MIT X11 License." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Upphovsrätt" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "av Pinta-bidragsgivare" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Namn:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Synlig" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Opacitet:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Ändra storlek på rityta" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "I procent:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Med absolut storlek:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Bredd:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "bildpunkter" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Höjd:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Behåll bildförhållande" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Ankare:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Ändra bildstorlek" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Ny bild" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Ny bildstorlek " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "antal trådar att använda för rendering" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Alternativnamn" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Renderingseffekt" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Osparad bild {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Bakgrund" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Öppna bild" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunde inte öppna filen: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Klistra in" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Rotera 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Vänd bild horisontellt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Vänd bild vertikalt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Rotera 90° medurs" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotera 90° moturs" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Vänd lager horisontellt" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Vänd lager vertikalt" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Avsluta bildpunkter" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pintas webbplats" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Rapportera ett fel" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Översätt detta program" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Spara alla" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Stäng alla" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nytt..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Ny skärmbild..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Öppna..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Öppna senaste" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Stäng" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Spara" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Spara som..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Skriv ut" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Avsluta" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nytt" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Öppna" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Lägg till nytt lager" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Radera lager" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Duplicera lager" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Sammanfoga lager nedåt" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Importera från fil..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Vänd horisontellt" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Vänd vertikalt" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotera / Zooma in lager" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Flytta lager uppåt" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Flytta lager nedåt" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Lagerinställningar..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Importera från fil" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Beskär till markering" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Beskär automatiskt" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Ändra storlek på bilden..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "Ändra storlek på rityta..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Tillplatta" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Zooma in" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Zooma ut" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Bästa passning" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Zooma till markering" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal storlek" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Verktygsrad" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Bildpunktsrutnät" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Linjaler" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Bildpunkter" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Tum" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Centimeter" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Helskärm" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Linjalenheter" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Fönster" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Ångra" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Gör om" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Klipp ut" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopiera" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Klistra in i ny bild" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Ta bort markering" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Fyll markering" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Invertera markering" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Markera allt" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Avmarkera allt" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Återställ till standard" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Ställ in antal färger" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Sudda ut markering" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Avmarkera" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Öppna palettfil" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettfiler (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Kunde inte öppna palettfilen: {0}.\n" "Kontrollera att du försöker öppna en giltig GIMP- eller Paint.NET-palett." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Spara palettfil" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-palett (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP-palett (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Lager" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopiera" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Verktyg" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Genvägstangent" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal blandning" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Skriv över" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Kantutjämning på" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Kantutjämning av" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0}-bild ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Allmänt" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Mängd" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Vinkel" #: CloudsEffect dialog msgid "Antialias" msgstr "Kantutjämning" #: GlowEffect dialog msgid "Blend Mode" msgstr "Blandningsläge" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Ljusstyrka" #: PixelateData dialog msgid "Brush Size" msgstr "Penselstorlek" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Cellstorlek" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Centrera kompensation" #: OilPaintingEffect dialog msgid "Centered" msgstr "Centrerad" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Grovhet" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Färgområde" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Färgmättnad" #: GlowEffect dialog msgid "Coloring" msgstr "Färgläggning" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Täckning" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Avstånd" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kantbeteende" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Faktor" #: InkSketchEffect dialog msgid "Fragments" msgstr "Fragment" #: TileEffect dialog msgid "Ink Outline" msgstr "Bläckkontur" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Intensitet" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Ljussättning" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Kompensation" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Pennspetsstorlek" #: CloudsEffect dialog msgid "Percentile" msgstr "Percentil" #: RadialBlurEffect dialog msgid "Power" msgstr "Styrka" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kvalitet" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Rotation" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Mättnadsprocent" #: CloudsEffect dialog msgid "Scale" msgstr "Skala" #: SoftenPortraitData dialog msgid "Seed" msgstr "Seeda" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Mjukhet" #: OutlineEffect dialog msgid "Strength" msgstr "Styrka" #: TileEffect dialog msgid "Thickness" msgstr "Tjocklek" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Kakelstorlek" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Värme" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Använd låg kvalitet för förhandsvisningar, små bilder och små vinklar. " "Använd hög kvalitet för slutlig kvalitet, stora bilder och stora vinklar." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Tips: För bästa resultat, använd först markeringsverktyg för att markera " "varje öga." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Bildredigerare" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Skapa och redigera bilder enkelt" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Bildredigeraren Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Bilder" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Kan inte spara skrivskyddad fil." #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Bilden som klistras in är större än storleken på ritytan. Vad vill du göra?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "Förstora ritytan" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "Ändra inte storleken på ritytan" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "Rotera / zooma lager" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/th.po0000664000175000017500000013124611747026475015241 0ustar00cameroncameron00000000000000# Thai translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Thai \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "มัว" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "ภาพถ่าย" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "สี่เหลี่ยมผืนผ้า" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "ไล่ระดับสี" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "พู่กัน" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "ดินสอ" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "ยางลบ" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "รัศมี" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "แบบอักษร" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "ขนาดพู่กัน" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "ลดขนาดพู่กัน" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "เพิ่มขนาดพู่กัน" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "ย่อ/ขยาย" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "เกี่ยวกับ" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "แ_ฟ้ม" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "แ_ก้ไข" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "มุ_มมอง" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "รูป_ภาพ" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_ชั้นงาน" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_การปรับเปลี่ยน" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_ลูกเล่น" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "ห_น้าต่าง" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_วิธีใช้" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "เครื่องมือ" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "เอกสาร" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "ชั้นงาน" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "ซ่อน" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "สำรับงาน" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "ซ่อนอัตโนมัติ" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "จัดใส่สำรับงานได้" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "ลอย" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "ถ้าคุณไม่บันทึกงาน การแก้ไขทั้งหมดจะสูญหายอย่างถาวร" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "ปิดโดยไม่บันทึก" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "แปะในชั้นงานใหม่" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "ความทึบแสงของชั้นงาน" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "เปลี่ยนชื่อชั้นงาน" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "ซ่อนชั้นงาน" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "แสดงชั้นงาน" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "คุณสมบัติชั้นงาน" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "เปิดแฟ้มรูปภาพ" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "แฟ้มรูปภาพ" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "บันทึกแฟ้มรูปภาพ" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "เวอร์ชัน" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " SiraNokyoongtong https://launchpad.net/~gumara\n" " Srun Werakool https://launchpad.net/~panx0008" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "แปลโดย:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "เกี่ยวกับ Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "เวอร์ชัน" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "ลิขสิทธิ์" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "สงวนลิขสิทธิ์" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "ชื่อ:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "ปรากฏ" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "ความทึบแสง:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "ปรับขนาดหน้ากระดาษ" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "ความกว้าง:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "พิกเซล" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "ความสูง:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "ปรับขนาดภาพ" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "ภาพใหม่" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "ขนาดของภาพใหม่ " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "พื้นหลัง" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "เปิดรูปภาพ" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "แปะ" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "หมุน 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "หมุน 90° ตามเข็มนาฬิกา" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "หมุน 90° ทวนเข็มนาฬิกา" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "พลิกชั้นงานในแนวตั้ง" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "พลิกชั้นงานในแนวนอน" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "ใหม่..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "เปิด..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "แฟ้มล่าสุด" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "ปิด" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "บันทึก" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "บันทึกเป็น..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "พิมพ์" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "ออก" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "ใหม่" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "เปิด" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "ลบชั้นงาน" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "ขยาย" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "ย่อ" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "เต็มจอ" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "เรียกคืน" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "ทำซ้ำ" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "ตัด" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "คัดลอก" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "แปะในรูปภาพใหม่" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "ชั้นงาน" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "คัดลอก" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "ความสว่าง" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/tr.po0000664000175000017500000014157311747026475015257 0ustar00cameroncameron00000000000000# Turkish translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Otomatik Seviye" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Renkleri Ters Çevir" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Seviyeler" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Sepya" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Posterleştir" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Siyah Beyaz" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Eğriler" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Parlaklık / Kontrast" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Ton / Doygunluk" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Seviye Ayarları" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Giriş Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Girdi" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Çıktı" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Çkış Histogram" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Otomatik" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Sıfırla" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Kırmızı" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Yeşil" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Mavi" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Bağlı" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Transfer Haritası" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Parlaklık" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Kırmızı " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Mavi " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Öneri : Kontrol noktalarını kaldırmak için sağ tıklayın." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Paraziti Azalt" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Parazit" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Fragman" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Bulanıklıklar" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Bulutlar" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Tara" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Odağı Kaldır" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Kırmızı Göz Kaldırma" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Fotoğraf" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktali" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Parlama" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Kenar Saptama" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Stilize et" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Dairesel Bulanıklaştırma" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Buzlu Cam" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Boz" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Yağlı Boya" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Sanatsal" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Julia Fraktali" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Portreyi Yumuşat" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Kabartma" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Mürekkep Efekti" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Ortalama" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Kabartma" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Gauss Bulanıklığı" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Keskinleştir" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Parazit Ekle" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Pikselleştir" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Hareketli Bulanıklaştır" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Şişirme" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Yaklaşma Bulanıklaştırması" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Kalemle Eskiz" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Anahat" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "etiket1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "etiket" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Rastgele Parazit" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Birincil Rengi Seç" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "İkincil Rengi Seç" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Palet Rengini Seç" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Dikdörtgen Seçim" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "Dikdörtgen çizmek için tıklayın ve sürükleyin. Kare elde etmek için shift'e " "basın." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Klonlama Aracı" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Kaynağı belirlemek için ctrl'ye basarak sol tıklayın, boyamak için sol " "tıklayın." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Benzer renkli bir bölge seçmek için tıklayın." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Dikdörtgen" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "Dikdörtgen çizmek için tıklayın ( ikincil renk için sağ tıklayın ) ve " "sürükleyin. Kare elde etmek için shift'e basın." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Seçimi Taşı" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Renk Geçişi" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Birincil renkten ikincil renge geçiş çizmek için tıklayıp sürükleyin. " "Tersini yapmak için sağ tıklayın." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Işınsal Renk Geçişi" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Sürekli" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Genel" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Tolerans" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Boya fırçası" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Birincil renkle çizmek için sol, ikincil renkle çizmek için sağ tıklayın." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Tür" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Kalem" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Bir piksel kalınlığında, birincil renkte serbest çizim için sol tıklayın, " "ikincil rengi kullanmak için sağ tıklayın." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Elips Seçim" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "Elips şeklinde seçim yapmak için tıklayıp sürükleyin. Seçimini daire " "şeklinde olması için Shift'e basınız." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Çizgi" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Silgi" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Silindiğinde transparan olması için sol tıklayarak, ikincil rengin görünmesi " "için sağ tıklayarak silin. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Kaydırma" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Resmi hareket ettirmek için tıklayın ve sürükleyin." #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Renk Seçici" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Temel rengi belirmek için farenizin sol tuşa basın. İkincil rengi belirlemek " "için ise farenizin sağ tuşuna basın." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Seçimden sonra" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Aracı değiştirme" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Önceki araca geç" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Kalem aracına geçin" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Dairesel Dikdörtgen" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Yarıçap" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Seçili Pikselleri Taşı" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Seçili içeriği hareket ettirmek için seçili alanı sürükle." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Tekrar renklendir" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "İkincil rengi birincil renkle değiştirmek için sol tıkla." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Boya Kovası" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Bölgeyi birincil renkle doldurmak için sol, ikincil renk ile doldurmak için " "sağ tıklayın." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Elips" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "Elips çizmek için tıklayıp ( ikincil renk için sağ tıklayın) sürükleyin. " "Çember elde etmek için Shift'e basın." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Metin" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "İşaretçiyi yerleştirmek için tıklayın ve istenen metni yazın. Metin rengi " "birincil renktir." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Yazıtipi" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Kalın" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "İtalik" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Altı çizili" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Sola Hizalı" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Ortala" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Sağa Hizalı" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Yazı Stili" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Normal" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Fırça boyutu" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Fırça boyutunu azalt" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Fırça boyutunu arttır" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Stili Doldur" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Şekli Doldur" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Daireler" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Kareler" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Büyüt" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Odağı büyütmek için sol, küçültmek için sağ tıklayın. Seçili bir alanı " "büyütmek için tıklayıp sürükleyin." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Kement Seçim" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Hakkında" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Dosya" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "Düz_enle" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Görünüm" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "Res_im" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Katmanlar" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Ayarlar" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Efektler" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Pencere" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Araç Pencereleri" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Yardım" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Araçlar" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Palet" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Belgeler" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Katmanlar" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Geçmiş" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Gizle" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Rıhtım" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Otomatik Gizle" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Gömülebilir" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Yüzen" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Ekran Görüntüsü Al" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Ekran Görüntüsü Almadan Önce Bekleme (saniye):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" "Kapatmadan önce değişiklikleri \"{0}\" üzerine kaydetmek istiyor musunuz?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Kaydetmezseniz tüm değişiklikler kalıcı olarak kaybolacak." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Kaydetmeden kapat" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Paleti Yeniden Boyutlandır" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Yeni palet büyüklüğü" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Yeni Katmana Yapıştır" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Katman Saydamlığı" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Katmanı Yeniden Adlandır" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Katmanı Gizle" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Katmanı Göster" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Katman Özellikleri" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Bir Görüntü Dosyası Aç" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Görüntü dosyaları" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Tüm dosyalar" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Resim Dosyasını Kaydet" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta bu dosya formatıyla kaydetmeyi desteklemiyor." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Hata" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "\"{0}\" isminde dosya mevcut. Değiştirmek ister misiniz?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Dosya \"{1}\" içinde mevcut. Değiştirmek içeriğinin üzerine yazılmasına " "neden olacak." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Kalitesi" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Kalite : " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Başlık" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Sürüm" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Konum" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Bu Sürüme Katkıda Bulunanlar" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Önceden Katkıda Bulunmuş Olanlar" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ahmet Vurgun https://launchpad.net/~ahmetvurgun\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Mehmet Gülmen https://launchpad.net/~memetgulmen\n" " Omer GOK https://launchpad.net/~mechulkalan\n" " Yalçın Can https://launchpad.net/~echza\n" " Yusuf ÜLKÜ https://launchpad.net/~yusufulku\n" " rosencreuz https://launchpad.net/~iyiguncevik" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Çeviren:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Paint.NET üzerine inşa edilmiştir:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Bazı simgeler şuradan alınmıştır:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Pinta Hakkında" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Sürüm Bilgisi" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Lisans" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "MIT X11 Lisansı altında dağıtılmaktadır" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Telif Hakkı" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "Pinta katılımcıları tarafından" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "İsim:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Görünür" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Saydamlık:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Tuvali Yeniden Boyutlandır" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Yüzde :" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Mutlak boyut:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Genişlik:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "piksel" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Yükseklik:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "En-boy oranını koru" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Çapa:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Resmi Yeniden Boyutlandır" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Yeni Görüntü" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Yeni Görüntü Boyutu " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "oluşturulma için için kullanılan işlem parçacıkları" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Render Efekti" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Kaydedilmemiş Resim {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Arkaplan" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Görüntü Aç" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Dosya açılamadı: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Yapıştır" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "180° Döndür" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Resmi Yatay Döndür" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Resmi Dikey Döndür" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Saat Yönünde 90° Çevir" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Saat Yönünün Tersinde 90° Çevir" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Katmanı Yatay Döndür" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Katmanı Dikey Döndür" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pikseller Bitir" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta Web Sayfası" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Hata Bildir" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Bu Programı Tercüme Et" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Tümünü Kaydet" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Tümünü Kapat" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Yeni..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Yeni Ekran Görüntüsü..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Aç..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Son Kullanılanlardan Aç" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Kapat" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Kaydet" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Farklı Kaydet..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Yazdır" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Çık" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Yeni" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Aç" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Yeni Katman Ekle" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Katmanı Sil" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Katmanı Çoğalt" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Katmanı Birleştir" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Dosyadan Aktar" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Yatay Çevir" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Dikey Çevir" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Katmanı Yukarı Çıkar" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Katmanı Aşağı İndir" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Katman Özellikleri..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Dosyadan Aktar" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Seçime Kırp" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Düzleştir" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Yakınlaştır" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Uzaklaştır" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "En Uygun Görünüm" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "Seçime Büyüt" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Normal Boyut" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Araç Çubuğu" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Piksel Izgara" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Cetvel" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Piksel" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "İnç" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Santimetre" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "Tam Ekran" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Cetvel Birimi" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Pencere" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Geri Al" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Yinele" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Kes" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Kopyala" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Yeni Görüntü Dosyasına Yapıştır" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Seçimi sil" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Seçimi Doldur" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Seçimi Tersine Çevir" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Tümünü Seç" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Tüm Seçimleri Kaldır" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Varsayılana Sıfırla" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Renk Numaraları" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Seçimi Sil" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Seçimi Kaldır" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Palet Dosyası Aç" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Palet dosyaları (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Palet dosyası açılamadı: {0}.\n" "Lütfen geçerli bir GIMP ya da Paint.NET paleti seçtiğinizi doğrulayın." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Palet Dosyasını Kaydet" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleti (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleti (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Katman" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "kopyala" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Araç" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Kısayol tuşu" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Normal Harmanlama" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Üzerine yaz" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Antialiasing Açık" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Kenar Keskinleştirme Kapalı" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} resim ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Genel" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Miktar" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Açı" #: CloudsEffect dialog msgid "Antialias" msgstr "Örtüşme Önle" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Parlaklık" #: PixelateData dialog msgid "Brush Size" msgstr "Fırça Boyutu" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Hücre Boyutu" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "Ortalanmış" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Renk Dizisi" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Renk Doygunluğu" #: GlowEffect dialog msgid "Coloring" msgstr "Renklendirme" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Kontrast" #: FragmentEffect dialog msgid "Coverage" msgstr "Kapsam" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Uzaklık" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Kenar Davranışı" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Etken" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Yoğunluk" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Aydınlatma" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Yerleşim" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Kalem Ucu Büyüklüğü" #: CloudsEffect dialog msgid "Percentile" msgstr "Yüzdelik Değer" #: RadialBlurEffect dialog msgid "Power" msgstr "Güç" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Kalite" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Döndürme" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Doygunluk yüzdesi" #: CloudsEffect dialog msgid "Scale" msgstr "Ölçek" #: SoftenPortraitData dialog msgid "Seed" msgstr "Tohum" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Yumuşaklık" #: OutlineEffect dialog msgid "Strength" msgstr "Güçlülük" #: TileEffect dialog msgid "Thickness" msgstr "Kalınlık" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Döşeme Boyutu" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Önizlemeler, küçük resimler ve dar açılar için düşük kalite kullanın. Son " "nüshada kalite, büyük resimler ve geniş açılar için yüksek kalite kullanın." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Öneri: En iyi sonucu almak için ilk önce seçim araçlarını kullanarak iki " "gözü seçin." #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/uk.po0000664000175000017500000015750611747026475015254 0ustar00cameroncameron00000000000000# Ukrainian translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-02 01:07+0000\n" "Last-Translator: Max_ym \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "Автокорекція" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "Інвертувати кольори" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "Рівні" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "Сепія" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "Постеризація" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "Чорно-біле" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "Криві" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "Яскравість / контраст" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "Відтінок / Насиченість" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "Корекція рівнів" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "Вхідна гістограма" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Вхід" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "Вихід" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "Вихідна гістограма" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "Автоматично" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "Скинути" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "Червоний" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "Зелений" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "Синій" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "Зв'язок" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "Карта нормалей" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "Освітленість" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "Червоний " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "Синій " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "Підказка: Клік правою кнопкою миші видаляє контрольні точки." #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "Зменшити шум" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "Шум" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "Фрагмент" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "Розмитість" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "Хмари" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "Обробка" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "Розфокусування" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "Прибирання ефекту червоних очей" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "Знімок" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "Множина Мандельброта" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "Відблиск" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "Виділення краю" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "Стилізація" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "Радіальне розмивання" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "Матове скло" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "Спотворення" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "Картина маслом." #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "Художній" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "Фрактал Julia" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "Пом'якшити портрет" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "Рельєф" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "Ескіз чорнилами" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "Медіана" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "Чеканка" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "Розмивання по Гаусу" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "Різкість" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "Додати шум" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "Мозаїка" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "Пікселізація" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "Розмивання рухом" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "Полярна інверсія" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "Опуклість" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "Збільшувальне розмивання" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "Малюнок олівцем" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "Контур" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "Скручування" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "Мітка1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "мітка" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Білий шум" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Перемішати" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "Виберіть основний колір" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "Виберіть вторинний колір" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "Оберіть палітру кольорів" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "Прямокутне виділення" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" "За допомогою миші намалюйте прямокутне виділення. Затисніть shift, щоб " "намалювати квадрат." #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "Штамп клонування." #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+лівий клік мишкою для встановлення основи, лівий клік для малювання." #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "Виділення чарівною паличкою" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "Вибрати регіон з аналогічним кольром." #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "Прямокутник" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" "За допомогою миші намалюте прямокутник (правою клавіша малює додатковим " "кольром). Затисніть shift, щоб намалювати квадрат." #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Переміщення виділеного" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "Перетягніть виділення мишкою, щоб перемістити контур виділення" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "Градієнт" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Клацніть і перетягуйте, щоб намалювати градієнт від основного кольору до до " "додаткового. Правий клік, щоб зробити навпаки." #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "Лінійний градієнт" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "Лінійний відображений градієнт." #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "Лінійний ромбовидний градієнт" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "Радіальний градієнт" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "Конічний градієнт" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "Режим заливки" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "Суміжні області" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "Глобальна" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "Допустиме відхилення" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Пензлик" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Натисніть ліву клавішу, щоб малювати основним кольром і праву, щоб " "додатковим." #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "Тип" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Олівець" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" "Клацніть лівою клавішею для малювання довільних ліній товщиною один піксель " "основним кольором і правою клавішею для використання додаткового кольору." #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "Виділення еліпсом" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" "За допомогою миші намалюйте еліптичне виділення. Затисніть shift, щоб " "намалювати коло." #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "Лінія" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "Гумка" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "Ліва кнопка миші стирає до прозорого, права стирає кольором фону. " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "Панорама" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "Клацніть і перетягуйте для навігації по зображенню" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Вибір кольору" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Клацніть лівою клавішею миші для вибору основного кольору. Клацніть правою " "клавішею миші, щоб вибрати додатковий колір." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Після вибору" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Не переключайте інструмент" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Переключитися до попереднього інструменту" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Переключитися до наступного інструменту" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "Округлений прямокутник" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "Радіус" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "Зменшити радіус кутів прямокутника" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "Збільшити радіус кутів прямокутника" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Перемістити вибрані пікселі" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "Перемістіть мишкою виділення, щоб перемістити виділену область." #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "Перефарбування" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "Лівий клік змінює додатковий колір на основний." #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Заливка" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Лівий клік, щоб залити основним кольором і правий клік, щоб залити " "додатковим кольором." #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "Еліпс" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" "За допомогою миші намалюйте еліпс (правою клавішею додатковим кольром). " "Затисніть shift, щоб намалювати коло." #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "Текст" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Лівою клавішею помістіть курсор в потрібне місце і наберіть текст. Текст " "буде основним кольром." #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "Шрифт" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "Напівжирний" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "Курсив" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "Підкреслений" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "Рівняння ліворуч" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "Рівняння на середину" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "Рівняння праворуч" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "Стиль Тексту" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "Нормальний" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "Нормальний та контурний" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "Залити тло" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "Товщина контуру" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "Зменшити товщину контуру" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "Збільшити товщину контуру" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Товщина пензля." #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Зменшити розмір пензля" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Збільшити розмір пензля" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "Стиль заповнення" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Обвести фігуру" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Залити фігуру" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Залити і обвести фігуру" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "Кола" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "Сітка" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "Квадрати" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "Бризки" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Масштабування" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Лівий клік мишкою для збільшення. Правий клік мишкою для зменшення. " "Натисніть і рухайте мишкою, щоб масштабувати по виділеннню." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Виділення лассом" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "За допомогою миші виділіть контур для вибору області." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "Довільна форма" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Про програму" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "…" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_Файл" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Правка" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Вигляд" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "_Малюнок" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Шари" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Кольори" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Ефекти" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "_Вікно" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "Вікна інструментів" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Допомога" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Інструменти" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Палітра" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Документи" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Шари" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Історія" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Приховати" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Прикріпити" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Автоматично приховувати" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прилипаючі" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плаваючі" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "Зробити Скріншот" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "Зробити скріншот із затримкою (в секундах):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Зберегти зміни в зображенні \"{0}\" перед закриттям?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Якщо ви не збережете, всі зміни будуть безповоротно втрачені." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "Закрити без збереження" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "Змінити розмір палітри" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "Новий розмір палітри" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "Вставити як новий шар" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Непрозорість шару" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Перейменувати шар" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Приховати шар" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Показати шар" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Властивості шару" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "Відкрити зображення" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "Файли зображень" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "Всі файли" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "Зберегти зображення" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не підтримує збереження зображень в цьому форматі." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "Помилка" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл з іменем \"{0}\" вже існує. Замінити його?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Файл вже існує в \"{1}\". Заміна призведе до перезапису його змісту." #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Якість JPEG" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "Якість: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Заголовок" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Версія" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Шлях" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Над релізом працювали:" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Попередні розробники" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Aleksandr Chepurnoy https://launchpad.net/~wuron\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Eugene Rozov https://launchpad.net/~eugene-rozov\n" " Fedik https://launchpad.net/~fedikw\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Max_ym https://launchpad.net/~kontact-cat\n" " UaHummer https://launchpad.net/~uahummer\n" " ma$terok https://launchpad.net/~m-shein" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Над перекладом працювали:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Працює на базі Paint.NET" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Використовує деякі іконки з:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Про Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Інформація про версію" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Ліцензія" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Випущено за підтримки МТІ ліцензія X11" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Авторські права" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "розробники Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Ім’я:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Видимий" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Непрозорість:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Зміна розміру полотна" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "У процентному співвідношенні:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Абсолютний розмір" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Ширина:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "пікселів" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Висота:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Зберігати пропорції" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Прив’язка:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Змінити розмір зображення" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Нове зображення" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Розмір нового зображення " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "кількість потоків, що будуть використані при рендерінгу" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "Назва опції" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "Обробити ефекти" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "Незбережених зображень {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "Фон" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "Відкрити зображення" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "Не можу відкрити файл: {0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "Вставити" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "Повернути на 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Відобразити зображення горизонтально" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Відобразити зображення вертикально" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "Повернути на 90° за годинниковою стрілкою" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "Повернути на 90° проти годинникової стрілки" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Відобразити шар горизонтально" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Відобразити шар вертикально" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Завершити пікселі" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Відвідати сайт Pinta" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Звітувати про помилку" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Перекласти цю програму" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Зберегти все" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Закрити все" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Новий..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Новий скріншот..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "Відкрити…" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Відкрити недавні" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Закрити" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Зберегти" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "Зберегти як…" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "Друк" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Вихід" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Новий" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Відкрити" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "Додати новий шар" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "Видалити шар" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "Копіювати шар" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "Обєднати шар з попереднім" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "Імпортувати з файлу ..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "Перевернути по горизонталі" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "Перевернути по вертикалі" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "Перемістити шар вище" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "Перемістити шар нижче" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "Властивості шару..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "Імпортувати з файлу" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "Обрізати по виділеному" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "Змінити розмір зображення..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "Об'єднати" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "Збільшити" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "Зменшити" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "Найкраще заповнення" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "По розміру виділення" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "Нормальний розмір" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "Панель інструментів" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "Піксельна решітка" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "Лінійки" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "Пікселів" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "Дюйми" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "Сантиметри" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "На весь екран" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "Одиниці виміру" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "Вікно" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "Відмінити" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "Відновити" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "Вирізати" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "Копіювати" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "Вставити як нове зображення" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "Вилучити вибране" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "Заповнити виділення" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "Інвертувати виділення" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "Виділити все" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "Зняти виділення" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "Початкові налаштування" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "Встановіть число кольорів" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "Видалити виділення" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "Зняти виділення" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "Відкрити палітру" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "Файли палітр (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "Не вдалося відкрити файл палітри: {0}.\n" "Будь-ласка, переконайтеся, що ви намагаєтеся відкрити дійсну палітру від " "GIMP або Paint.NET." #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "Зберегти Палітру" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Палітра Paint.NET (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "Палітра GIMP (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "Шар" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "копія" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "Інструменти" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "Гарячі клавіши" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "Нормальне змішування" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "Перезаписати" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "Увімкнути згладжування" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "Вимкнути згладжування" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "Зображення {0}_({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "Основні" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "Кількість" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "Кут" #: CloudsEffect dialog msgid "Antialias" msgstr "Згладжування" #: GlowEffect dialog msgid "Blend Mode" msgstr "Режим змішування" #: OilPaintingEffect dialog msgid "Brightness" msgstr "Яскравість" #: PixelateData dialog msgid "Brush Size" msgstr "Розмір пензля" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "Розмір комірки" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "Зміщення центру" #: OilPaintingEffect dialog msgid "Centered" msgstr "Рівняння на середину" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "Грубість" #: AddNoiseEffect dialog msgid "Color Range" msgstr "Діапазон кольорів" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "Насиченість кольору" #: GlowEffect dialog msgid "Coloring" msgstr "Забарвлення" #: AddNoiseEffect dialog msgid "Contrast" msgstr "Контрастність" #: FragmentEffect dialog msgid "Coverage" msgstr "Освітлення" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "Відстань" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "Поведінка краю" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "Фактор" #: InkSketchEffect dialog msgid "Fragments" msgstr "Фрагменти" #: TileEffect dialog msgid "Ink Outline" msgstr "Обводка чорнилом" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "Інтенсивність" #: RadialBlurEffect dialog msgid "Lighting" msgstr "Освітлення" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "Зміщення" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "Розмір олівця" #: CloudsEffect dialog msgid "Percentile" msgstr "Процент" #: RadialBlurEffect dialog msgid "Power" msgstr "Потужність" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "Якість" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "Обертання" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "Відсоток насиченості" #: CloudsEffect dialog msgid "Scale" msgstr "Масштаб" #: SoftenPortraitData dialog msgid "Seed" msgstr "Зернистість" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "Пом'якшення" #: OutlineEffect dialog msgid "Strength" msgstr "Ефективність" #: TileEffect dialog msgid "Thickness" msgstr "Товщина" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "Розмір фрагментів мозаїки" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "Теплота" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Використовуйте низьку якість для попереднього перегляду, зменшених зображень " "і малих кутів. Використовуйте високу якість для остаточного варіанту, " "великих зображень і великих кутів." #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Підказка: Для досягнення кращих результатів, спершу виділіть кожно око " "інструментами виділення." #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "Редактор зображень" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "Проста програма для створення та редагування зображень" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Редактор зображень Pinta" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "Зображення" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "Неможливо зберегти файл, доступний тільки для читання" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/vi.po0000664000175000017500000012756411747026475015254 0ustar00cameroncameron00000000000000# Vietnamese translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2011-09-19 22:04+0000\n" "Last-Translator: Cameron White \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "nhãn1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "nhãn" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "Độ nhiễu ngẫu nhiên" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "Bút vẽ" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "Bút chì" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "Chọn màu" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Nhấn phím trái chuột để chọn màu cơ sở; phím phải chuột để chọn màu thứ cấp." #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "Sau khi lựa chọn" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "Không đổi công cụ" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "Chuyển về công cụ trước đó" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "Chuyển về công cụ bút chì" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "Dịch chuyển các điểm ảnh được chọn" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "Bề rộng nét chổi vẽ" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "Giảm cỡ chổi vẽ" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "Tăng cỡ chổi vẽ" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "Vẽ biên ngoài của hình" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "Tô đầy hình" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "Tô đầy và vẽ biên ngoài của hình" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "Thu phóng" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Nhấp chuột trái để phóng to, chuột phải để thu nhỏ. Nhấp chuột và kéo để " "phóng to phần được chọn." #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "Chọn theo chế độ thòng lọng" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "Nhấp chuột và kéo để vẽ đường biên ngoài cho vùng được chọn." #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "Giới thiệu" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "" #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "_File" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "_Sửa" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "_Xem" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "Ả_nh" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "_Lớp" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "_Chỉnh" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "_Hiệu ứng" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "Cử_a sổ" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "_Trợ giúp" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "Công cụ" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "Bảng màu" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "Tài liệu" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "Lớp" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "Quá trình" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "Ẩn" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "Neo" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "Tự động ẩn" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Neo được" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Trôi" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "Nếu bạn không lưu lại, tất cả những thay đổi sẽ vĩnh viễn mất." #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "Độ mờ đục của lớp" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "Đổi tên lớp" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "Ẩn lớp" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "Hiện lớp" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "Các thuộc tính lớp" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "" #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tựa đề" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "Phiên bản" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Đường dẫn" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "Những người đóng góp vào bản phát hành này" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "Những người đóng góp trước đây" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Nguyen Quang Chien https://launchpad.net/~nguyenquangchien" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "Dịch bởi:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "Dựa trên chương trình Paint.NET:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "Dùng một số hình biểu tượng từ:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "Giới thiệu Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "Thông tin về phiên bản" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "Giấy phép" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "Phát hành theo giấy phép MIT X11." #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "Bản quyền" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "bởi nhóm đóng góp cho Pinta" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "Tên:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "Có thể thấy được" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "Độ đục:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "Chỉnh cỡ nền vẽ" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Theo phần trăm:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Theo kích thước tuyệt đối:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "Bề rộng:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "điểm ảnh" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "Độ cao:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Duy trì tỷ lệ hình thể" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Neo :" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "Chỉnh cỡ hình" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "Hình mới" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "Kích cỡ hình mới " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "số tuyến được dùng để lên hình" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "" #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "" #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "" #: CloudsEffect dialog msgid "Antialias" msgstr "" #: GlowEffect dialog msgid "Blend Mode" msgstr "" #: OilPaintingEffect dialog msgid "Brightness" msgstr "" #: PixelateData dialog msgid "Brush Size" msgstr "" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "" #: OilPaintingEffect dialog msgid "Centered" msgstr "" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "" #: AddNoiseEffect dialog msgid "Color Range" msgstr "" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "" #: GlowEffect dialog msgid "Coloring" msgstr "" #: AddNoiseEffect dialog msgid "Contrast" msgstr "" #: FragmentEffect dialog msgid "Coverage" msgstr "" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "" #: InkSketchEffect dialog msgid "Fragments" msgstr "" #: TileEffect dialog msgid "Ink Outline" msgstr "" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "" #: RadialBlurEffect dialog msgid "Lighting" msgstr "" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "" #: CloudsEffect dialog msgid "Percentile" msgstr "" #: RadialBlurEffect dialog msgid "Power" msgstr "" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "" #: CloudsEffect dialog msgid "Scale" msgstr "" #: SoftenPortraitData dialog msgid "Seed" msgstr "" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "" #: OutlineEffect dialog msgid "Strength" msgstr "" #: TileEffect dialog msgid "Thickness" msgstr "" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: pinta.desktop.in msgid "Pinta" msgstr "" #: pinta.desktop.in msgid "Image Editor" msgstr "" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/zh_CN.po0000664000175000017500000013773211747026475015635 0ustar00cameroncameron00000000000000# Chinese (Simplified) translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-04-10 13:46+0000\n" "Last-Translator: 邵开来 \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "自动调整色阶" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "反色" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "色阶" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "复古褐色" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "海报效果" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "黑白" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "曲线" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "亮度 / 对比度" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "色相 / 饱和度" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "色阶调整" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "输入直方图" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "Input" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "输入或输出" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "输出直方图" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "自动" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "重置" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "红色" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "绿色" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "蓝色" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "已链接" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "转换图" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "发光度" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "Copy text \t (256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "红色 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "蓝色 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "提示:右击以移除控制点。" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "减少噪声" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "噪声" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "碎片" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "模糊" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "云团" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "渲染" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "失去焦点" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "去除红眼" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "照片" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "曼德勃罗分形" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "发光" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "边缘探测" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "风格化" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "辐射模糊" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "磨砂玻璃" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "扭曲" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "油画" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "艺术效果" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "朱莉娅分形" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "软化肖像" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "醒目" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "水墨素描" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "中值" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "浮雕" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "高斯模糊" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "锐化" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "添加噪声" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "瓷砖效果" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "像素化" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "运动模糊" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "极性反转" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "凸起" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "缩放模糊" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "铅笔画" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "轮廓" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "扭曲" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "标签1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "标签" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "随机杂色" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "变换" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "选取主颜色" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "选取副颜色" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "选取调色板颜色" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "矩形选择" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "点击拖动以绘制一个矩形选区。按住 shift 键约束为正方形。" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "仿制图章" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "按住 Ctrl 键点击设置源点,然后点击进行涂抹。" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "魔术棒选择" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "点击选取相似颜色的区域。" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "矩形" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "点击拖动以绘制一个矩形(右击使用副颜色)。按住 shift 键约束为正方形。" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "移动选区" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "拖动选区以移动选区的边框。" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "渐变" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "点击拖动以绘制一个从主颜色到副颜色的渐变。右击逆转颜色。" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "线性渐变" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "双线性渐变" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "菱形渐变" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "辐射渐变" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "锥形渐变" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "填充模式" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "区域" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "整个区域" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "允许偏差量" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "画笔" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "左击使用主颜色绘制,右击使用副颜色绘制。" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "类型" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "铅笔" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "左击画出任意形状,线条宽度 1 像素,使用主颜色,右击使用副颜色。" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "椭圆形选择" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "点击拖动以绘制椭圆形选取。按住 shift 键限制为圆形。" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "线条" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "左键点击为用第一候选的颜色绘制,右键点击为用第二候选的颜色绘制,按住Shift键可以咬住边角。" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "橡皮擦" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "左键点击为擦除至透明,右键点击为用第二候选颜色擦除 " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "移动" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "点击拖动以浏览图片。" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "颜色拾取器" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "左击设置主颜色,右击设置副颜色。" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "选择后" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "不要切换工具" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "切换到上一个工具" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "切换到铅笔工具" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "圆角矩形。" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "半径" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "减小矩形的圆角半径" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "增大矩形的圆角半径" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "移动选择的像素" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "拖动选区移动选择的内容。" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "重新着色" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "左击用主颜色取代副颜色。" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "油漆桶" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "左击用主颜色填充一个区域,右击使用副颜色填充。" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "椭圆" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "点击拖动以绘制一个椭圆(右击使用副颜色)。按住 shift 键约束为圆形。" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "文字" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "左击放置光标,然后键入所需的文本。文本颜色为主颜色。" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "字体" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "粗体" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "斜体" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "下划线" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "左对齐" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "居中对齐" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "右对齐" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "文本样式" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "普通" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "正常与大纲" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "填充背景" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "描边宽度" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "减少描边宽度" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "增加描边宽度" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "笔刷宽度" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "减小笔刷尺寸" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "增大笔刷尺寸" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "填充形式" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "边框" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "填充" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "填充和边框" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "方形" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "网格" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "方块" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "泼洒" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "缩放" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "左击放大,右击缩小。点击并拖动以缩放选区。" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "套索选择" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "点击拖动以绘制选取的轮廓" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "自由形狀" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "关于" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "文件(_F)" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "编辑(_E)" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "视图(_V)" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "图像(_I)" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "图层(_L)" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "调整(_A)" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "效果(_C)" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "窗口(_W)" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "工具窗口" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "帮助(_H)" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "工具" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "调色板" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "文档" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "图层" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "历史" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "隐藏" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "停靠" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "自动隐藏" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "可停靠" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "浮动" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "屏幕截图" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "截图前延迟(秒):" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "在关闭前将修改保存到图像“{0}”?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "如果您不保存,所有修改 将会永久丢失。" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "不保存并关闭" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "调整调色板大小" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "调色板大小:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "粘贴到新图层" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "图层透明度" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "重命名图层" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "隐藏图层" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "显示图层" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "图层属性" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "打开图像文件" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "图像文件" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "全部文件" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "保存图像文件" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta 不支持储存这种类型的图片。" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "错误" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "名为“{0}”的文件已经存在。您想要覆盖吗?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "文件在“{1}”中已存在。替换将会覆盖它的内容。" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 质量" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "质量: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "标题" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "版本" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "路径" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "这个版本的贡献者" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "过去的贡献者" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Hello World! https://launchpad.net/~liuwanfang86\n" " Wylmer Wang https://launchpad.net/~wantinghard\n" " Xhacker Liu https://launchpad.net/~xhacker\n" " 邵开来 https://launchpad.net/~kailai.shao" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "翻译者:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "基于 Paint.NET 的工作:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "使用了一些图标:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "关于 Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "版本信息" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "许可" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "以 MIT X11 许可证发行" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "版权" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "由 Pinta 贡献者" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "名称:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "可见" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "透明度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "调整画布大小" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "按百分比:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "按绝对尺寸:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "宽度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "像素" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "高度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "保持宽高比" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "锚点:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "缩放图像" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "新建图像" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "新图像尺寸 " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "渲染使用的线程数" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "选项名" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "渲染效果" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "未保存的图片 {0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "背景" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "打开图像" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "无法打开文件:{0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "粘贴" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "旋转180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "水平翻转图片" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "垂直翻转图片" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "顺时针旋转90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "逆时针旋转90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "水平翻转图层" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "垂直翻转图层" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "完成像素" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta 网站" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "报告一个错误" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "翻译这个应用程序" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "保存全部" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "关闭全部" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新建..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "新截图..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "打开..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "打开最近的" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "关闭" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "保存" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "另存为..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "打印" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "退出" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "新建" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "打开" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "添加新图层" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "删除图层" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "复制图层" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "向下合并图层" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "从文件导入..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "水平翻转" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "垂直翻转" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "旋转 / 缩放层" #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "升高图层" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "降低图层" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "图层属性..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "从文件导入" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "裁剪到选择部分" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "自动裁剪" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "重设图片尺寸" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "重设画布尺寸" #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "平面化" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "放大" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "缩小" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "最适大小" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "缩放至选择部分" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "普通大小" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "工具栏" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "像素网格" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "标尺" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "像素" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "英寸" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "厘米" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "全屏" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "尺度单位" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "窗口" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "撤销" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "重做" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "剪切" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "复制" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "粘贴到新图像" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "删除选区" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "填充选区" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "反向选择" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "全选" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "全部不选" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "重置到默认" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "设置颜色数量" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "擦除选区" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "取消选择" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "打开调色板文件" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "调色板文件 (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "无法打开调色板文件:{0}。\n" "请确定您在尝试打开一个合法的 GIMP 或 Paint.NET 调色板。" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "保存调色板文件" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET 调色板 (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP 调色板 (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "图层" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "复制" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "工具" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "快捷键" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "一般混合" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "覆盖" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "开启抗锯齿" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "关闭抗锯齿" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 图片 ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "常规" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "数量" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "角度" #: CloudsEffect dialog msgid "Antialias" msgstr "抗锯齿" #: GlowEffect dialog msgid "Blend Mode" msgstr "混合模式" #: OilPaintingEffect dialog msgid "Brightness" msgstr "亮度" #: PixelateData dialog msgid "Brush Size" msgstr "笔刷尺寸" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "格子大小" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "中心偏移" #: OilPaintingEffect dialog msgid "Centered" msgstr "居中对齐" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "粗糙度" #: AddNoiseEffect dialog msgid "Color Range" msgstr "颜色范围" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "颜色饱和度" #: GlowEffect dialog msgid "Coloring" msgstr "着色" #: AddNoiseEffect dialog msgid "Contrast" msgstr "对比度" #: FragmentEffect dialog msgid "Coverage" msgstr "覆盖范围" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "距离" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "边缘行为" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "系数" #: InkSketchEffect dialog msgid "Fragments" msgstr "碎片" #: TileEffect dialog msgid "Ink Outline" msgstr "墨迹轮廓" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "亮度" #: RadialBlurEffect dialog msgid "Lighting" msgstr "光线" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "偏移量" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "铅笔头大小" #: CloudsEffect dialog msgid "Percentile" msgstr "百分比" #: RadialBlurEffect dialog msgid "Power" msgstr "强度" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "品质" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "旋转" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "饱和度百分比" #: CloudsEffect dialog msgid "Scale" msgstr "缩放" #: SoftenPortraitData dialog msgid "Seed" msgstr "种子" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "柔和" #: OutlineEffect dialog msgid "Strength" msgstr "强度" #: TileEffect dialog msgid "Thickness" msgstr "线宽" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "方块大小" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "暖度" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "使用低质量以用来预览或生成小图片、小角度图像,使用高质量以生成最终图片或大图片、大角度图像。" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "提示:为了获得最好的效果,先使用选择工具选择每只眼睛。" #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "图片编辑器" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "简单创建并编辑图片" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta 图片编辑器" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "图片" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "不能保存只读文件" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "被粘贴的图片大于画布大小,您希望怎么做?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "扩大画布" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "不要扩大画布" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "旋转 / 缩放层" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/zh_TW.po0000664000175000017500000014122311747026475015655 0ustar00cameroncameron00000000000000# Chinese (Traditional) translation for pinta # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-02-28 17:08-0600\n" "PO-Revision-Date: 2012-02-21 18:30+0000\n" "Last-Translator: taijuin lee \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-04-28 16:20+0000\n" "X-Generator: Launchpad (build 15149)\n" #: Pinta.Effects/Adjustments/AutoLevelEffect.cs:26 msgid "Auto Level" msgstr "自動調整色階" #: Pinta.Effects/Adjustments/InvertColorsEffect.cs:26 msgid "Invert Colors" msgstr "反轉顏色和亮度" #: Pinta.Effects/Adjustments/LevelsEffect.cs:24 msgid "Levels" msgstr "色階" #: Pinta.Effects/Adjustments/SepiaEffect.cs:27 msgid "Sepia" msgstr "復古褐色" #: Pinta.Effects/Adjustments/PosterizeEffect.cs:26 #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:26 msgid "Posterize" msgstr "色調分離" #: Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:26 msgid "Black and White" msgstr "去除色彩" #: Pinta.Effects/Adjustments/CurvesEffect.cs:28 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Curves" msgstr "曲線" #: Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:30 msgid "Brightness / Contrast" msgstr "亮度/對比" #: Pinta.Effects/Adjustments/HueSaturationEffect.cs:27 msgid "Hue / Saturation" msgstr "色相 / 飽和度" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:103 msgid "Levels Adjustment" msgstr "色階調整" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:130 msgid "Input Histogram" msgstr "輸入直方圖" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:172 msgid "Input" msgstr "輸入" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:285 msgid "Output" msgstr "輸出" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:413 msgid "Output Histogram" msgstr "輸出直方圖" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:456 msgid "Auto" msgstr "自動" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:468 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:173 msgid "Reset" msgstr "重設" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:478 msgid "Red" msgstr "紅色" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:489 #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:142 msgid "Green" msgstr "綠色" #: Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:528 msgid "Blue" msgstr "藍色" #: Pinta.Effects/gtk-gui/Pinta.Effects.PosterizeDialog.cs:93 msgid "Linked" msgstr "連鎖變更" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:62 msgid "Transfer Map" msgstr "轉換圖" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:85 msgid "RGB" msgstr "RGB" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:86 msgid "Luminosity" msgstr "亮度" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:100 msgid "(256, 256)" msgstr "(256, 256)" #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:131 msgid "Red " msgstr "紅色 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:153 msgid "Blue " msgstr "藍色 " #: Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:187 msgid "Tip: Right-click to remove control points." msgstr "提示:按右鍵以刪除控制點。" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:29 msgid "Reduce Noise" msgstr "減少雜訊" #: Pinta.Effects/Effects/ReduceNoiseEffect.cs:37 #: Pinta.Effects/Effects/MedianEffect.cs:37 #: Pinta.Effects/Effects/AddNoiseEffect.cs:38 msgid "Noise" msgstr "雜訊" #: Pinta.Effects/Effects/FragmentEffect.cs:26 msgid "Fragment" msgstr "碎片" #: Pinta.Effects/Effects/FragmentEffect.cs:34 #: Pinta.Effects/Effects/UnfocusEffect.cs:36 #: Pinta.Effects/Effects/RadialBlurEffect.cs:34 #: Pinta.Effects/Effects/GaussianBlurEffect.cs:34 #: Pinta.Effects/Effects/MotionBlurEffect.cs:34 #: Pinta.Effects/Effects/ZoomBlurEffect.cs:34 msgid "Blurs" msgstr "模糊" #: Pinta.Effects/Effects/CloudsEffect.cs:30 msgid "Clouds" msgstr "雲" #: Pinta.Effects/Effects/CloudsEffect.cs:38 #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:34 #: Pinta.Effects/Effects/JuliaFractalEffect.cs:34 msgid "Render" msgstr "渲染" #: Pinta.Effects/Effects/UnfocusEffect.cs:28 msgid "Unfocus" msgstr "失去聚焦" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:29 msgid "Red Eye Removal" msgstr "去除紅眼" #: Pinta.Effects/Effects/RedEyeRemoveEffect.cs:37 #: Pinta.Effects/Effects/GlowEffect.cs:39 #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:67 #: Pinta.Effects/Effects/SharpenEffect.cs:34 msgid "Photo" msgstr "照片" #: Pinta.Effects/Effects/MandelbrotFractalEffect.cs:26 msgid "Mandelbrot Fractal" msgstr "曼德勃羅不規則碎片形" #: Pinta.Effects/Effects/GlowEffect.cs:31 msgid "Glow" msgstr "美白效果" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:29 msgid "Edge Detect" msgstr "邊緣偵測" #: Pinta.Effects/Effects/EdgeDetectEffect.cs:37 #: Pinta.Effects/Effects/ReliefEffect.cs:33 #: Pinta.Effects/Effects/EmbossEffect.cs:34 #: Pinta.Effects/Effects/OutlineEffect.cs:37 msgid "Stylize" msgstr "風格化" #: Pinta.Effects/Effects/RadialBlurEffect.cs:26 msgid "Radial Blur" msgstr "放射狀模糊" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:26 msgid "Frosted Glass" msgstr "磨砂玻璃" #: Pinta.Effects/Effects/FrostedGlassEffect.cs:34 #: Pinta.Effects/Effects/TileEffect.cs:34 #: Pinta.Effects/Effects/PixelateEffect.cs:38 #: Pinta.Effects/Effects/PolarInversionEffect.cs:39 #: Pinta.Effects/Effects/BulgeEffect.cs:34 #: Pinta.Effects/Effects/TwistEffect.cs:34 msgid "Distort" msgstr "扭曲" #: Pinta.Effects/Effects/OilPaintingEffect.cs:26 msgid "Oil Painting" msgstr "油畫" #: Pinta.Effects/Effects/OilPaintingEffect.cs:34 #: Pinta.Effects/Effects/InkSketchEffect.cs:42 #: Pinta.Effects/Effects/PencilSketchEffect.cs:41 msgid "Artistic" msgstr "藝術效果" #: Pinta.Effects/Effects/JuliaFractalEffect.cs:26 msgid "Julia Fractal" msgstr "茱莉亞不規則碎片形" #: Pinta.Effects/Effects/SoftenPortraitEffect.cs:59 msgid "Soften Portrait" msgstr "柔化處理" #: Pinta.Effects/Effects/ReliefEffect.cs:45 msgid "Relief" msgstr "醒目效果" #: Pinta.Effects/Effects/InkSketchEffect.cs:34 msgid "Ink Sketch" msgstr "水墨素描" #: Pinta.Effects/Effects/MedianEffect.cs:29 msgid "Median" msgstr "中間值" #: Pinta.Effects/Effects/EmbossEffect.cs:26 msgid "Emboss" msgstr "浮雕" #: Pinta.Effects/Effects/GaussianBlurEffect.cs:26 msgid "Gaussian Blur" msgstr "高斯模糊" #: Pinta.Effects/Effects/SharpenEffect.cs:26 msgid "Sharpen" msgstr "銳利化" #: Pinta.Effects/Effects/AddNoiseEffect.cs:30 msgid "Add Noise" msgstr "加入雜訊" #: Pinta.Effects/Effects/TileEffect.cs:26 msgid "Tile Reflection" msgstr "瓷磚效果" #: Pinta.Effects/Effects/PixelateEffect.cs:26 msgid "Pixelate" msgstr "像素化" #: Pinta.Effects/Effects/MotionBlurEffect.cs:26 msgid "Motion Blur" msgstr "動感模糊" #: Pinta.Effects/Effects/PolarInversionEffect.cs:26 msgid "Polar Inversion" msgstr "極性反轉" #: Pinta.Effects/Effects/BulgeEffect.cs:26 msgid "Bulge" msgstr "凸起" #: Pinta.Effects/Effects/ZoomBlurEffect.cs:26 msgid "Zoom Blur" msgstr "變焦模糊" #: Pinta.Effects/Effects/PencilSketchEffect.cs:33 msgid "Pencil Sketch" msgstr "鉛筆素描" #: Pinta.Effects/Effects/OutlineEffect.cs:29 #: Pinta.Tools/TextTool/TextTool.cs:171 msgid "Outline" msgstr "邊框" #: Pinta.Effects/Effects/TwistEffect.cs:26 msgid "Twist" msgstr "扭曲" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs:52 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs:48 msgid "label1" msgstr "標籤1" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs:42 #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs:58 msgid "label" msgstr "標籤" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:38 msgid "Random Noise" msgstr "不規則雜訊" #: Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "變換" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:75 msgid "Choose Primary Color" msgstr "選擇主要顏色" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:89 msgid "Choose Secondary Color" msgstr "選擇第二顏色" #: Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:112 msgid "Choose Palette Color" msgstr "選擇調色盤顏色" #: Pinta.Tools/RectangleSelectTool.cs:38 msgid "Rectangle Select" msgstr "矩形選取工具" #: Pinta.Tools/RectangleSelectTool.cs:44 msgid "" "Click and drag to draw a rectangular selection. Hold shift to constrain to a " "square." msgstr "點選並拖動畫出一個矩形選取區域。按住\"Shift\"鍵以限制畫出來的是正方形。" #: Pinta.Tools/CloneStampTool.cs:43 msgid "Clone Stamp" msgstr "橡皮圖章" #: Pinta.Tools/CloneStampTool.cs:48 msgid "Ctrl-left click to set origin, left click to paint." msgstr "按著左邊的 \"ctrl鍵\",然後用滑鼠點選要複製像素的中心點!然後放開鍵盤,按滑鼠左鍵當筆刷塗抹。" #: Pinta.Tools/MagicWandTool.cs:46 msgid "Magic Wand Select" msgstr "魔術棒選取工具" #: Pinta.Tools/MagicWandTool.cs:54 msgid "Click to select region of similar color." msgstr "點擊以選取一相同顏色的區域。" #: Pinta.Tools/RectangleTool.cs:38 msgid "Rectangle" msgstr "矩形" #: Pinta.Tools/RectangleTool.cs:44 msgid "" "Click and drag to draw a rectangle (right click for secondary color). Hold " "shift to constrain to a square." msgstr "按住滑鼠左鍵並拖動畫出一矩形(若用滑鼠右鍵則使用的是第二顏色)。按住\"Shift\"鍵以限制畫出來的是正方形。" #: Pinta.Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "移動選取區域" #: Pinta.Tools/MoveSelectionTool.cs:48 msgid "Drag the selection to move selection outline." msgstr "拖動選取區域,以移動選取區域的邊框。" #: Pinta.Tools/GradientTool.cs:56 Pinta.Tools/GradientTool.cs:167 msgid "Gradient" msgstr "漸層" #: Pinta.Tools/GradientTool.cs:64 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "按住滑鼠左鍵並拖動畫出從主要顏色到第二顏色的漸層顏色,按住滑鼠右鍵則相反。" #: Pinta.Tools/GradientTool.cs:174 msgid "Linear Gradient" msgstr "線性漸變填充" #: Pinta.Tools/GradientTool.cs:175 msgid "Linear Reflected Gradient" msgstr "雙線性漸變填充" #: Pinta.Tools/GradientTool.cs:176 msgid "Linear Diamond Gradient" msgstr "鑽石形漸變填充" #: Pinta.Tools/GradientTool.cs:177 msgid "Radial Gradient" msgstr "放射漸變填充" #: Pinta.Tools/GradientTool.cs:178 msgid "Conical Gradient" msgstr "圓錐形漸變填充" #: Pinta.Tools/FloodTool.cs:73 msgid "Flood Mode" msgstr "泛濫模式" #: Pinta.Tools/FloodTool.cs:80 msgid "Contiguous" msgstr "相似顏色的連續區域" #: Pinta.Tools/FloodTool.cs:81 msgid "Global" msgstr "整個選取區域" #: Pinta.Tools/FloodTool.cs:92 Pinta.Tools/RecolorTool.cs:73 msgid "Tolerance" msgstr "容許偏差量" #: Pinta.Tools/PaintBrushTool.cs:41 Pinta/MainWindow.cs:401 msgid "Paintbrush" msgstr "畫筆" #: Pinta.Tools/PaintBrushTool.cs:43 Pinta.Tools/FreeformShapeTool.cs:55 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "畫圖時,按滑鼠左鍵畫出來的顏色是主要顏色,按滑鼠右鍵畫出來的顏色是第二顏色。" #: Pinta.Tools/PaintBrushTool.cs:64 msgid "Type" msgstr "類型" #: Pinta.Tools/PencilTool.cs:48 Pinta.Tools/ColorPickerTool.cs:120 msgid "Pencil" msgstr "鉛筆" #: Pinta.Tools/PencilTool.cs:50 msgid "" "Left click to draw freeform, one-pixel wide lines with the primary color, " "right click to use the secondary color." msgstr "按滑鼠左鍵畫出任意形狀,線條寬為1像素而顏色為主要顏色,按滑鼠右鍵使用第二顏色。" #: Pinta.Tools/EllipseSelectTool.cs:38 msgid "Ellipse Select" msgstr "橢圓形選取工具" #: Pinta.Tools/EllipseSelectTool.cs:44 msgid "" "Click and drag to draw an elliptical selection. Hold shift to constrain to a " "circle." msgstr "按住滑鼠並拖動畫出一個橢圓選取區域。另外,按住\"Shift\"鍵以限制畫出來的是圓形。" #: Pinta.Tools/LineCurveTool.cs:38 msgid "Line" msgstr "直線" #: Pinta.Tools/LineCurveTool.cs:43 msgid "" "Left click to draw with primary color, right click for secondary color. Hold " "Shift key to snap to angles." msgstr "單擊左鍵用主要顏色繪製,單擊右鍵則用次要顏色。按住Shift鍵捕捉角度。" #: Pinta.Tools/EraserTool.cs:45 msgid "Eraser" msgstr "橡皮擦" #: Pinta.Tools/EraserTool.cs:47 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "按滑鼠左鍵擦拭變成透明,按滑鼠右鍵擦拭變成第二顏色。 " #: Pinta.Tools/PanTool.cs:38 msgid "Pan" msgstr "平移" #: Pinta.Tools/PanTool.cs:44 msgid "Click and drag to navigate image." msgstr "按住滑鼠並拖動以瀏覽圖片" #: Pinta.Tools/ColorPickerTool.cs:44 msgid "Color Picker" msgstr "顏色拾取器" #: Pinta.Tools/ColorPickerTool.cs:50 msgid "Left click to set primary color. Right click to set secondary color." msgstr "按滑鼠左鍵設置主要顏色,按滑鼠右鍵設置第二顏色。" #: Pinta.Tools/ColorPickerTool.cs:62 msgid "After select" msgstr "選色之後" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Do not switch tool" msgstr "不要切換工具" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to previous tool" msgstr "切換到上一個工具" #: Pinta.Tools/ColorPickerTool.cs:68 msgid "Switch to Pencil tool" msgstr "切換到鉛筆工具" #: Pinta.Tools/RoundedRectangleTool.cs:44 msgid "Rounded Rectangle" msgstr "圓角矩形" #: Pinta.Tools/RoundedRectangleTool.cs:50 msgid "" "Click and drag to draw a rounded rectangle (right click for secondary " "color). Hold shift to constrain to a square." msgstr "" #: Pinta.Tools/RoundedRectangleTool.cs:83 msgid "Radius" msgstr "半徑" #: Pinta.Tools/RoundedRectangleTool.cs:88 msgid "Decrease rectangle's corner radius" msgstr "減少矩形的圓角半徑" #: Pinta.Tools/RoundedRectangleTool.cs:102 msgid "Increase rectangle's corner radius" msgstr "增加矩形的圓角半徑" #: Pinta.Tools/MoveSelectedTool.cs:42 #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:70 #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:64 #: Pinta.Core/Actions/EditActions.cs:255 msgid "Move Selected Pixels" msgstr "移動選取的像素" #: Pinta.Tools/MoveSelectedTool.cs:48 msgid "Drag the selection to move selected content." msgstr "拖動選取區域,以移動選定內容。" #: Pinta.Tools/RecolorTool.cs:59 msgid "Recolor" msgstr "重新著色" #: Pinta.Tools/RecolorTool.cs:61 msgid "Left click to replace the secondary color with the primary color." msgstr "按滑鼠左鍵,用主要顏色取代第二顏色。" #: Pinta.Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "油漆桶" #: Pinta.Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "點擊滑鼠左鍵,用主要顏色填滿一區域。點擊滑鼠右鍵,則用的是第二顏色。" #: Pinta.Tools/EllipseTool.cs:38 msgid "Ellipse" msgstr "橢圓形" #: Pinta.Tools/EllipseTool.cs:44 msgid "" "Click and drag to draw an ellipse (right click for secondary color). Hold " "shift to constrain to a circle." msgstr "按住滑鼠左鍵並拖動畫出一橢圓(若用滑鼠右鍵則使用的是第二顏色)。按住\"Shift\"鍵以限制畫出來的是圓形。" #: Pinta.Tools/TextTool/TextTool.cs:36 msgid "Text" msgstr "文字" #: Pinta.Tools/TextTool/TextTool.cs:42 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "點擊滑鼠左鍵,輸入想要的文字。(文字顏色是主要顏色!)" #: Pinta.Tools/TextTool/TextTool.cs:77 msgid "Font" msgstr "字型" #: Pinta.Tools/TextTool/TextTool.cs:112 msgid "Bold" msgstr "粗體" #: Pinta.Tools/TextTool/TextTool.cs:119 msgid "Italic" msgstr "斜體" #: Pinta.Tools/TextTool/TextTool.cs:126 msgid "Underline" msgstr "底線" #: Pinta.Tools/TextTool/TextTool.cs:135 msgid "Left Align" msgstr "置左" #: Pinta.Tools/TextTool/TextTool.cs:143 msgid "Center Align" msgstr "置中" #: Pinta.Tools/TextTool/TextTool.cs:150 msgid "Right Align" msgstr "置右" #: Pinta.Tools/TextTool/TextTool.cs:162 msgid "Text Style" msgstr "文字樣式" #: Pinta.Tools/TextTool/TextTool.cs:169 Pinta.Tools/Brushes/PlainBrush.cs:38 msgid "Normal" msgstr "一般" #: Pinta.Tools/TextTool/TextTool.cs:170 msgid "Normal and Outline" msgstr "一般及邊框" #: Pinta.Tools/TextTool/TextTool.cs:174 msgid "Fill Background" msgstr "填充背景" #: Pinta.Tools/TextTool/TextTool.cs:179 msgid "Outline width" msgstr "邊框寬度" #: Pinta.Tools/TextTool/TextTool.cs:184 msgid "Decrease outline size" msgstr "減小邊框大小" #: Pinta.Tools/TextTool/TextTool.cs:201 msgid "Increase outline size" msgstr "增大邊框大小" #: Pinta.Tools/ShapeTool.cs:99 Pinta.Tools/BaseBrushTool.cs:70 msgid "Brush width" msgstr "筆刷寬度" #: Pinta.Tools/ShapeTool.cs:104 Pinta.Tools/BaseBrushTool.cs:75 msgid "Decrease brush size" msgstr "減小筆刷大小" #: Pinta.Tools/ShapeTool.cs:118 Pinta.Tools/BaseBrushTool.cs:89 msgid "Increase brush size" msgstr "增大筆刷" #: Pinta.Tools/ShapeTool.cs:131 Pinta.Tools/FreeformShapeTool.cs:71 msgid "Fill Style" msgstr "填充形式" #: Pinta.Tools/ShapeTool.cs:138 Pinta.Tools/FreeformShapeTool.cs:78 msgid "Outline Shape" msgstr "邊框" #: Pinta.Tools/ShapeTool.cs:139 Pinta.Tools/FreeformShapeTool.cs:79 msgid "Fill Shape" msgstr "填充" #: Pinta.Tools/ShapeTool.cs:140 Pinta.Tools/FreeformShapeTool.cs:80 msgid "Fill and Outline Shape" msgstr "填充和邊框" #: Pinta.Tools/Brushes/CircleBrush.cs:38 msgid "Circles" msgstr "圓圈" #: Pinta.Tools/Brushes/GridBrush.cs:38 msgid "Grid" msgstr "網格" #: Pinta.Tools/Brushes/SquaresBrush.cs:40 msgid "Squares" msgstr "方塊" #: Pinta.Tools/Brushes/SplatterBrush.cs:38 msgid "Splatter" msgstr "噴灑" #: Pinta.Tools/ZoomTool.cs:49 msgid "Zoom" msgstr "縮放" #: Pinta.Tools/ZoomTool.cs:55 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "按滑鼠左鍵以放大,按滑鼠右鍵以縮小。另外,可以用滑鼠左鍵選取一個區域來放大。" #: Pinta.Tools/LassoSelectTool.cs:45 msgid "Lasso Select" msgstr "自由選取工具" #: Pinta.Tools/LassoSelectTool.cs:47 msgid "Click and drag to draw the outline for a selection area." msgstr "按住滑鼠並拖動畫出選取區域的邊框" #: Pinta.Tools/FreeformShapeTool.cs:53 msgid "Freeform Shape" msgstr "自由形態形狀" #: Pinta/MainWindow.cs:146 Pinta.Core/Actions/HelpActions.cs:53 msgid "About" msgstr "關於" #: Pinta/MainWindow.cs:371 Pinta/MainWindow.cs:387 msgid "..." msgstr "..." #: Pinta/MainWindow.cs:456 msgid "_File" msgstr "檔案(_F)" #: Pinta/MainWindow.cs:457 msgid "_Edit" msgstr "編輯(_E)" #: Pinta/MainWindow.cs:459 msgid "_View" msgstr "檢視(_V)" #: Pinta/MainWindow.cs:462 msgid "_Image" msgstr "圖片(_I)" #: Pinta/MainWindow.cs:463 msgid "_Layers" msgstr "圖層(_L)" #: Pinta/MainWindow.cs:464 msgid "_Adjustments" msgstr "調整(_A)" #: Pinta/MainWindow.cs:465 msgid "Effe_cts" msgstr "效果(_C)" #: Pinta/MainWindow.cs:467 msgid "_Window" msgstr "視窗(_W)" #: Pinta/MainWindow.cs:471 msgid "Tool Windows" msgstr "工具視窗" #: Pinta/MainWindow.cs:475 msgid "_Help" msgstr "說明(_H)" #: Pinta/MainWindow.cs:557 Pinta/MainWindow.cs:563 msgid "Tools" msgstr "工具" #: Pinta/MainWindow.cs:571 Pinta/MainWindow.cs:578 #: Pinta.Core/Actions/EditActions.cs:121 msgid "Palette" msgstr "調色盤" #: Pinta/MainWindow.cs:588 msgid "Documents" msgstr "文件" #: Pinta/MainWindow.cs:638 Pinta/MainWindow.cs:649 msgid "Layers" msgstr "圖層" #: Pinta/MainWindow.cs:658 Pinta/MainWindow.cs:665 msgid "History" msgstr "步驟記錄" #: Pinta/DockLibrary/DockItemContainer.cs:90 Pinta/DockLibrary/DockItem.cs:477 msgid "Hide" msgstr "隱藏" #: Pinta/DockLibrary/DockItemContainer.cs:190 msgid "Dock" msgstr "停駐" #: Pinta/DockLibrary/DockItemContainer.cs:194 #: Pinta/DockLibrary/DockItem.cs:502 msgid "Auto Hide" msgstr "自動隱藏" #: Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "停駐式" #: Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "浮動式" #: Pinta/DialogHandlers.cs:109 msgid "Take Screenshot" msgstr "拍下螢幕擷圖" #: Pinta/DialogHandlers.cs:110 msgid "Delay before taking a screenshot (seconds):" msgstr "在多少秒後,拍下螢幕擷圖:" #: Pinta/DialogHandlers.cs:158 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "在關閉之前,儲存變更到圖片檔 \"{0}\" 中?" #: Pinta/DialogHandlers.cs:159 msgid "If you don't save, all changes will be permanently lost." msgstr "如果不儲存,所有的變更將會永久地遺失。" #: Pinta/DialogHandlers.cs:166 msgid "Close without saving" msgstr "關閉而不儲存" #: Pinta/DialogHandlers.cs:193 msgid "Resize Palette" msgstr "調整調色盤大小" #: Pinta/DialogHandlers.cs:194 msgid "New palette size:" msgstr "新調色盤大小:" #: Pinta/DialogHandlers.cs:223 Pinta.Core/Actions/EditActions.cs:70 msgid "Paste Into New Layer" msgstr "貼到新圖層" #: Pinta/DialogHandlers.cs:320 msgid "Layer Opacity" msgstr "圖層不透明度" #: Pinta/DialogHandlers.cs:325 msgid "Rename Layer" msgstr "更改圖層名稱" #: Pinta/DialogHandlers.cs:330 msgid "Hide Layer" msgstr "隱藏圖層" #: Pinta/DialogHandlers.cs:330 msgid "Show Layer" msgstr "顯示圖層" #: Pinta/DialogHandlers.cs:335 Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:44 msgid "Layer Properties" msgstr "圖層屬性" #: Pinta/DialogHandlers.cs:415 Pinta.Core/Actions/LayerActions.cs:156 msgid "Open Image File" msgstr "開啟圖片檔" #: Pinta/DialogHandlers.cs:423 msgid "Image files" msgstr "圖片檔案" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:528 #: Pinta/DialogHandlers.cs:427 Pinta.Core/Actions/EditActions.cs:330 msgid "All files" msgstr "所有檔案" #: Pinta/DialogHandlers.cs:514 msgid "Save Image File" msgstr "儲存圖片檔" #: Pinta/DialogHandlers.cs:612 msgid "Pinta does not support saving images in this file format." msgstr "Pinta 不支援儲存這個檔案格式的圖片" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:23 #: Pinta/DialogHandlers.cs:613 Pinta.Core/Managers/WorkspaceManager.cs:185 #: Pinta.Core/Actions/EditActions.cs:347 msgid "Error" msgstr "錯誤" #: Pinta/DialogHandlers.cs:633 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "檔名 \"{0}\" 已經存在。 你想取代它嗎?" #: Pinta/DialogHandlers.cs:634 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "檔案已經存在於 \"{1}\"。取代它會覆蓋其內容。" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:36 msgid "Image cannot be pasted" msgstr "" #: Pinta/Dialogs/ClipboardEmptyDialog.cs:37 msgid "The clipboard does not contain an image." msgstr "" #: Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 品質" #: Pinta/Dialogs/JpegCompressionDialog.cs:46 msgid "Quality: " msgstr "品質: " #: Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "標題" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:290 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:143 #: Pinta/Dialogs/VersionInformationTabPage.cs:50 #: Pinta/Dialogs/AboutPintaTabPage.cs:41 msgid "Version" msgstr "版本" #: Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "路徑" #: Pinta/Dialogs/AboutDialog.cs:101 msgid "Contributors to this Release" msgstr "本軟體的貢獻人員" #: Pinta/Dialogs/AboutDialog.cs:111 msgid "Previous Contributors" msgstr "過去版本的貢獻人員" #: Pinta/Dialogs/AboutDialog.cs:120 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Eddie https://launchpad.net/~zx4636313\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " taijuin lee https://launchpad.net/~taijuin" #: Pinta/Dialogs/AboutDialog.cs:123 msgid "Translated by:" msgstr "翻譯者:" #: Pinta/Dialogs/AboutDialog.cs:130 msgid "Based on the work of Paint.NET:" msgstr "基於Paint.NET專案:" #: Pinta/Dialogs/AboutDialog.cs:137 msgid "Using some icons from:" msgstr "由此取用一些圖示:" #: Pinta/Dialogs/AboutDialog.cs:249 msgid "About Pinta" msgstr "關於 Pinta" #: Pinta/Dialogs/AboutDialog.cs:267 msgid "Version Info" msgstr "版本信息" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "License" msgstr "授權許可" #: Pinta/Dialogs/AboutPintaTabPage.cs:50 msgid "Released under the MIT X11 License." msgstr "以 MIT X11 許可證發行" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "Copyright" msgstr "版權所有" #: Pinta/Dialogs/AboutPintaTabPage.cs:57 msgid "by Pinta contributors" msgstr "屬於開發Pinta程式的貢獻者" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:62 msgid "Name:" msgstr "名稱:" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:86 msgid "Visible" msgstr "顯示的" #: Pinta/gtk-gui/Pinta.LayerPropertiesDialog.cs:109 msgid "Opacity:" msgstr "不透明度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 #: Pinta.Core/Classes/Document.cs:612 msgid "Resize Canvas" msgstr "調整畫布尺寸" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "按百分比:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "按絕對大小:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:148 msgid "Width:" msgstr "寬度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:189 #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:229 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:160 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:200 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:123 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:135 msgid "pixels" msgstr "像素" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:161 msgid "Height:" msgstr "高度:" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:245 #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "保持長寬比" #: Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "定位點:" #: Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 #: Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 msgid "Resize Image" msgstr "縮放圖片" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:48 #: Pinta.Core/Managers/WorkspaceManager.cs:159 msgid "New Image" msgstr "新增圖片" #: Pinta/gtk-gui/Pinta.NewImageDialog.cs:58 msgid "New Image Size " msgstr "新的圖片尺寸 " #: Pinta/Main.cs:68 msgid "number of threads to use for rendering" msgstr "用於渲染的線程數" #: Pinta/Options.cs:486 msgid "OptionName" msgstr "選項名稱" #: Pinta.Core/Managers/LivePreviewManager.cs:220 msgid "Rendering Effect" msgstr "渲染效果" #: Pinta.Core/Managers/WorkspaceManager.cs:91 #, csharp-format msgid "Unsaved Image {0}" msgstr "未儲存的圖片{0}" #: Pinta.Core/Managers/WorkspaceManager.cs:150 msgid "Background" msgstr "背景" #: Pinta.Core/Managers/WorkspaceManager.cs:177 msgid "Open Image" msgstr "開啟圖片" #: Pinta.Core/Managers/WorkspaceManager.cs:184 #, csharp-format msgid "Could not open file: {0}" msgstr "不能開啟檔案:{0}" #: Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 #: Pinta.Core/Actions/EditActions.cs:69 msgid "Paste" msgstr "貼上" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 #: Pinta.Core/Actions/ImageActions.cs:65 msgid "Rotate 180°" msgstr "旋轉 180°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "水平翻轉圖片" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "垂直翻轉圖片" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 #: Pinta.Core/Actions/ImageActions.cs:63 msgid "Rotate 90° Clockwise" msgstr "順時針旋轉90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 #: Pinta.Core/Actions/ImageActions.cs:64 msgid "Rotate 90° Counter-Clockwise" msgstr "逆時針旋轉90°" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "水平翻轉圖層" #: Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "垂直翻轉圖層" #: Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "完成像素" #: Pinta.Core/Actions/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta 的官方網站" #: Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "瑕疵報告" #: Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "翻譯本軟體" #: Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "儲存所有圖片" #: Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "關閉所有圖片" #: Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新增..." #: Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "新增螢幕擷圖 ..." #: Pinta.Core/Actions/FileActions.cs:56 Pinta.Core/Actions/EditActions.cs:78 msgid "Open..." msgstr "開啟..." #: Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "最近開啟的檔案" #: Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "關閉" #: Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "儲存" #: Pinta.Core/Actions/FileActions.cs:66 Pinta.Core/Actions/EditActions.cs:79 msgid "Save As..." msgstr "另存新檔..." #: Pinta.Core/Actions/FileActions.cs:67 msgid "Print" msgstr "列印" #: Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "結束" #: Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "新增" #: Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "開啟" #: Pinta.Core/Actions/LayerActions.cs:64 #: Pinta.Core/Actions/LayerActions.cs:283 msgid "Add New Layer" msgstr "新增圖層" #: Pinta.Core/Actions/LayerActions.cs:65 #: Pinta.Core/Actions/LayerActions.cs:266 msgid "Delete Layer" msgstr "刪除圖層" #: Pinta.Core/Actions/LayerActions.cs:66 #: Pinta.Core/Actions/LayerActions.cs:257 msgid "Duplicate Layer" msgstr "複製圖層" #: Pinta.Core/Actions/LayerActions.cs:67 #: Pinta.Core/Actions/LayerActions.cs:235 msgid "Merge Layer Down" msgstr "將目前所選圖層及它下一層圖層合併" #: Pinta.Core/Actions/LayerActions.cs:68 msgid "Import from File..." msgstr "匯入圖片檔..." #: Pinta.Core/Actions/LayerActions.cs:69 Pinta.Core/Actions/ImageActions.cs:61 msgid "Flip Horizontal" msgstr "水平翻轉" #: Pinta.Core/Actions/LayerActions.cs:70 Pinta.Core/Actions/ImageActions.cs:62 msgid "Flip Vertical" msgstr "垂直翻轉" #: Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "旋轉/縮放圖層..." #: Pinta.Core/Actions/LayerActions.cs:72 #: Pinta.Core/Actions/LayerActions.cs:213 msgid "Move Layer Up" msgstr "圖層上移" #: Pinta.Core/Actions/LayerActions.cs:73 #: Pinta.Core/Actions/LayerActions.cs:224 msgid "Move Layer Down" msgstr "圖層下移" #: Pinta.Core/Actions/LayerActions.cs:74 msgid "Layer Properties..." msgstr "圖層屬性..." #: Pinta.Core/Actions/LayerActions.cs:179 msgid "Import From File" msgstr "匯入圖片檔" #: Pinta.Core/Actions/ImageActions.cs:58 #: Pinta.Core/Actions/ImageActions.cs:181 msgid "Crop to Selection" msgstr "剪裁出選取區域" #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "自動裁切" #: Pinta.Core/Actions/ImageActions.cs:59 msgid "Resize Image..." msgstr "調整圖片大小..." #: Pinta.Core/Actions/ImageActions.cs:60 msgid "Resize Canvas..." msgstr "調整畫布大小..." #: Pinta.Core/Actions/ImageActions.cs:66 #: Pinta.Core/Actions/ImageActions.cs:127 msgid "Flatten" msgstr "影像平面化" #: Pinta.Core/Actions/ViewActions.cs:63 msgid "Zoom In" msgstr "放大" #: Pinta.Core/Actions/ViewActions.cs:64 msgid "Zoom Out" msgstr "縮小" #: Pinta.Core/Actions/ViewActions.cs:65 msgid "Best Fit" msgstr "最佳大小" #: Pinta.Core/Actions/ViewActions.cs:66 msgid "Zoom to Selection" msgstr "放大成自選區域" #: Pinta.Core/Actions/ViewActions.cs:67 msgid "Normal Size" msgstr "正常大小" #: Pinta.Core/Actions/ViewActions.cs:68 msgid "Toolbar" msgstr "工具列" #: Pinta.Core/Actions/ViewActions.cs:69 msgid "Pixel Grid" msgstr "像素格線" #: Pinta.Core/Actions/ViewActions.cs:70 msgid "Rulers" msgstr "尺規" #: Pinta.Core/Actions/ViewActions.cs:71 msgid "Pixels" msgstr "像素" #: Pinta.Core/Actions/ViewActions.cs:72 msgid "Inches" msgstr "英吋" #: Pinta.Core/Actions/ViewActions.cs:73 msgid "Centimeters" msgstr "公分" #: Pinta.Core/Actions/ViewActions.cs:74 msgid "Fullscreen" msgstr "全螢幕" #: Pinta.Core/Actions/ViewActions.cs:114 msgid "Ruler Units" msgstr "尺規單位" #: Pinta.Core/Actions/ViewActions.cs:194 #: Pinta.Core/Classes/DocumentWorkspace.cs:226 #: Pinta.Core/Classes/DocumentWorkspace.cs:234 msgid "Window" msgstr "視窗" #: Pinta.Core/Actions/EditActions.cs:65 msgid "Undo" msgstr "復原" #: Pinta.Core/Actions/EditActions.cs:66 msgid "Redo" msgstr "取消復原" #: Pinta.Core/Actions/EditActions.cs:67 Pinta.Core/Actions/EditActions.cs:210 msgid "Cut" msgstr "剪下" #: Pinta.Core/Actions/EditActions.cs:68 msgid "Copy" msgstr "複製" #: Pinta.Core/Actions/EditActions.cs:71 msgid "Paste Into New Image" msgstr "貼到新圖片" #: Pinta.Core/Actions/EditActions.cs:72 msgid "Delete Selection" msgstr "清除選取區域" #: Pinta.Core/Actions/EditActions.cs:73 Pinta.Core/Actions/EditActions.cs:172 msgid "Fill Selection" msgstr "填充選取區域" #: Pinta.Core/Actions/EditActions.cs:74 msgid "Invert Selection" msgstr "反向選取" #: Pinta.Core/Actions/EditActions.cs:75 Pinta.Core/Actions/EditActions.cs:181 msgid "Select All" msgstr "全選" #: Pinta.Core/Actions/EditActions.cs:76 msgid "Deselect All" msgstr "取消選取" #: Pinta.Core/Actions/EditActions.cs:80 msgid "Reset to Default" msgstr "重置為預設" #: Pinta.Core/Actions/EditActions.cs:81 msgid "Set Number of Colors" msgstr "設置顏色數量" #: Pinta.Core/Actions/EditActions.cs:212 msgid "Erase Selection" msgstr "清除選取區域" #: Pinta.Core/Actions/EditActions.cs:221 msgid "Deselect" msgstr "取消選取" #: Pinta.Core/Actions/EditActions.cs:319 msgid "Open Palette File" msgstr "開啟調色盤檔案" #: Pinta.Core/Actions/EditActions.cs:326 msgid "Palette files (*.txt, *.gpl)" msgstr "調色盤檔案 (*.txt, *.gpl)" #: Pinta.Core/Actions/EditActions.cs:346 #, csharp-format msgid "" "Could not open palette file: {0}.\n" "Please verify that you are trying to open a valid GIMP or Paint.NET palette." msgstr "" "無法開啟調色盤檔案: {0}。\n" "請驗證您正嘗試開啟的是有效的 GIMP 或 Paint.NET 調色盤。" #: Pinta.Core/Actions/EditActions.cs:359 msgid "Save Palette File" msgstr "儲存調色盤檔案" #: Pinta.Core/Actions/EditActions.cs:365 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET 調色盤 (*.txt)" #: Pinta.Core/Actions/EditActions.cs:370 msgid "GIMP palette (*.gpl)" msgstr "GIMP 調色盤 (*.gpl)" #: Pinta.Core/Classes/Document.cs:298 msgid "Layer" msgstr "圖層" #: Pinta.Core/Classes/Document.cs:371 msgid "copy" msgstr "複製" #: Pinta.Core/Classes/BaseTool.cs:151 msgid "Tool" msgstr "工具" #: Pinta.Core/Classes/BaseTool.cs:218 msgid "Shortcut key" msgstr "快速鍵" #: Pinta.Core/Classes/BaseTool.cs:241 msgid "Normal Blending" msgstr "一般混合" #: Pinta.Core/Classes/BaseTool.cs:242 msgid "Overwrite" msgstr "覆蓋" #: Pinta.Core/Classes/BaseTool.cs:256 msgid "Antialiasing On" msgstr "反鋸齒開啟" #: Pinta.Core/Classes/BaseTool.cs:257 msgid "Antialiasing Off" msgstr "反鋸齒關閉" #: Pinta.Core/ImageFormats/FormatDescriptor.cs:67 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 圖片 ({1})" #: Pinta.Core/Effects/BaseEffect.cs:42 msgid "General" msgstr "一般的" #: BulgeEffect dialog #: FrostedGlassEffect dialog #: PolarInversionEffect dialog #: TwistEffect dialog #: SharpenData dialog #: MotionBlurEffect dialog msgid "Amount" msgstr "總量" #: RadialBlurEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: EdgeDetectData dialog #: EmbossEffect dialog #: ReliefData dialog #: TwistEffect dialog msgid "Angle" msgstr "角度" #: CloudsEffect dialog msgid "Antialias" msgstr "反鋸齒" #: GlowEffect dialog msgid "Blend Mode" msgstr "混合模式" #: OilPaintingEffect dialog msgid "Brightness" msgstr "亮度" #: PixelateData dialog msgid "Brush Size" msgstr "筆刷尺寸" #: PolarInversionEffect dialog msgid "Cell Size" msgstr "格子大小" #: MotionBlurEffect dialog msgid "Center Offset" msgstr "中心偏移" #: OilPaintingEffect dialog msgid "Centered" msgstr "居中" #: PencilSketchEffect dialog msgid "Coarseness" msgstr "粗糙度" #: AddNoiseEffect dialog msgid "Color Range" msgstr "顏色範圍" #: InkSketchEffect dialog msgid "Color Saturation" msgstr "飽和度" #: GlowEffect dialog msgid "Coloring" msgstr "染色" #: AddNoiseEffect dialog msgid "Contrast" msgstr "對比" #: FragmentEffect dialog msgid "Coverage" msgstr "覆蓋率" #: MotionBlurEffect dialog #: PolarInversionEffect dialog msgid "Distance" msgstr "距離" #: JuliaFractalEffect dialog msgid "Edge Behavior" msgstr "邊緣行為" #: MandelbrotFractalEffect dialog #: FragmentEffect dialog msgid "Factor" msgstr "因素" #: InkSketchEffect dialog msgid "Fragments" msgstr "碎片" #: TileEffect dialog msgid "Ink Outline" msgstr "輪廓的油墨量" #: AddNoiseEffect dialog #: OutlineEffect dialog #: MandelbrotFractalEffect dialog msgid "Intensity" msgstr "強度" #: RadialBlurEffect dialog msgid "Lighting" msgstr "照明" #: ZoomBlurEffect dialog #: BulgeEffect dialog #: PencilSketchEffect dialog msgid "Offset" msgstr "偏移" #: MedianEffect dialog msgid "Pencil Tip Size" msgstr "鉛筆頭大小" #: CloudsEffect dialog msgid "Percentile" msgstr "百分位數值" #: RadialBlurEffect dialog msgid "Power" msgstr "強度" #: PolarInversionEffect dialog #: JuliaFractalEffect dialog #: MandelbrotFractalEffect dialog #: GaussianBlurEffect dialog msgid "Quality" msgstr "品質" #: TileEffect dialog #: RedEyeRemoveData dialog msgid "Rotation" msgstr "旋轉" #: CloudsEffect dialog msgid "Saturation percentage" msgstr "飽和度百分比" #: CloudsEffect dialog msgid "Scale" msgstr "伸縮" #: SoftenPortraitData dialog msgid "Seed" msgstr "種子" #: ReduceNoiseEffect dialog msgid "Softness" msgstr "柔和" #: OutlineEffect dialog msgid "Strength" msgstr "強度" #: TileEffect dialog msgid "Thickness" msgstr "厚度" #: RedEyeRemoveData dialog msgid "Tile Size" msgstr "磁磚大小" #: JuliaFractalEffect dialog msgid "Warmth" msgstr "溫暖" #: RadialBlurEffect dialog msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "使用低質量預覽小圖像,小角度。使用高品質的最終質量,大圖片和大角度。" #: RedEyeRemoveEffect dialog msgid "Hint: For best results, first use selection tools to select each eye." msgstr "提示:要獲得最佳效果,首先使用選取工具選取每隻眼睛。" #: pinta.desktop.in msgid "Pinta" msgstr "Pinta" #: pinta.desktop.in msgid "Image Editor" msgstr "圖片編輯器" #: pinta.desktop.in msgid "Easily create and edit images" msgstr "輕鬆建立和編輯圖片" #: pinta.desktop.in msgid "Pinta Image Editor" msgstr "Pinta 圖片編輯器" #: Pinta/Pads/OpenImagesPad.cs:42 msgid "Images" msgstr "影像" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:190 msgid "Cannot save read only file." msgstr "無法儲存唯讀檔的變更。" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:208 msgid "Image too large" msgstr "" #: Pinta/Actions/Files/SaveDocumentImplementationAction.cs:209 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: Pinta.Core/Actions/EditActions.cs:252 msgid "Image larger than canvas" msgstr "" #: Pinta.Core/Actions/EditActions.cs:253 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "貼上的圖片大於畫布大小。您打算做什麼?" #: Pinta.Core/Actions/EditActions.cs:257 msgid "Expand canvas" msgstr "擴大畫布" #: Pinta.Core/Actions/EditActions.cs:258 msgid "Don't change canvas size" msgstr "不要更改畫布大小" #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:49 #: Pinta/Actions/Layers/RotateZoomLayerAction.cs:72 msgid "Rotate / Zoom Layer" msgstr "旋轉/縮放圖層" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Shown" msgstr "" #: Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:214 msgid "Layer Hidden" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:21 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:50 #: Pinta.Core/Actions/EditActions.cs:85 msgid "Add-in Manager" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:115 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:250 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:122 msgid "Installed" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:123 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:364 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:247 msgid "Updates" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:131 #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:325 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:347 msgid "Gallery" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "" msgstr[1] "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:89 msgid "" "There are other add-ins that depend on the previous ones which will also be " "uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "" #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:64 #: Mono.Addins.Gui/Mono.Addins.Gui/Services.cs:73 #, csharp-format msgid "Exception occurred: {0}" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:92 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:66 msgid "Details" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.3/po/Makefile.in.in0000644000175000017500000001537711747026502016733 0ustar00cameroncameron00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/po/Makefile.in0000664000175000017500000001570211747026510016317 0ustar00cameroncameron00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = pinta PACKAGE = pinta VERSION = 1.3 SHELL = /bin/bash srcdir = . top_srcdir = .. top_builddir = .. prefix = /usr/local exec_prefix = ${prefix} datadir = ${datarootdir} datarootdir = ${prefix}/share libdir = ${exec_prefix}/lib DATADIRNAME = share itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = ${SHELL} /home/cameron/code/release-1.3/Pinta/install-sh # Automake >= 1.8 provides /bin/mkdir -p. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt XGETTEXT = /usr/bin/xgettext INTLTOOL_UPDATE = /usr/bin/intltool-update INTLTOOL_EXTRACT = /usr/bin/intltool-extract MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-yes all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-yes install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/po/Makefile0000664000175000017500000001567211747026510015720 0ustar00cameroncameron00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = pinta PACKAGE = pinta VERSION = 1.3 SHELL = /bin/bash srcdir = . top_srcdir = .. top_builddir = .. prefix = /usr/local exec_prefix = ${prefix} datadir = ${datarootdir} datarootdir = ${prefix}/share libdir = ${exec_prefix}/lib DATADIRNAME = share itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = ${SHELL} /home/cameron/code/release-1.3/Pinta/install-sh # Automake >= 1.8 provides /bin/mkdir -p. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 GMSGFMT = /usr/bin/msgfmt MSGFMT = /usr/bin/msgfmt XGETTEXT = /usr/bin/xgettext INTLTOOL_UPDATE = /usr/bin/intltool-update INTLTOOL_EXTRACT = /usr/bin/intltool-extract MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ ../xdg/pinta.desktop.in CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-yes all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-yes install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/po/POTFILES0000664000175000017500000000003111747026510015407 0ustar00cameroncameron00000000000000 ../xdg/pinta.desktop.in pinta-1.3/po/stamp-it0000664000175000017500000000000011747026510015714 0ustar00cameroncameron00000000000000pinta-1.3/xdg/0000775000175000017500000000000011747026510014411 5ustar00cameroncameron00000000000000pinta-1.3/xdg/16x16/0000775000175000017500000000000011747026475015210 5ustar00cameroncameron00000000000000pinta-1.3/xdg/16x16/pinta.png0000664000175000017500000000106411747026475017032 0ustar00cameroncameron00000000000000PNG  IHDRa pHYsaa?itIME#ʃGIDAT8˝1hSQz_%DpKt Xɇ`hUAbԪdA\.*J5ZfPK3DD[I˻% i!m]~s8q]͎ @<|| OM}"*_^Nk='Y"cgӮmiwOF&sY_h28;0|C; 6clsZ6+u!s7O?.4\JK' @R) cdinR):8~d}KZި[|2X-"ˑL&m}d`q( xG(DV|,JZ {XOP,T*(0 A4MmN7juE"ndp]qh6߼wR[kIENDB`pinta-1.3/xdg/22x22/0000775000175000017500000000000011747026475015202 5ustar00cameroncameron00000000000000pinta-1.3/xdg/22x22/pinta.png0000664000175000017500000000210211747026475017016 0ustar00cameroncameron00000000000000PNG  IHDRĴl;sRGBbKGD pHYs B(xtIME &S SIDAT8˵]hUwfGvg6n>ڴ(4FRR\(J`DECTbU(R"F h"%>bU%ُٝݝwƗ$o{??bgDpigF;[4z[3WU:bQBNڮg.K^m 0KU/c}[޲;w޹:v؁1)4w}Z}&ޅ۠4՚ٕ[~*q88y 1ٶU*Rxb^؂{dC}1&:Ej50Ƅkvx6#^MN7o(_-J }|jwvzXڎ)'Y(Q:y/e,HS*<6[%=|I9O ŪDeyߎbtt4cgݽq||SZ:})2 t4qwSM {P֐/VP2-ii_*hMĄSʟ>wzO,]G,xB=zd䗕Bq$x 4Y˲0;; @UU躎`0p2955uծTkKH䵡G_<98Zb$!#s\ׅ8D"B<?i+a4>xazzMDQEQ¶m8hT_ybQJLbћϲ(0=Vr&!l\aP(0 ۚH$HEV㊢+iN/w×m) ~:Z?wb< E) M jzsS[i2S4iTUUu̪s=௴{ʷ85 u~:ֱg˾O¶J3BlRz_Vup/{zk|~/L0-,>/zLK}*Xɡ)(!A8 B (&&&A"?o{=02:BuGU-Dο;%pV\,\PM4M OP\YHB)@(e_.0!gRQRM%%b%i^xSJx$>!DdYϗcVsK>ޘ}@!j\`E2Llrrrm>=瀮?S ҈\!V(U}xP|-3ƺnOr1TCEqY(RRKzv+W=%)(f]{CxBhB=_Ņ鋏I+f`KPܱNYX*G~ɁAĘcOm6@sxu_ Ov9! n szPam p,j״4tgyKJOg~sC4!A.PRpF)k""ҩB~2g|W~ccc&PJB. $b1DQض #eY5#[r8|\.Ys#li<϶,`89qQT:R>֭[H$>9RTP}Q2F)e)RÐR͵B3>99Y7c'dhӦM(»6>iҨiRsM !5hi#xbqfOHOSÝM1iqt_Phr wmwwwBšv~o7B|clѣwhl'4M뜝c\uZ(O3HMvR)СC+ii~%B45 \Z mu]G_H7@\׍!TTaiAL Q ZBq}W Hc/L&}='L|Fnd;6_@%m_!h_kiRU ?&Pk$ԌߘEFo̳!WIENDB`pinta-1.3/xdg/96x96/0000775000175000017500000000000011747026475015230 5ustar00cameroncameron00000000000000pinta-1.3/xdg/96x96/pinta.png0000664000175000017500000001416711747026475017062 0ustar00cameroncameron00000000000000PNG  IHDR``w8 vpAg``xbKGDC pHYsHHFk>IDATx{W}?VuutS n7f*YEJZ._>^&`YwC - t"%J6-C! @iR ti]vK6%ʐI&$Z)W6}G h +@SNJv6]` lxMa'F)źX4dz\=v856d/h>8__ch^ƪ]-bH 9A{W'JL>6ЋV-M&>ci @(6.X&̷X*ӶL${w.kvGkV'4[y)d ~n|)#JqJ?J^ϲF 8 {G`+?VMstם p]j(X&`f.5AH( td|:O#$*"E"@ % &Jq0aLu+s1e(:Nވ_rc!y2[ի1 5"Iɶ H8oy>,|֐%ϢEo'_-G|6oNww7HߏeY|>hq]qpT*8/2/ܯiqW1N!}[M%7|{-zcрTF11s5^s5Їb!`Z[Vt5Kىg5rĖA|_Ro6BB@.l6[_,qRg%ׯ_'Nؼm6ꫯ %;#L!Ss_d}Qس68R !RJ( x |6A kشd{ʈF}<ʣ`ķ`0;!͢aF|`|D)(\u` ػ+S 6/;DVhXUZlE BMX(*9M<_ʈD3m OThoo{gp@=$WXtF$YJJv_WƳi$k~5 Y(;xupg5рaIOpjzv?^ᨏ TWkh 'ħrE@!Pg4Yd G^Np\buTbʖnNo !K`J GJx[O=+/ f8<2[83Y&4 V4n=9a ={08N˄k[i1hkz#uESj@ycSy&O) =~:)d&Z@# aP*1\b}de|]]U^M р g+\ W6;%(MQKv\W)-q ͟c]bhĿpw]sXgn3m- h J;bfoԻJc;NXxvQҚt@ɏrIBwaFЏ^r#u:HkgP ZCBox8iHخ:-FgϞe`WLEc;.^Qv3 -AAh/9b1K4V|_@@mիQMJ&9Y)3si BV7RB~V@sY =K>@a;gHL@ !/|IQBbB!.ٲ];4M[[{\֟.hZ_)\њO)D4fm,b%t`S挄)'<8thCl꿘/vrD@ ?}u#$h TQ"U*.g#XE04dрUZ~z{²,(`o3RJB]mDtQ/E4b~Ia!J|Ѐ:&H/8L?v!7k5+kERZiZ%'׺&5>,CL3^ZrʹOZHS7 p6 ( i$IHRR)ZimiC~})p1L̲v.b9b`c;.|A~ᡏ0L6o!qF R)$dT*'ˠTG.;䁃 HÏYJI&+>,C)0b庘R-8ضCP2"YןRLik KdWtMg}pN#Bkƾ~:::EJIX$NWF}*4MCgLt\g OxA7HIgh߸)HTZ9qTJOK186 5EZ%Fhmm] :@΋oVW*׬eƍI.ĉ37 P(Љ m-/g*& !$w+W[,oe(X a9j+G+G@  PMׇǶm;V19T !@H&2Zw]w(̰:-*wښ}yDBo C{KqF0288ӧIR'9v(l4ڐs>P(ٰZp_ fb7N?2@o5ǎ#Ww48zm#ߴ6n3šA\/!D9C@x h\mre`xI*E4CǼ}xaDքHK֚bHXDQY5v~Huh@ h~j {וtw###<]`lb_Fc{{]6BYMPu+) MMM477ϺӀP(1A?ݻdÆ !㕈'Nf2SZ>,0>!|O&''XL&C&!Qױ{,"LG?ۇ۶^֭ېRNJN%<E@-hCCC9r.!70%*oB~ Y5W_eYy:D2$N3=})R$@B }[J9Fĉc&aټ;gJ50CX̫c}L?d}/ xͷ m2==M:&OLzlPhu?~K}fOLL011ighl}Oe%4nomhQ)%DQR9rD"A:f$S&ο6RxI\=d2sSTecu$^wI)H)@7:ii\ѣLNNNT|; ,` Z|_r\8}_-Rb|l#D[yپm㜞̽瞋wܱ˖au] H$83ـk_ ilk>aÆaia`xx۶Zsj*~8u*N_o'J'\!}?4g$Kx4#%fs}϶m,˪%cegM]B<&DJIOOW]uai&{9?yP~B{ BzP̮y%y5ʂh^F00 \]a襗^޷r'qFs:q @i)Ƃ}r|>L<5 ;[|^uuיKo*IQz{{+쏌Tên_;tP /}KCgjc<]U?DjMP:͘7϶yX,F24VZZ(%---!R1auV"BkMgg'ccc ϸuݒc|g'z驮ٞFMU}ZR  è Z(y 8z(Rʵ ێD"K$,>9rH$ Hp]WMs}y [ ڔT]Wgվ#e|u@?5}Lk}{D*9Rӻ;[bxr?~'JP3 Z3VQ_kRTrH(p}յmAolGkkq^ 9CpǏ^4q^K@3>y@j֎F|2 A )/T~^ě~$A/~Ϟe2 Lul_m0299IuFSm<ͬ9cd!x>-:>B@33?v՚3/`۶x?^&U;888899@WWW]]]W%%% &&&,,,///...+++BB@=:7433227WWW\\\ o///RRR::::::===<<<777///G//.,*(%#"!!777ZZZaaafffeeeeeedddddddddddddddcccccccccccccccbbbddd^^^[[[YYY %%%QQQuuuFFFKKKJJJCCC999i ///y{{{YYY9***999YYYwww]]]MMM@@@+,+x TTTdmmmYYY000:::GGGoooQQQHHH_YYYXaaaYYY<<<EEEXXXkkkWWWRRRYYYK[[[JJJ4NNN]gih{YYY?YYYYYY2{{{YYY ѿ҄ YYY&qqqYYY+焉5YYYlllYYYda򄉇OYYYhhhYYYFY"YYY bbbwvtYYY)ׯvYYYea]ɳżǺ`ȴhebYYY3Hn8fAYYYb^[мѤzݼ¦¦Х}“f^V{OrGj?d:ɶ_][YYYmEaw=n9g8f3_][̸ӧ~¦ʱʱЦ“f^V{OrGj?nF°ZYYRw J9h=o9g8f"[ZZɴԩȯѻѻЧ“f^V{OrGj?yTYYY$z?|q ] H9g=n8fRW[İլηЧ“f^V{OrGj?bYYYbs~H =i Uvp Z F9g;kAP]Ӿ֮ԿЦ“f^V{OrGj?pYYYu9g0:i Ywn Y D{9g=O`ɽ۹Ц~“f^W}RyQ~\ıYYYW9gC;k ]xl WBx9L^YYY:9gVpexh)XaaaYYY 8f@uhwfEZnYYY8f8fBxlwdnsw[[[YYY8f8fD|n$ngSGg]VxN2Q8f8f GjQEvJpQ{cOo^Pj\Qg\Sh\Rl]Pt_OdJf:J 8f 9gtG*b̞sƓcÎ]YTPM~J|Fv@K!8f ~H$bϨǔeֽÏ_ȝuSNJ|Fv@K!IbϨǔe׿Ð`ɠzSNJ|Fv@K!IһZΥǔe׿Ð`ɠzSNJ|Fs>K IYO$nBTǜt\ĔgRLvCe4O#IzI)II΅K#P%R'O%L&tG*I"I7I'=T0:`Wtf Av8fo8f2:i `w a:j8f'8f9;j cv T8f8f8fA;kftD{8fd8fH;lio:h8f8fP >o!e:i8f8fC8f8f6 ?`` ??????????( @     !&+/11.+&! 1>I=3'*,--,*+.1=\\\ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ___ %%%"""MGGB<767999orrrZZZ +++000:::<<<11100/,)%#DDDauuuZZZNNNRRRMMMQQQEEE$ @@@___```dddddddddccccccccccccccccccddd___ddd2111\\\bbbNNN}ZZZ0tttjjjWWW#,,,EGGGuuuRRRuvuXXX lll\\\UUU333 >>>:} YYYddd___ى```\\\bbbK낈-[[[bbbzw___]]]4Tp@aaaǼȹƳYYYm!Jf~9g9j$ccc߿ʰ۷Ǘk_~SrG\\\NR_ `=n:gdeeѿǭݻǗk_~SrGǯ~wqZZZ0 nz.Rs Y{ \;jV^gоͶǗk_~SrGκifcUUU:h9i ^x YNZf¥Ǘk_X`^^^UU9g:i cuG_uaaa+U9g;jgn:ga9h:gT?@@(  [G v ---@@@333dKKK''' hhh???!!!jnl4ABB]^]󄉉6􆋆9>x@i52m?rԦ:;U9gkx[^sd9"psO M'9gCOGb~7|;k2Yr.|=nA?A?A?AAAAAAAAAAìAAApinta-1.3/xdg/pinta.10000664000175000017500000000165611747026475015630 0ustar00cameroncameron00000000000000.TH pinta 1 "June 2010" "The Pinta Project" "Pinta" .SH NAME Pinta \- simple image editor .SH SYNOPSIS .B pinta .I [] .SH DESCRIPTION Pinta is a drawing/editing program modeled on Paint.NET. Its goal is to provide a simplified alternative to the GIMP for casual users. .PP Features include: .PP - Adjustments (Auto level, Black and White, Sepia, …) - Multiple layers - Unlimited undo/redo - Drawing tools (Paintbrush, Pencil, Shapes, …) .PP Pinta is currently early in development, and should be treated as such. .SH OPTIONS .TP .B file_name Optional. The name of the image file for Pinta to open. .SH AUTHOR Pinta is developed by the Pinta project contributors, led by Jonathan Pobst . For a complete list of contributors, refer to the \fBAbout\fR option in the \fBHelp\fR menu. .SH BUGS Pinta uses the Launchpad project to track bugs. Please submit bugs to \fBhttps://bugs.edge.launchpad.net/pinta\fR. pinta-1.3/xdg/pinta.desktop.in0000664000175000017500000000112611747026475017536 0ustar00cameroncameron00000000000000[Desktop Entry] _Name=Pinta _Comment=Easily create and edit images _GenericName=Image Editor _X-GNOME-FullName=Pinta Image Editor Exec=pinta Icon=pinta StartupNotify=false Terminal=false Type=Application Categories=Graphics;2DGraphics;RasterGraphics;GTK; MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/svg+xml;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/x-targa;image/x-tga;image/openraster; pinta-1.3/xdg/pinta.xpm0000664000175000017500000001415011747026475016265 0ustar00cameroncameron00000000000000/* XPM */ static char *pinta[] = { /* columns rows colors chars-per-pixel */ "32 32 248 2", " c #000000", ". c #030303", "X c #121212", "o c #171717", "O c #1B1B1B", "+ c #1E1E1E", "@ c #222222", "# c #252525", "$ c #2B2B2B", "% c #303030", "& c #313131", "* c #3A3A3A", "= c #3C3C3C", "- c #673806", "; c #673906", ": c #673907", "> c #673A06", ", c #673A07", "< c #683907", "1 c #693907", "2 c #683A06", "3 c #693A07", "4 c #6A3B07", "5 c #6A3C07", "6 c #6E3D07", "7 c #683908", "8 c #6E3D08", "9 c #6E3E08", "0 c #734008", "q c #73522E", "w c #2F4A76", "e c #454545", "r c #474747", "t c #4D4D4D", "y c #4E4E4E", "u c #515151", "i c #525252", "p c #5A5A5A", "a c #5B5B5B", "s c #5C5C5C", "d c #5D5D5D", "f c #5E5E5E", "g c #5F5F5F", "h c #665A4E", "j c #755F47", "k c #675E56", "l c #7E664A", "z c #4F5967", "x c #5B6775", "c c #53677D", "v c #5B6878", "b c #5C6979", "n c #606060", "m c #616161", "M c #626262", "N c #636363", "B c #646464", "V c #656564", "C c #636669", "Z c #6A6A6A", "A c #6C6C6C", "S c #716A64", "D c #727272", "F c #747474", "G c #757575", "H c #757675", "J c #71777E", "K c #8F4E09", "L c #9D570B", "P c #9F580C", "I c #8C5214", "U c #A0590B", "Y c #A3590B", "T c #A75C0C", "R c #AC5E0D", "E c #AC600D", "W c #B4630D", "Q c #BB670E", "! c #BC6A13", "~ c #87613D", "^ c #92683C", "/ c #D57510", "( c #DB7810", ") c #E07B11", "_ c #827A6E", "` c #A9875F", "' c #80807D", "] c #80827D", "[ c #234A84", "{ c #204A87", "} c #214B87", "| c #264B84", " . c #284C83", ".. c #2A4E83", "X. c #294D84", "o. c #214C88", "O. c #234E8B", "+. c #26518C", "@. c #2E5D98", "#. c #3C669E", "$. c #46688C", "%. c #576B82", "&. c #547499", "*. c #4772A0", "=. c #4174AE", "-. c #537EAD", ";. c #467CB6", ":. c #5882AF", ">. c #4F81B8", ",. c #4C81BA", "<. c #5386BD", "1. c #5F8BBA", "2. c #5B8ABF", "3. c #6083AA", "4. c #6090C4", "5. c #6A96C5", "6. c #6B97C7", "7. c #6F9AC6", "8. c #6C9ACC", "9. c #7A9DC5", "0. c #7BA1CA", "q. c #888A85", "w. c #898B86", "e. c #8A8B87", "r. c #8A8C86", "t. c #8A8C87", "y. c #8B8D87", "u. c #8E8E86", "i. c #8B8C88", "p. c #8A8D88", "a. c #8D8D8D", "s. c #808993", "d. c #989995", "f. c #9C9B95", "g. c #9B9B9B", "h. c #9B9C9C", "j. c #9FA09D", "k. c #A0A19D", "l. c #8E98A5", "z. c #98AABC", "x. c #A1A3A0", "c. c #A5A6A4", "v. c #ACADAB", "b. c #ABABAC", "n. c #AEAEAE", "m. c #AFAFAF", "M. c #B3B3B3", "N. c #B5B5B3", "B. c #B4B4B4", "V. c #B5B5B5", "C. c #B6B6B6", "Z. c #B7B7B7", "A. c #B8B8B8", "S. c #BBBBBB", "D. c #BCBCBB", "F. c #BDBDBD", "G. c #BEBEBE", "H. c #BFBFBF", "J. c #8CA5C0", "K. c #9AAFC7", "L. c #9AB6D4", "P. c #96B7DB", "I. c #9BBBDD", "U. c #A3B3C6", "Y. c #A7BACE", "T. c #ACB9C8", "R. c #A2BFDF", "E. c #A2C0DF", "W. c #BCC7D2", "Q. c #B0C4DA", "!. c #A5C2E0", "~. c #ADC7E3", "^. c #B0CAE4", "/. c #B6CDE7", "(. c #BED0E3", "). c #BFD1E5", "_. c #C0C0C0", "`. c #C2C2C2", "'. c #C3C3C3", "]. c #C4C4C4", "[. c #C5C5C5", "{. c #C6C6C6", "}. c #C8C8C8", "|. c #CACACA", " X c #CACBCA", ".X c #CCCCCC", "XX c #CDCDCD", "oX c #CECECE", "OX c #C4CED9", "+X c #C7D0DA", "@X c #C3D1DE", "#X c #D0D0D0", "$X c #D2D2D1", "%X c #D2D2D2", "&X c #D3D3D3", "*X c #D4D4D4", "=X c #D5D5D5", "-X c #D4D5D7", ";X c #D7D7D7", ":X c #D7DADD", ">X c #D8D8D8", ",X c #D9D9D9", ".=.@.O.FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX{ 8.Q.4.0.<.,.;.{ FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX{ 8.L.4.5.<.,.;.{ FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX: ..&.%.b x v c $.o.FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX2 9 ~ g.xXBXAXCXbXb.z FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX2 8 ! S ZXAXAXVXBXAXAXa.FXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFX7 4 Q ^ D.ZXAXkX2X,X*X2XoXm FXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFX7 2 W / j %XCXCXgX8X*X*X%XXV.k FXFX", "FXFXFXFXFXFXFXFXFXk.BXtXc.t.FXFXFXFXd vXxXjX2X[.'..XoX&X'.N FXFX", "FXFXFXFXFXFXFXFXd.bXpXj.q.FXFXFXFXFXs NXzX-Xm.m.m.m.T.%X#XB FXFX", "FXFXFXFXFXFXFX' uXsXd.t.FXFXFXFXFXFXB BXuXC.V.V.N.N.N.{.2Xg FXFX", "FXFXFXFXFXr F i F p.t.FXFXFXFXFXFXFXA MXoX].`._._.D.S.S.uXf FXFX", "FXFXFXFX& f h.m y ' FXFXFXFXFXFXFXFXG gX|.}.[.'._._.S.C.,XZ FXFX", "FXFXFXo y i y i e FXFXFXFXFXFXFXFXg k V V m B m N N N N V k B FX", "FXFX O $ & * = & FXFXFXFXFXFXFXFXF xXxXxXxXlXkXhXdXaXiXuXrXp FX", "FX . X + # @ FXFXFXFXFXFXFXFXFXD rXrX8X2X2X,X;X=X=X$X#XoXp FX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXf p p p p p p p p p p p p g FX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", "FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX" }; pinta-1.3/xdg/scalable/0000775000175000017500000000000011747026475016171 5ustar00cameroncameron00000000000000pinta-1.3/xdg/scalable/pinta.svg0000664000175000017500000006415111747026475020034 0ustar00cameroncameron00000000000000 image/svg+xml Graphics Category Jakub Steiner graphics category pixel vector editor draw paint http://tango-project.org pinta-1.3/xdg/Makefile.in0000664000175000017500000003435211747026504016470 0ustar00cameroncameron00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xdg DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(desktop_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@ GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@ GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_CAIRO_CFLAGS = @MONO_CAIRO_CFLAGS@ MONO_CAIRO_LIBS = @MONO_CAIRO_LIBS@ MONO_CFLAGS = @MONO_CFLAGS@ MONO_LIBS = @MONO_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XBUILD = @XBUILD@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pintalocaledir = @pintalocaledir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ desktopdir = $(datadir)/applications desktop_in_files = pinta.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) man_MANS = pinta.1 EXTRA_DIST = \ $(desktop_in_files) \ $(man_MANS) CLEANFILES = $(desktop_DATA) DISTCLEANFILES = $(desktop_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign xdg/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign xdg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-desktopDATA uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-desktopDATA \ uninstall-man uninstall-man1 @INTLTOOL_DESKTOP_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/xdg/Makefile0000664000175000017500000004175411747026510016064 0ustar00cameroncameron00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # xdg/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. pkgdatadir = $(datadir)/pinta pkgincludedir = $(includedir)/pinta pkglibdir = $(libdir)/pinta pkglibexecdir = $(libexecdir)/pinta am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xdg DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(desktop_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run aclocal-1.11 ALL_LINGUAS = af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW AMTAR = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run tar AUTOCONF = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run autoconf AUTOHEADER = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run autoheader AUTOMAKE = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run automake-1.11 AWK = gawk CATALOGS = af.gmo ar.gmo bg.gmo br.gmo bs.gmo ca.gmo cs.gmo da.gmo de.gmo el.gmo en_AU.gmo en_CA.gmo en_GB.gmo es.gmo et.gmo eu.gmo fi.gmo fil.gmo fo.gmo fr.gmo ga.gmo gl.gmo he.gmo hi.gmo hr.gmo hu.gmo hy.gmo id.gmo it.gmo ja.gmo ko.gmo la.gmo lt.gmo lv.gmo ms.gmo nb.gmo nl.gmo nn.gmo oc.gmo pl.gmo pt.gmo pt_BR.gmo ro.gmo ru.gmo sk.gmo sl.gmo sq.gmo sr.gmo sv.gmo th.gmo tr.gmo uk.gmo vi.gmo zh_CN.gmo zh_TW.gmo CATOBJEXT = .gmo CC = gcc CCDEPMODE = depmode=none CFLAGS = -g -O2 CPP = gcc -E CPPFLAGS = CYGPATH_W = echo DATADIRNAME = share DEFS = -DPACKAGE_NAME=\"pinta\" -DPACKAGE_TARNAME=\"pinta\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"pinta\ 1.3\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pinta\" -DVERSION=\"1.3\" -DGETTEXT_PACKAGE=\"pinta\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LOCALE_H=1 -DHAVE_LC_MESSAGES=1 -DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 DEPDIR = .deps ECHO_C = ECHO_N = -n ECHO_T = EGREP = /bin/grep -E EXEEXT = GETTEXT_PACKAGE = pinta GLIB_SHARP_20_CFLAGS = -I:/usr/lib/pkgconfig/../../share/gapi-2.0/glib-api.xml GLIB_SHARP_20_LIBS = -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-2.0/glib-sharp.dll GMOFILES = af.gmo ar.gmo bg.gmo br.gmo bs.gmo ca.gmo cs.gmo da.gmo de.gmo el.gmo en_AU.gmo en_CA.gmo en_GB.gmo es.gmo et.gmo eu.gmo fi.gmo fil.gmo fo.gmo fr.gmo ga.gmo gl.gmo he.gmo hi.gmo hr.gmo hu.gmo hy.gmo id.gmo it.gmo ja.gmo ko.gmo la.gmo lt.gmo lv.gmo ms.gmo nb.gmo nl.gmo nn.gmo oc.gmo pl.gmo pt.gmo pt_BR.gmo ro.gmo ru.gmo sk.gmo sl.gmo sq.gmo sr.gmo sv.gmo th.gmo tr.gmo uk.gmo vi.gmo zh_CN.gmo zh_TW.gmo GMSGFMT = /usr/bin/msgfmt GREP = /bin/grep GTK_SHARP_20_CFLAGS = -I:/usr/lib/pkgconfig/../../share/gapi-2.0/pango-api.xml -I:/usr/lib/pkgconfig/../../share/gapi-2.0/atk-api.xml -I:/usr/lib/pkgconfig/../../share/gapi-2.0/gdk-api.xml -I:/usr/lib/pkgconfig/../../share/gapi-2.0/gtk-api.xml -I:/usr/lib/pkgconfig/../../share/gapi-2.0/glib-api.xml GTK_SHARP_20_LIBS = -r:/usr/lib/pkgconfig/../../lib/cli/pango-sharp-2.0/pango-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/atk-sharp-2.0/atk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/gdk-sharp-2.0/gdk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/gtk-sharp-2.0/gtk-sharp.dll -r:/usr/lib/pkgconfig/../../lib/cli/glib-sharp-2.0/glib-sharp.dll INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INSTOBJEXT = .mo INTLLIBS = INTLTOOL_EXTRACT = /usr/bin/intltool-extract INTLTOOL_MERGE = /usr/bin/intltool-merge INTLTOOL_PERL = /usr/bin/perl INTLTOOL_UPDATE = /usr/bin/intltool-update LDFLAGS = LIBOBJS = LIBS = LTLIBOBJS = MAKEINFO = ${SHELL} /home/cameron/code/release-1.3/Pinta/missing --run makeinfo MKDIR_P = /bin/mkdir -p MKINSTALLDIRS = ./mkinstalldirs MONO = /usr/bin/mono MONO_CAIRO_CFLAGS = MONO_CAIRO_LIBS = -r:/usr/lib/mono/2.0/Mono.Cairo.dll MONO_CFLAGS = MONO_LIBS = MSGFMT = /usr/bin/msgfmt MSGFMT_OPTS = -c MSGMERGE = /usr/bin/msgmerge OBJEXT = o PACKAGE = pinta PACKAGE_BUGREPORT = PACKAGE_NAME = pinta PACKAGE_STRING = pinta 1.3 PACKAGE_TARNAME = pinta PACKAGE_URL = PACKAGE_VERSION = 1.3 PATH_SEPARATOR = : PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG_LIBDIR = PKG_CONFIG_PATH = POFILES = af.po ar.po bg.po br.po bs.po ca.po cs.po da.po de.po el.po en_AU.po en_CA.po en_GB.po es.po et.po eu.po fi.po fil.po fo.po fr.po ga.po gl.po he.po hi.po hr.po hu.po hy.po id.po it.po ja.po ko.po la.po lt.po lv.po ms.po nb.po nl.po nn.po oc.po pl.po pt.po pt_BR.po ro.po ru.po sk.po sl.po sq.po sr.po sv.po th.po tr.po uk.po vi.po zh_CN.po zh_TW.po POSUB = po PO_IN_DATADIR_FALSE = PO_IN_DATADIR_TRUE = SET_MAKE = SHELL = /bin/bash STRIP = USE_NLS = yes VERSION = 1.3 XBUILD = /usr/bin/xbuild XGETTEXT = /usr/bin/xgettext abs_builddir = /home/cameron/code/release-1.3/Pinta/xdg abs_srcdir = /home/cameron/code/release-1.3/Pinta/xdg abs_top_builddir = /home/cameron/code/release-1.3/Pinta abs_top_srcdir = /home/cameron/code/release-1.3/Pinta ac_ct_CC = gcc am__include = include am__leading_dot = . am__quote = am__tar = tar --format=ustar -chf - "$$tardir" am__untar = tar -xf - bindir = ${exec_prefix}/bin build_alias = builddir = . datadir = ${datarootdir} datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} host_alias = htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info install_sh = ${SHELL} /home/cameron/code/release-1.3/Pinta/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var mandir = ${datarootdir}/man mkdir_p = /bin/mkdir -p oldincludedir = /usr/include pdfdir = ${docdir} pintalocaledir = ${prefix}/${DATADIRNAME}/locale prefix = /usr/local program_transform_name = s,x,x, psdir = ${docdir} sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com srcdir = . sysconfdir = ${prefix}/etc target_alias = top_build_prefix = ../ top_builddir = .. top_srcdir = .. desktopdir = $(datadir)/applications desktop_in_files = pinta.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) man_MANS = pinta.1 EXTRA_DIST = \ $(desktop_in_files) \ $(man_MANS) CLEANFILES = $(desktop_DATA) DISTCLEANFILES = $(desktop_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign xdg/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign xdg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-desktopDATA uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-desktopDATA \ uninstall-man uninstall-man1 %.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pinta-1.3/license-mit.txt0000664000175000017500000000210611747026475016612 0ustar00cameroncameron00000000000000The MIT License Copyright (c) 2010 Jonathan Pobst Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.pinta-1.3/license-pdn.txt0000664000175000017500000000355211747026475016610 0ustar00cameroncameron00000000000000Paint.NET Copyright (C) 2007 Rick Brewster, Chris Crosetto, Tom Jackson, Michael Kelsey, Brandon Ortiz, Craig Taylor, Chris Trevino, and Luke Walker. Portions Copyright (C) 2007 Microsoft Corporation. All Rights Reserved. This software is licensed as per the MIT License below, but with one exception: * The Paint.NET logo and icon artwork are Copyright (C) Rick Brewster. They are covered by the Creative Commons Attribution-NonCommercial-NoDerivs 2.5 license which is detailed here: http://creativecommons.org/licenses/by-nc-nd/2.5/ . Permission is granted to use the logo and icon artwork in ways that discuss or promote Paint.NET (e.g. blog and news posts about Paint.NET, "Made with Paint.NET" watermarks or insets). MIT License: http://www.opensource.org/licenses/mit-license.php Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --- Pinta Note --- Pinta does not use the Paint.NET logo or icon mentioned above.pinta-1.3/todo.txt0000664000175000017500000000023511747026475015347 0ustar00cameroncameron00000000000000Please see our roadmap: http://groups.google.com/group/pinta/web/roadmap?hl=en or our future ideas page: http://pinta.uservoice.com/forums/105955-general pinta-1.3/Pinta.sln0000664000175000017500000001007711747026475015437 0ustar00cameroncameron00000000000000Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta", "Pinta\Pinta.csproj", "{E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0}" ProjectSection(ProjectDependencies) = postProject {71A1C3E0-7343-48FE-BD9A-508929136E92} = {71A1C3E0-7343-48FE-BD9A-508929136E92} {526152F2-2829-4AA6-B2F2-232579858A77} = {526152F2-2829-4AA6-B2F2-232579858A77} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta.Core", "Pinta.Core\Pinta.Core.csproj", "{30091528-6EC1-40F8-B4BF-8EB41CBE8A8B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta.Resources", "Pinta.Resources\Pinta.Resources.csproj", "{50AFF341-655E-45EF-83CA-58F8254E4C8B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta.Gui.Widgets", "Pinta.Gui.Widgets\Pinta.Gui.Widgets.csproj", "{83F0C0AD-D587-457C-B72A-1A184D6D76B3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta.Tools", "Pinta.Tools\Pinta.Tools.csproj", "{526152F2-2829-4AA6-B2F2-232579858A77}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pinta.Effects", "Pinta.Effects\Pinta.Effects.csproj", "{71A1C3E0-7343-48FE-BD9A-508929136E92}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0}.Debug|Any CPU.ActiveCfg = Debug|x86 {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0}.Debug|Any CPU.Build.0 = Debug|x86 {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0}.Release|Any CPU.ActiveCfg = Release|Any CPU {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0}.Release|Any CPU.Build.0 = Release|Any CPU {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B}.Release|Any CPU.Build.0 = Release|Any CPU {50AFF341-655E-45EF-83CA-58F8254E4C8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50AFF341-655E-45EF-83CA-58F8254E4C8B}.Debug|Any CPU.Build.0 = Debug|Any CPU {50AFF341-655E-45EF-83CA-58F8254E4C8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {50AFF341-655E-45EF-83CA-58F8254E4C8B}.Release|Any CPU.Build.0 = Release|Any CPU {83F0C0AD-D587-457C-B72A-1A184D6D76B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {83F0C0AD-D587-457C-B72A-1A184D6D76B3}.Debug|Any CPU.Build.0 = Debug|Any CPU {83F0C0AD-D587-457C-B72A-1A184D6D76B3}.Release|Any CPU.ActiveCfg = Release|Any CPU {83F0C0AD-D587-457C-B72A-1A184D6D76B3}.Release|Any CPU.Build.0 = Release|Any CPU {526152F2-2829-4AA6-B2F2-232579858A77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {526152F2-2829-4AA6-B2F2-232579858A77}.Debug|Any CPU.Build.0 = Debug|Any CPU {526152F2-2829-4AA6-B2F2-232579858A77}.Release|Any CPU.ActiveCfg = Release|Any CPU {526152F2-2829-4AA6-B2F2-232579858A77}.Release|Any CPU.Build.0 = Release|Any CPU {71A1C3E0-7343-48FE-BD9A-508929136E92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {71A1C3E0-7343-48FE-BD9A-508929136E92}.Debug|Any CPU.Build.0 = Debug|Any CPU {71A1C3E0-7343-48FE-BD9A-508929136E92}.Release|Any CPU.ActiveCfg = Release|Any CPU {71A1C3E0-7343-48FE-BD9A-508929136E92}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = Pinta\Pinta.csproj Policies = $0 $0.StandardHeader = $1 $1.inheritsSet = MITX11License $0.TextStylePolicy = $2 $2.FileWidth = 120 $2.TabWidth = 4 $2.inheritsSet = Mono $2.inheritsScope = text/plain $2.scope = text/plain $0.TextStylePolicy = $3 $3.RemoveTrailingWhitespace = True $3.EolMarker = Windows $3.inheritsSet = Mono $3.inheritsScope = text/plain $3.scope = text/x-csharp $0.CSharpFormattingPolicy = $4 $4.inheritsSet = Mono $4.inheritsScope = text/x-csharp $4.scope = text/x-csharp EndGlobalSection EndGlobal pinta-1.3/Pinta.Install.proj0000664000175000017500000001725111747026475017223 0ustar00cameroncameron00000000000000 bin /usr/local /usr/local/bin /usr/local/lib /usr/local/share /usr/local/share/man /usr/local/share/locale af ar bg br bs ca cs da de el en_AU en_CA en_GB es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ko la lt lv ms nb nl nn oc pl pt pt_BR ro ru sk sl sq sr sv th tr uk vi zh_CN zh_TW pinta-1.3/readme.md0000664000175000017500000000404011747026475015416 0ustar00cameroncameron00000000000000#Pinta - [Simple Gtk# Paint Program](http://pinta-project.com/) Copyright (C) 2010 Jonathan Pobst Pinta is a Gtk# clone of [Paint.Net 3.0](http://www.getpaint.net/) Original Pinta code is licensed under the MIT License: See `license-mit.txt` for the MIT License Code from Paint.Net 3.36 is used under the MIT License and retains the original headers on source files. See `license-pdn.txt` for Paint.Net's original license. ##Icons are from: - [Paint.Net 3.0](http://www.getpaint.net/) Used under [MIT License](http://www.opensource.org/licenses/mit-license.php) - [Silk icon set](http://www.famfamfam.com/lab/icons/silk/) Used under [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/) - [Fugue icon set](http://pinvoke.com/) Used under [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/) ##Getting help/contributing: - You can get technical help on the [Pinta Google Group](http://groups.google.com/group/pinta) - You can report bugs on [Launchpad.net](https://bugs.launchpad.net/pinta/+filebug) - You can fork the project on [Github](https://github.com/PintaProject/Pinta) - You can get help in #pinta on irc.gnome.org. - For details on patching, take a look at `patch-guidelines.md` in the repo. ##Linux Build and Installation Instructions: Building Pinta requires the following software: `mono mono-xbuild automake autoconf libmono-cairo2.0-cil gtk-sharp2` Pinta only supports version 2.8 or higher of Mono. To build Pinta, run: `./autogen.sh` `make` `sudo make install` or if building from a tarball, run: `./configure` `make` `sudo make install` To use different installation directory than the default (/usr/local), run this instead: `./autogen.sh --prefix=` To uninstall Pinta, run: `sudo make uninstall` To clean all files created during the build process, run: `make cleanall` **Note** This will require you to rerun `autogen.sh` in order to run more `make` commands. For a list of more make commands, run: `make help` pinta-1.3/intltool-extract.in0000664000175000017500000000000011747026502017462 0ustar00cameroncameron00000000000000pinta-1.3/intltool-merge.in0000664000175000017500000000000011747026502017107 0ustar00cameroncameron00000000000000pinta-1.3/intltool-update.in0000664000175000017500000000000011747026502017272 0ustar00cameroncameron00000000000000