pinta-1.6/0000775000175000017500000000000012474707550013642 5ustar00cameroncameron00000000000000pinta-1.6/install-sh0000755000175000017500000003325512261335263015644 0ustar00cameroncameron00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac 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 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -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-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac 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 X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 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.6/configure0000775000175000017500000067712212474707540015567 0ustar00cameroncameron00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for pinta 1.6. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org 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_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" 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.6' PACKAGE_STRING='pinta 1.6' 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 am__nodep 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__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS MONO_LIBS MONO_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH MONO XBUILD PKG_CONFIG AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_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 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.6 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.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --disable-nls do not use Native Language Support --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build 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.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_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_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_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile 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.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='pinta' VERSION='1.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar plaintar pax cpio none' # The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 $as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } if test $am_uid -le $am_max_uid; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } _am_tools=none fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 $as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } if test $am_gid -le $am_max_gid; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } _am_tools=none fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 $as_echo_n "checking how to create a ustar tar archive... " >&6; } # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_ustar-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x ustar -w "$$tardir"' am__tar_='pax -L -x ustar -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H ustar -L' am__tar_='find "$tardir" -print | cpio -o -H ustar -L' am__untar='cpio -i -H ustar -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_ustar}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 (cat conftest.dir/file) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if ${am_cv_prog_tar_ustar+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 $as_echo "$am_cv_prog_tar_ustar" >&6; } # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS 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 as_fn_executable_p "$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 as_fn_executable_p "$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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi 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='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.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; }'` 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; } { $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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "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 ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # 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 ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pinta $as_me 1.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac 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.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --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"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "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; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/pinta.pc.in $(srcdir)/pinta.in compile 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 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 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@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ 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 DIST_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 DEBUG_FILES = $(addsuffix .mdb, $(BINFILES)) RELEASE_FILE = $(PACKAGE)-$(VERSION) MAC_APP_DIR = Pinta.app MAC_APP_BIN_DIR = "$(MAC_APP_DIR)/Contents/MacOS/" #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 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 \ intltool-extract.in \ intltool-update.in \ intltool-merge.in DISTCLEANFILES = po/.intltool-merge-cache \ po/Makefile \ po/Makefile.in \ po/Makefile MAINTAINERCLEANFILES = po/Makefile.in.in \ Makefile.in \ install-sh \ configure \ aclocal.m4 \ missing \ compile all: all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --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) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(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 \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-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 \ maintainer-clean-local mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-local cscope cscopelist-am ctags ctags-am dist dist-all \ dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-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 \ maintainer-clean-local mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am 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: cd po && intltool-update -m && intltool-update -p --gettext-package=messages cat po/messages.in >> po/messages.pot cat po/messages.pot | msguniq -o po/messages.pot # target: clean - Default clean command: cleanobj and cleanbin clean-local: cleanobj cleanbin maintainer-clean-local: rm -rf autom4te.cache # 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" releaseosx: build $(BINFILES) mkdir -p $(MAC_APP_DIR)/Contents/{MacOS,Resources} cp -r $(BINDIR)/locale $(BINFILES) $(DEBUG_FILES) $(BINDIR)/ICSharpCode.SharpZipLib.dll osx/pinta $(MAC_APP_BIN_DIR) chmod +x $(MAC_APP_BIN_DIR)/pinta cp osx/Info.plist $(MAC_APP_DIR)/Contents cp osx/pinta.icns $(MAC_APP_DIR)/Contents/Resources touch $(MAC_APP_DIR) zip -r9uq $(MAC_APP_DIR).zip $(MAC_APP_DIR) rm -rf $(MAC_APP_DIR) .PHONY: install uninstall 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.6/missing0000755000175000017500000001533012261335263015231 0ustar00cameroncameron00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pinta-1.6/pinta.pc.in0000664000175000017500000000050112474706675015711 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.6/Pinta.Install.proj0000664000175000017500000002006112474707515017216 0ustar00cameroncameron00000000000000 bin /usr/local /usr/local/bin /usr/local/lib /usr/local/share /usr/local/share/man /usr/local/share/locale af ar ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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.6/Pinta.Resources/0000775000175000017500000000000012474706675016675 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Resources/Resources/0000775000175000017500000000000012474706675020647 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Resources/Resources/Tools.EllipseSelect.png0000664000175000017500000000033212474706675025207 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DnIDAT8Oc`,,,` D$/ ]#:k@6 p Et^!v ` b/BWP?`qJW&k2re&Ph蜆E!(qz IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Edit.Deselect.png0000664000175000017500000000065312474706675024700 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<)IDAT8Oc`/ϖSd񝷷O<#nnqf{GgGW>+;9-wXkai{^UUM l&&6֓cdd(/(ȥk򿺆L4qqqihlPо#,,aHVN)(Cř՚U+:rrrp Kjacg#h&R Uz('(,">Aa vLL, ȶ111v'*k>hLLjƳRwUd:<$hݸIENDB`pinta-1.6/Pinta.Resources/Resources/ResizeCanvas.RightArrow.png0000664000175000017500000000053512474706675026044 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8c?%B0 k_WAPz"e_~ ¿~1d7۷.j3Jؖ?7@&˗zZYj'Me7Xo!o+]r{:g0ARR oܽp{=x -YXPAku1ba7lIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Adjustments.BrightnessAndContrast.png0000664000175000017500000000066312474706675031036 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.6/Pinta.Resources/Resources/Menu.Image.Rotate90CCW.png0000664000175000017500000000122012474706675025240 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.6/Pinta.Resources/Resources/Tools.ColorPicker.png0000664000175000017500000000113712474706675024672 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.6/Pinta.Resources/Resources/Cursor.RoundedRectangle.png0000664000175000017500000000036412474706675026061 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATX0Cn Y2ב*i P,vBUUZ)C⫼Q `x >G pi:֭!۰u@L?{#؅[00&Fp8/1Ӣ}f-@:[YB)ص{ :p&bT+]R#oIENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.ColorMode.png0000664000175000017500000000157412474706675024650 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#*P[{Gٕu׎F4ƚ–k.:^ _7f+o}k_S=dnIZs.iM4pQ'|Ma.M6]x_<IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Adjustments.Sepia.png0000664000175000017500000000154112474706675025622 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.0/WFIDAT8OUSYLSQ}.PA Ccn6QCPh ȾHUe(;P}PٗRA% 1I@}ݙ3;o p y:ۯtuLYcӕK.iTf U9XCSH T/D ܳ8=s)WͶj&rm- EEiQ"ъ -6?!sǿWΈ޺>8 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.6/Pinta.Resources/Resources/Tools.RectangleSelect.png0000664000175000017500000000027012474706675025517 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DLIDAT8Oc`L?1ahFy0HE@] B)6b/Pl^|:S[*l ~IENDB`pinta-1.6/Pinta.Resources/Resources/About.MonoPowered.png0000664000175000017500000001054612474706675024672 0ustar00cameroncameron00000000000000PNG  IHDR}ʼtbKGD pHYs B(xtIME#E IDAThyp^uI&Z,[C,+ tBRRdH:i;p6چd$C @҆fBDl6`ے-/vOxO6;?>3ow޹޳s͟1c :@]9MPAdo504ߟ^x'8 |䶿oѣyѣZ7[/|;#ܶU[QZ*lDVmeD+QĪ6( mX0 {w~;^c+4~$"_Bp;0 ~" on35)"1Ӏ"2x^UY`{êQWN/#077V)":%"$I5"X 'I]1ʋwb#Gͣ78W(8`VEQTW(>Eq  (V$I|k kj(+ p`OfŃ-gap)0'g.Z|Kߑ64Y]oO7M[}?rIoCi7Ļb8xc]~W/큅.= }[A;꜂~B}GD8S/K&$I`勹e å/w][ۘR>O.ҘM;t`h l\_.*OƦfGS}9A]6b臣Y$me ٬p^Y0L1]eSkd]pUrj/Lo.nkը^(Ҙ>AHڳE+`qs d.MA]{'rcbbZ<0p4E\2S:˄\u"5Z|K31L[bG*0`X,Eјe٩{)=QbYY (ReN2'%I`enRIީf䆶-}v[;yO1~W°lsT M$ q1QgI4t* qD1-p 1r'tZ|ǘczEʯ%^ٳ-eWMCkSFTMe>|r&k=TuWwoM*U}cBL0YL8\tn5?m(Q w· czy^1YS(3D[W,=ɼ\ձmY7m/&[T0""M֎orw%eMQNs"1qfMEt|&z io1zxSZinCDIFᮎ  +Ug"2+%ωÛ:7ΏA[[UЙ?:7yԹ&y(U{EռGvms<׵-bic%vQ߹}O#36~*4u5 w-mqWdž[iq6CDψyr*pGK[2o gpL*΍?vvul\Ͻ)'E3-m=$wPc_~lOp:yeAT[EUUj"1=t|riluq 6W4sʦ΍^ӧ+ULb\Kskfe_| ##T$kݜ_%g?!"wՉsHRZUZUk-"rmK[{Ϙ84I,=/w?2!{绹٣(x IfQzZ(< q2Uܑf_ @c=c$u yY]l7[8퐈[ r<| ~d^Ɖx`7ケp޽wˠ23"n.<=7y"3@"Á=,ݾ<l'o)Ӊª[*a#wU+Ja3 ZNGH̼|4=t`tjT2JH}@z+ :B4rG,"Hn(ׇ{|k4Ѱ\l`Ug1s[fC`%Si([mDD>l!(ILZ]%h}xXwhHy4%kU(-)2RCQUJlD/ދޭ aƀn\ZA8]][ ]SD4hㄍR70ZhNO&.5,!3{\a TesQJ3!{.@97s_QdZ@I`!oZ?FBq[FzETl& 38cw{VU (H)W$i?yaTcV& ε̳a;|`bmDvz6q@Q?F~=DhO~*,WhIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Stylize.Emboss.png0000664000175000017500000000063212474706675026531 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.6/Pinta.Resources/Resources/TextTool.FillBackground.png0000664000175000017500000000043312474706675026024 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.6/Pinta.Resources/Resources/Menu.Effects.Artistic.InkSketch.png0000664000175000017500000000141012474706675027276 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.6/Pinta.Resources/Resources/Menu.View.Grid.png0000664000175000017500000000073012474706675024056 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.6/Pinta.Resources/Resources/Tools.Eraser.png0000664000175000017500000000120712474706675023675 0ustar00cameroncameron00000000000000PNG  IHDRasBIT|d>IDAT8MkQ&RK۵ TP""EAA q+R wѐZT]L@2f{]4 {gqBO k~a\/߫7O=^ZU.Ausӷוj'πq|'̣śe!4 !D+;kk@4k fٲ!b]יpqAGFF6DI RBIN>V iǃa#N뢔1Nf/[~!ģѨdLu;y! |#M,p|hhf^.xyW|~vP(D"8N. hF?/ju l6kV*iL&SmJOOsz~N$jj0V*rX,R"dkk )%@D"r+*ƽ^aZj&ɔ2t̀ xƄdsipjvP~ FɶzlIIENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.ColorPicker.png0000664000175000017500000000117412474706675025050 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|d3IDATXkpG Sݰq(C/޼8 P?L !UAA'*Z)Ss_ Fntt`#3צo/QC 5Ժ .0ZYwg虨`9=VQ( 7LTm@4ps=m|VS@:v䎟XD>}x߳l0B$vq] CX,k Z:@,{Lê0A?"Z'"U\} hjx٨Rڳ X<#pU\ھ u'DCBIIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.View.ZoomOut.png0000664000175000017500000000125712474706675024612 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.6/Pinta.Resources/Resources/Menu.View.Rulers.png0000664000175000017500000000062512474706675024450 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.6/Pinta.Resources/Resources/ResizeCanvas.Image.png0000664000175000017500000000113612474706675024774 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.6/Pinta.Resources/Resources/Toolbar.LinearGradient.png0000664000175000017500000000014012474706675025641 0ustar00cameroncameron00000000000000PNG  IHDR7'IDAT(cd  +OP # U@#x+֤IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Distort.Bulge.png0000664000175000017500000000040112474706675026316 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.6/Pinta.Resources/Resources/ShapeTool.OutlineFill.png0000664000175000017500000000056512474706675025506 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.6/Pinta.Resources/Resources/Toolbar.Bold.png0000664000175000017500000000046012474706675023636 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.6/Pinta.Resources/Resources/Menu.Layers.RotateZoom.png0000664000175000017500000000144312474706675025623 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.6/Pinta.Resources/Resources/Menu.Image.CanvasSize.png0000664000175000017500000000131312474706675025345 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.6/Pinta.Resources/Resources/Menu.Effects.Noise.ReduceNoise.png0000664000175000017500000000057112474706675027122 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.6/Pinta.Resources/Resources/LayersWidget.Hidden.png0000664000175000017500000000127412474706675025156 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.6/Pinta.Resources/Resources/Menu.Effects.Default.png0000664000175000017500000000105112474706675025217 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.6/Pinta.Resources/Resources/StatusBar.CursorXY.png0000664000175000017500000000075312474706675025027 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.6/Pinta.Resources/Resources/Tools.CloneStamp.png0000664000175000017500000000137412474706675024526 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.6/Pinta.Resources/Resources/Menu.Effects.Artistic.OilPainting.png0000664000175000017500000000160112474706675027632 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ó[Ǘ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.6/Pinta.Resources/Resources/Cursor.Text.png0000664000175000017500000000025312474706675023555 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dbIDATXA 0 <^,j%x;Bc2p(2;pXH!vzO,` X+CW?_;o\FƘ_d|.S08IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Edit.SelectAll.png0000664000175000017500000000041112474706675025010 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.5dIDAT8OQ CI"fJA+q~ξcZ;-@]>PT,͂ [+ϨdXIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Render.MandelbrotFractal.png0000664000175000017500000000172012474706675030440 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.6/Pinta.Resources/Resources/Cursor.EllipseSelect.png0000664000175000017500000000062012474706675025364 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dGIDATXUm0ICJWKRI<: 6s)#YyvUVU֪>{-܂7 C[UUm`I~闢c=1 p@R51w(M߁{uތ#9B+IENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.LinearReflectedGradient.png0000664000175000017500000000014212474706675027461 0ustar00cameroncameron00000000000000PNG  IHDR7)IDAT(cπ0Td(U@J#VgRIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Layers.ImportFromFile.png0000664000175000017500000000130312474706675026411 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.6/Pinta.Resources/Resources/Menu.Effects.Noise.AddNoise.png0000664000175000017500000000055312474706675026403 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE333333X?Ix.7k\C]H7k8k6j4e3d7k7k6j3cҕ7kS(dgjW-ӐL{1b``֒u`aԕfO溌e5G+Ԝ0tRNSO*j|>!IDATx^U0I'vv~cP q; L\z ǎ"A+HD]!PLJUaM3qdH m0?^m7?f>=~ٗX|iVj_W~e4IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Layers.MoveLayerDown.png0000664000175000017500000000057312474706675026256 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.6/Pinta.Resources/Resources/Toolbar.Sampling.3x3.png0000664000175000017500000000062612474706675025150 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<lPLTE闸넧ᖴ嚸猬⁤ߋxە劭㟽zuڠ}ݟ꒴內ᐯ㖵哳咳晸桿x~ޏ㙺藹蝻萯䌫ូbjf$tRNSX, IDATxbPFĀ.@!@de3"$$ fD@UK 4 @6E)0 |`&@aX @!@!`9 hIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Adjustments.Levels.png0000664000175000017500000000075412474706675026020 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<jIDAT8O͒+Cq%/<>>tttPPPBBB^^^lllzzzQQQbbbQQQmmmkkkOOOLLLQQQ]]]PPPUUU ___ --- QQQlll>>>ttt^^^PPPzzzbbbBBBx'tRNSR/+aљ13Ԁ #'(&!H4wIDATx^]UP DQ PbJUw>F@wfiÂ, ` v.6!Os09C dPk͕Rzr7 xIENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Gradient.png0000664000175000017500000000062312474706675024367 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dJIDATXMN0nR8b.bJ)Xi@9DɚgVCBn:v]HI`9EQ4 / "^vU{C5?d'cs<ρ"L+u 1e9k-|r!brLX݃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.6/Pinta.Resources/Resources/Menu.Edit.Addins.png0000664000175000017500000000147112474706675024351 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=4-M .z nf@D .BA4)Li)I9‰`Y;1OJ3ݍma9 =1!cʓM2y^$&Ak&J)LccJNv#DF- PVʝUkrL X̔n9fOy$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.6/Pinta.Resources/Resources/Menu.Effects.Blurs.GaussianBlur.png0000664000175000017500000000132512474706675027324 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<wIDATxڄOAǿ?ك;)GA-L I R,16hk&bC"h;XٙYߞ1d2/3}]>*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ȑ#-[V0w?~a i~ZK3Ww%l;~NNXy;6`Æ =z?""{>nQE ڵk'.N=oq(a@:u*X/XqCŝ3z&vd1^ ?IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Layers.FlipVertical.png0000664000175000017500000000064212474706675026104 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<4IDAT8˵JQc>EЦ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.6/Pinta.Resources/Resources/Menu.Adjustments.Posterize.png0000664000175000017500000000013312474706675026541 0ustar00cameroncameron00000000000000PNG  IHDR:"IDATWcd``a`Pf`p#F M IENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.MagicWand.png0000664000175000017500000000117312474706675024465 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|d2IDATXOh`Ɵ4KR"V)]1fF*UQʠ"z8'"^=x.b` vTHtU\i]{y>amwm&he:,ڽ? >;qojxV 5aPiVby4N$ak {U 2&L=v l,I C3C.q8/!5~NEdlppGni)Z*)hn#vt\_n%4Mz + !nvnY 'z, l6QVz} Hh,4CXQgzQ2@ UU!<f09{Dc0Q,|>P(~ytnF~0vA*"Ifq"t]gFOr9 ohA<H$EQV[Ej uӐhdY(yRiy_d2T.I$bu]G:s Q˲L~߫Ofᑥ #mIENDB`pinta-1.6/Pinta.Resources/Resources/Tools.PaintBucket.png0000664000175000017500000000130312474706675024662 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<UIDAT8˕Kaw n"eU ·$kULBl%C؆aһC[Ţ !S]"-ŗ~~V{3[ <3e>&?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.6/Pinta.Resources/Resources/Menu.Effects.Distort.Pixelate.png0000664000175000017500000000056512474706675027046 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@ \<@AY , 0rBXa(@a@a@a;yJݕ1IENDB`pinta-1.6/Pinta.Resources/Resources/About.Image.png0000664000175000017500000010773112474706675023461 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.6/Pinta.Resources/Resources/ResizeCanvas.NorthWest.png0000664000175000017500000000055612474706675025714 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.6/Pinta.Resources/Resources/Menu.Effects.Stylize.EdgeDetect.png0000664000175000017500000000065212474706675027300 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.6/Pinta.Resources/Resources/Tools.Rectangle.png0000664000175000017500000000037412474706675024364 0ustar00cameroncameron00000000000000PNG  IHDR(-SQPLTEX.tRNS@fYIDATx^@.gsҫtxl1ͮAy!J~p ORWEw"aB b!V@nka9!~ΑdIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Blurs.MotionBlur.png0000664000175000017500000000114012474706675027012 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSkA~3fiCl1bs l/ZDJ^zE="5zD"Z J1m&֦$ d73{̼aa(C1>Ԁ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.6/Pinta.Resources/Resources/Menu.Layers.DuplicateLayer.png0000664000175000017500000000046512474706675026432 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT(uMn0E9GBꂫtP kBH$4]8&瑟J&ѨF%@ds3W$q&гݨyFz\MMIENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.AntiAliasingEnabledIcon.png0000664000175000017500000000032712474706675027407 0ustar00cameroncameron00000000000000PNG  IHDR7IDAT(cπ`H``;H-H)  P,pPF;Tă*`09,< ` ~``PoœuZ;Բ 0P5,)X3$| \UF8kȊMd)%IENDB`pinta-1.6/Pinta.Resources/Resources/Tools.ColorPicker.PreviousTool.png0000664000175000017500000000130012474706675027333 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<RIDATxb?6lVi2 &,? + 1 A >" cxß?{3^n@?$ ßHރ ?4k`z @g133AhV&f.]=--MVz !}K /Ãg$Ԕ?KW.1ܻw?l%w#$na|Ë/g|}z7205V'lade¶}Qi}9 uZUfa`@Uh+ (rd>BɧL @wfFo3\x0=L>8sm`: Nt}^bz#@O7bUI @  & @.t1IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Distort.Tile.png0000664000175000017500000000144412474706675026165 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.61H~IDAT8OeS?HzaG$&ĠEBA!J%#ZTKҠK FQ4TED;w{>N'e2Z^^kAwjhh @(H 899TUUX,*uuyyP{{;HfD"Z=WCj ...E ^R)PKKߧDL&Q(333P044R7Lj{lllt:-g6a0552b0CaƉeOC2ڳ٬MS*pzz /`*?LrOoIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Help.Translate.png0000664000175000017500000000120412474706675025101 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.6/Pinta.Resources/Resources/Toolbar.BlendingOverwriteIcon.png0000664000175000017500000000021312474706675027214 0ustar00cameroncameron00000000000000PNG  IHDRb PLTE@@VtRNSMUs,IDATc0jժ |} LXU 0R 2V`IENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.CenterAlignment.png0000664000175000017500000000035212474706675026035 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<|IDAT(cπ01PD /0Ű?1&00d 9Ǧd3!?x7ghV#P70ClU/?l #ű V,ѕIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Layers.AddNewLayer.png0000664000175000017500000000135112474706675025655 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.6/Pinta.Resources/Resources/Menu.Layers.LayerProperties.png0000664000175000017500000000135412474706675026652 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.6/Pinta.Resources/Resources/Tools.Pan.png0000664000175000017500000000057512474706675023201 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.6/Pinta.Resources/Resources/Menu.Effects.Distort.Dents.png0000664000175000017500000000045012474706675026341 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.6/Pinta.Resources/Resources/Menu.Effects.Blurs.Unfocus.png0000664000175000017500000000142412474706675026347 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$O8vu59`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.6/Pinta.Resources/Resources/Tools.LassoSelect.png0000664000175000017500000000047412474706675024702 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.6/Pinta.Resources/Resources/Menu.Adjustments.Curves.png0000664000175000017500000000130612474706675026027 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%6g"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.6/Pinta.Resources/Resources/ShapeTool.Outline.png0000664000175000017500000000055612474706675024677 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.6/Pinta.Resources/Resources/Toolbar.Sampling.9x9.png0000664000175000017500000000137012474706675025161 0ustar00cameroncameron00000000000000PNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE䌳晸疵扩᛺藶捭㚹菮ㅥ߇ZԆ呱닫❼蟾ꏯbօ㠾ꔳ堿ꈨᐯ㞽_Փ䊪᜻葯䔴嘷扲늲땴wދhنaՍpXҦ쁪〩㍬doܝ螼Yslڄߒ䎮]fuޕ|ᄣߡꌬxkڔ{᜺螼苫ᆧ냣ޖ恢]Նfj[Ԙ냫R"_tRNS_,IDATxbCĀ.@@FFF5pXm8 KJ+pxP@EMLƂ). b2LqqPQ㳉 4gd\@|9"(̬d'."@@Mg9i{S-n]ٸ8 XUHr:P\]@^68'. :f"zaQ<=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.6/Pinta.Resources/Resources/LayersWidget.Visible.png0000664000175000017500000000141612474706675025356 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˕KSq}ћHoLL܋"솒!PRtR&$^22p31RiSy7񶔍m^v6n9~.ZZ;MIENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.LassoSelect.png0000664000175000017500000000044412474706675025054 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXU[0  N(-}锒aRKl;08ITΜX)jHrPɳ"^_a*@$LDt?$K\1 ]f8x!M\j`^Lqѐ4*ht=s)fd)0p?k@~m}xӄ,δuh`Шq_k6&kB9ϯ\IENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.TransparentMode.png0000664000175000017500000000034112474706675026062 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<sIDAT8c?Cά@|n@b8Y$jAٞ !a @f8" W0Pp/zJ^( 9WTMZ0/x1C5@| .'|BIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.View.ZoomToSelection.png0000664000175000017500000000112212474706675026262 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.6/Pinta.Resources/Resources/Menu.Effects.Blurs.RadialBlur.png0000664000175000017500000000140212474706675026742 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.6/Pinta.Resources/Resources/Menu.View.ZoomToWindow.png0000664000175000017500000000116212474706675025610 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.6/Pinta.Resources/Resources/Menu.Effects.Artistic.PencilSketch.png0000664000175000017500000000115212474706675027772 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍKSaWEDBԅЍ}a? P3B ]t +$aA IX^ns\[sKp;;gɦps6qt w`԰U]|^)JrL+:Nsb&\.u,Ld2iIYBӗ)v>)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{޼a QDQ!+:6h[dLa[a2- 4Ef@˙-pkF3i sٌ@Inw@Ƴy(_4:ݭ:_^G۷LLЋ*ro1&؀vg-1iV:v׷IE/ȲT*nFso5*m%ŒY#޳'&ώ6%Pepa&kDWA)T 5;UlvjkBOb4M$Id2PJX O_Pnts.L&H$`&TUaf4 xCCCoE,3~T|DUUDQ9`zz`p,xŅSセ###BQ (ˏ !D& #x<$u]p;r'=_JA5q:w~_}Zmd3Z?[XXW.>IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Image.FlipHorizontal.png0000664000175000017500000000062312474706675026246 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̔n>> vvv333ggg(((^^^)tRNS@f`IDATx^G0@jkf]2 nF9?A~P"jc)q8tpAK߽ݰ7 e̫>X -KUIENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Ellipse.png0000664000175000017500000000043312474706675024226 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATX .{r-V ?\#DgS(8F?_Sqo2i$ ৬\/,B^%-0 8dž2dJ "lط:v" U\a@!iޱJ5K6{zT$ig5w\W_c ]E+>B-IIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Blurs.ZoomBlur.png0000664000175000017500000000141012474706675026471 0ustar00cameroncameron00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜSMhQDʦmlATX`F[Ks[-^xكPr`"FT WRiIgf77v7˒,ˊ1db7MS9&66^ejFo{yO$4"xtanE׆]Z:KTjPV=ƈcy:A݆[xyv(CSq#-`ݠjռV_Wu-X&},z9 ayO_UPJc[W[~Ff5y@c:(0C>Zߴ;<!$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.6/Pinta.Resources/Resources/Menu.Effects.Photo.Glow.png0000664000175000017500000000141612474706675025640 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˕KSq}ћHoLL܋"솒!PRtR&$^22p31RiSy7񶔍m^v6n9~.ZZ;MIENDB`pinta-1.6/Pinta.Resources/Resources/Tools.MagicWand.png0000664000175000017500000000107212474706675024306 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.6/Pinta.Resources/Resources/Menu.Adjustments.HueAndSaturation.png0000664000175000017500000000150012474706675027772 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs  IDAT8O{LaӰ?ZvΩN SQ!-bkRkCe٬2VJShݔR:PE:5 6_vmgsDMQ )j+r4]|7Ⱥv̢:.ՒJci%3z.'(# WЧLfWᴄe4[1@UՆ&-S{߮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.6/Pinta.Resources/Resources/Cursor.CloneStamp.png0000664000175000017500000000134612474706675024702 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXMHTQ͇38jJQJ터rQ"\k)H`F"Z0D l"jD53{{㴘Q bp˻s@]ul""2ϭ#VфOO|K&"f}k,{pqck;1խKWĸ]w 7*l+{/޻ç/2œJ*dFt|%gTpk1oDU"hzDmiP,k_g/l۬Q1r ׯ]0.$$!NqQՁp끱+#} J`R( == )H,PG{B=N KSS7 !p0~YX/#pZZlAH! 󟑋}͑Cн~~h 7`$g#92NW0̵b24i%+ѡM\<ׅX<|,8`\N љS}OڬCHXi68gջOs?V!" zw#@DT\3WXݑ6 QYӰVAQܨHBn@fw/jdOIENDB`pinta-1.6/Pinta.Resources/Resources/Tools.Zoom.png0000664000175000017500000000114712474706675023403 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.6/Pinta.Resources/Resources/Menu.Effects.Noise.Median.png0000664000175000017500000000071312474706675026110 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.6/Pinta.Resources/Resources/Menu.Image.FlipVertical.png0000664000175000017500000000064212474706675025667 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<4IDAT8˵JQc>EЦ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.6/Pinta.Resources/Resources/Tools.Pencil.png0000664000175000017500000000070212474706675023665 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.6/Pinta.Resources/Resources/ResizeCanvas.LeftArrow.png0000664000175000017500000000053112474706675025655 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8c?%B0 (=ĻI12$C_?3¿~1`._edj>)*n90_ ѿV\ٿ0aX`ſ4ܟ@_P303'×^ 4G)1vUMB9 i;N@ͺ@Ռ㡻zZIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Photo.RedEyeRemove.png0000664000175000017500000000024512474706675027262 0ustar00cameroncameron00000000000000PNG  IHDRRPLTE@@(HtRNS@f8IDAT[c` *) h&AaA!C9=Q(\RQ:t[*""K2IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Layers.DeleteLayer.png0000664000175000017500000000135012474706675025714 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䍟yo:ĭ]?$e'g'o NGʲ:ęE ER 9 , i5؉ٙpN8!'R@ksm4fh8Z[3M@L5 3a"x^nyeu~y|IENDB`pinta-1.6/Pinta.Resources/Resources/Tools.Ellipse.png0000664000175000017500000000057312474706675024056 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTE1n1n1n1n1n1n1n1nqgsúzo;tRNSYFjι_,IDATx^E@ IZ235:/3'<7t`0lm\Lo>&!A{v0LeQR syR kOUEpn\A v~1IENDB`pinta-1.6/Pinta.Resources/Resources/Toolbar.RightAlignment.png0000664000175000017500000000032112474706675025666 0ustar00cameroncameron00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<cIDAT(cπ01PD /0Ű?1&@@P0xhR#یHt^yω6?ݿ3n1`dHLdqIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Adjustments.BlackAndWhite.png0000664000175000017500000000037512474706675027225 0ustar00cameroncameron00000000000000PNG  IHDR;֕JsRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v2.6%DXIDAT8Oc`H d4cd(^iU(a@HTь+đ-9o<Ռn#btç)JD59IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Blurs.Fragment.png0000664000175000017500000000075412474706675026475 0ustar00cameroncameron00000000000000PNG  IHDR7IDAT(SUQMH``=H 2Ae% uP A(KaFѶXܥBnBDWou!6\{}pxA viWS⍆vߵq2' &Ǘ}Eș˚b^L 3/Vzquźlj5ep j68XS&G׽ Nb9CA!鍜NP MPs%SnؾzYx@Ll@FL.UIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Distort.FrostedGlass.png0000664000175000017500000000057212474706675027671 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.6/Pinta.Resources/Resources/Toolbar.AntiAliasingDisabledIcon.png0000664000175000017500000000014612474706675027563 0ustar00cameroncameron00000000000000PNG  IHDR7-IDAT(c`!^@PG+84F1)f[tl7IENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Line.png0000664000175000017500000000043312474706675023520 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXV0ÊCRڮdĨᄃJ@3ffOfKmWts9cP!4t%;,5m ePf#T6Y2 /LT@;[!&D%5n. J_241v% 5ܚLk8㰣=5o'Wͦ@ݳ YF ph"66f $PIENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Pan.png0000664000175000017500000000055512474706675023354 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|d$IDATX!n@ߏBV#4a@# s1 D"1MHEM.WQд!@|/?'ii,Ec]~6M((zZa9iJ1{u~+gs<ϧfSm6ER$ɢ(("o%'ZsKӗc6y@e,r՞i}s'I`1f3N5UUm"%0I,p:R vq 묒IENDB`pinta-1.6/Pinta.Resources/Resources/ColorPalette.ResetIcon.png0000664000175000017500000000027712474706675025652 0ustar00cameroncameron00000000000000PNG  IHDR;֕JsBIT|dvIDAT(c`(c,X?.E Ya(X`N;7H3 a% (qF5t%m8Vf Ξ".S9=s?h`W3r .C.,~IENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Paintbrush.png0000664000175000017500000000113612474706675024751 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXc``̴0TDI'Otw~x-?!+m}OH=5-dݶ(뢖yϷ;xi>^ !$fsp&?ž?^9O],cR=%K ̧g|b.D131R&&&f6VVE)V[s>|yuo?+W!7; ).*Ya `8o]G0롘KL|"uuYXؘ~>b`{>Qؔ Ym\> ^~~q︤*^J* l >1Z;%fnOD9M4H](UFa۹ vfp ^۾)9जZAl| 21|+oY[ˉrvࣇ/x__0{h||% X4T"$889XWΏQ0 5eIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Effects.Distort.PolarInversion.png0000664000175000017500000000051412474706675030237 0ustar00cameroncameron00000000000000PNG  IHDR:IDATWc`b``0_{% Sͪ06N#a՛9 ܸiE=?C0T䔚ir  @sm(jh,\"eR/(c{g]CC]GǑ@mǽZ;jk[~rKK]]s4 CjNhn~tw4 i~" _xŦ/]u?_[8VU6. ?'KE{saP~_ŷD?c``֨zdxIENDB`pinta-1.6/Pinta.Resources/Resources/Tools.RoundedRectangle.png0000664000175000017500000000062212474706675025701 0ustar00cameroncameron00000000000000PNG  IHDR(-SPLTEXXXX@*tRNSpYJIDATx^51틙9ž(E(#mS 4gg&5p2EW4G P6M_).%\2;!ȉjg7Y209\u-f[+`ZB :. cx^ #.;IENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.Recolor.png0000664000175000017500000000106012474706675024233 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATX햱K\A#Wba8M  A)Rؤ6`I "E ,5UR x`Cyx{ۙمkDf0sY[ nƑ C?9xz'7c&8קp  .|=VP "PK8=f ؤ+%q `߆|xyXօ>x&K:"Hш5W5^475%bJZR%a׾1o 4@WQ-"j$Ze"kP0_nW \.>CI@@8FR$ڻmrV>^*03$UA};71z6s84>=H7h'Ф$ WB 9{ @F=^uIENDB`pinta-1.6/Pinta.Resources/Resources/About.ImageTop.png0000664000175000017500000003447312474706675024146 0ustar00cameroncameron00000000000000PNG  IHDR54bgAMA7tEXtSoftwareAdobe ImageReadyqe<tPLTE8E[Ie;JbHb@Qj9H_CYsD[wUu7DXEZvG_~:Jb8G]9F^DZt5=O9HaRpE^zF]zD]xAUn6BVY|OlBWsCWrAUpF\y>RjMiKg@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.6/Pinta.Resources/Resources/Toolbar.BlendingEnabledIcon.png0000664000175000017500000000023512474706675026564 0ustar00cameroncameron00000000000000PNG  IHDRRPLTEP@w;k<]wtRNS\4IDAT[cP8 LCA 2\ Q(q ̂ €fv&IENDB`pinta-1.6/Pinta.Resources/Resources/Menu.View.ZoomIn.png0000664000175000017500000000125112474706675024403 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.6/Pinta.Resources/Resources/ShapeTool.Fill.png0000664000175000017500000000043112474706675024136 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.6/Pinta.Resources/Resources/Menu.Effects.Distort.Twist.png0000664000175000017500000000117312474706675026401 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;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.6/Pinta.Resources/Resources/Menu.Effects.Photo.SoftenPortrait.png0000664000175000017500000000153112474706675027711 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.6/Pinta.Resources/Resources/Menu.Edit.InvertSelection.png0000664000175000017500000000035712474706675026266 0ustar00cameroncameron00000000000000PNG  IHDRagAMA atEXtSoftwarePaint.NET v2.6%DIDAT8Oc`p $`j30_I@%pF3D `oŋ > Ka cSG`I #$$:iE/K/qv3DTXjIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.View.ActualSize.png0000664000175000017500000000121512474706675025234 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.6/Pinta.Resources/Resources/ResizeCanvas.SouthWest.png0000664000175000017500000000056012474706675025717 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.6/Pinta.Resources/Resources/Cursor.Eraser.png0000664000175000017500000000124712474706675024056 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|d^IDATX퓽kSQxCқ:V(;qqDb6QA"E1 NtH{^P[1Ns9x_СξF'O`5/{ duo&#;9FF=ctM,=ZGbjֲT_1oY z]Of JkRǧN,7ѻ1 @﫫b "ư׆TvZ;H$Ӎ14c8?EPMe%putVx"(}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.6/Pinta.Resources/Resources/Menu.Effects.Blurs.SurfaceBlur.png0000664000175000017500000000156012474706675027143 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.6/Pinta.Resources/Resources/Menu.Edit.EraseSelection.png0000664000175000017500000000131412474706675026050 0ustar00cameroncameron00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ< pHYs  5IDAT8Oc??F mL nX;9;flX`r @,@dg*_oTCT4 9흜4n4@-]Ywׇ$oja鷩y 06 .wpmgwd[z&մ Ok[[F{{'MΛ[726nhl^MKw.'z`So`⠧o=eM!lc5uKz71{( L4 FDLDN^eUuL^֕UP>%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.6/Pinta.Resources/Resources/Menu.Effects.Render.Clouds.png0000664000175000017500000000115412474706675026306 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.6/Pinta.Resources/Resources/Menu.Help.Bug.png0000664000175000017500000000140612474706675023665 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˝OSQ\^[تtz% l$***2: iRp c0ąKw&&`44(eKɽwwrOX\HiscUQz@;քIdTaˀ)jC'يKT8=ʯ9ނ^zΘ1OFZ[W-Gz?&%*MGnN!aO>Nc[ɨ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.6/Pinta.Resources/Resources/About.ImageSep.png0000664000175000017500000000041312474706675024116 0ustar00cameroncameron00000000000000PNG  IHDR =Y sBIT|d pHYs::tEXtSoftwarewww.inkscape.org<IDATx۱ 0@vuV@>eKN &`IF (x`_+3qI$78.0! `;cIENDB`pinta-1.6/Pinta.Resources/Resources/Menu.Image.Rotate180CW.png0000664000175000017500000000121512474706675025221 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.6/Pinta.Resources/Resources/Cursor.Pencil.png0000664000175000017500000000107612474706675024047 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXKTaz[Ȅ6BS-R)-UZ$"ErSвe(Dr"ŨI 0Gs6Șf3whBy8( ف<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.6/Pinta.Resources/Resources/Toolbar.PlusButton.png0000664000175000017500000000043712474706675025101 0ustar00cameroncameron00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.0/WFIDAT8Oݒ D4!*MX O;*CbX߮c{B$|X& ꂳ-3\/0ܡ9JD)@&e(wA9R(ق1Ol5iOCŵ6ɒ)3`ب}(aJj} P.,6D3IENDB`pinta-1.6/Pinta.Resources/Resources/Cursor.RectangleSelect.png0000664000175000017500000000040412474706675025673 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATXUA 0 >iڥn #YNGRws؝G1ܝƏ&~ffεP5Ts()PW$#$y!hЋmT\k F>gn@Ayla3&ۋ0ؤPXp.%¯V6?tIENDB`pinta-1.6/Pinta.Resources/Resources/ResizeCanvas.SouthEast.png0000664000175000017500000000056012474706675025671 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.6/Pinta.Resources/Resources/Cursor.FreeformShape.png0000664000175000017500000000037112474706675025360 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|dIDATX Dg6/w颠霔Rh z$3sKh sȾ;y~FD"2"# " ZGڬTq7v Ϭ@5-{Q)5+p`W6^I[/n+J!Cz.!>6y:%׵~oh+IENDB`pinta-1.6/Pinta.Resources/Resources/Tools.MoveSelection.png0000664000175000017500000000065412474706675025235 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&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.6/Pinta.Resources/Resources/Menu.Image.Crop.png0000664000175000017500000000051712474706675024207 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.6/Pinta.Resources/.gitignore0000664000175000017500000000001312474706675020657 0ustar00cameroncameron00000000000000/bin/ /obj/pinta-1.6/Pinta.Resources/Pinta.Resources.csproj0000664000175000017500000007151212474706675023151 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.Pan.png Cursor.Paintbrush.png Cursor.ColorPicker.png Cursor.MagicWand.png Cursor.Gradient.png Cursor.Text.png Cursor.Pencil.png Cursor.Line.png Tools.LassoSelect.png Cursor.RectangleSelect.png Cursor.LassoSelect.png Cursor.EllipseSelect.png Cursor.Eraser.png Cursor.Rectangle.png Cursor.RoundedRectangle.png Cursor.Ellipse.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 ColorPalette.ResetIcon.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 Toolbar.Sampling.1x1.png Toolbar.Sampling.3x3.png Toolbar.Sampling.5x5.png Toolbar.Sampling.7x7.png Toolbar.Sampling.9x9.png Tools.ColorPicker.PreviousTool.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.6/Pinta.Resources/ResourceManager.cs0000664000175000017500000000657312474706675022321 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. // This will also load any icons added by Gtk.IconFactory.AddDefault() . using (var icon_set = Gtk.Widget.DefaultStyle.LookupIconSet (name)) { if (icon_set != null) { return icon_set.RenderIcon (Gtk.Widget.DefaultStyle, Gtk.Widget.DefaultDirection, Gtk.StateType.Normal, GetIconSize (size), null, null); } } // 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); } private static Gtk.IconSize GetIconSize(int size) { switch (size) { case 16: return Gtk.IconSize.SmallToolbar; case 32: return Gtk.IconSize.Dnd; default: return Gtk.IconSize.Invalid; } } } } pinta-1.6/Pinta.Resources/Properties/0000775000175000017500000000000012474707505021022 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Resources/Properties/AssemblyInfo.cs0000664000175000017500000000172612474707505023752 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.6.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.6/po/0000775000175000017500000000000012474707543014262 5ustar00cameroncameron00000000000000pinta-1.6/po/ko.po0000664000175000017500000017727712474707515015257 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:00+0000\n" "Last-Translator: SCRS \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "추가 기능 관리자" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "실행취소" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "재실행" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "오려두기" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "붙여넣기" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "새 레이어로 붙여넣기" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "새 이미지로 붙여넣기" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "선택 영역 지우기" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "선택 영역 채우기" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "선택 영역 반전" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "전체 선택" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "전체 선택해제" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "열기" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "다른 이름으로 저장..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "색상 수 설정" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "색깔판" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "선택 영역 지우기" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "팔렛트 파일 열기" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "팔렛트 파일(*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "모든 파일" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "오류" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "팔렛트 파일 저장" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET 팔렛트(*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP 팔렛트 (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "새로 만듦..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "소개" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "선택영역 잘라내기" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "자동으로 잘라내기" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "이미지 크기조정..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "캔버스 크기조정..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "수평 뒤집기" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "수직 뒤집기" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "시계방향으로 90° 회전" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "반시계 방향으로 90° 회전" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "180° 회전" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "편평하게" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "신규 레이어 추가" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "레이어 삭제" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "레이어 복제" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "레이어 합치기" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "파일에서 가져오기..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "레이어 회전/줌..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "레이어 위로 보내기" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "레이어 아래로 보내기" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "레이어 속성.." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "이미지 파일 열기" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "파일에서 가져오기" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "선택영역 확대" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "픽셀 안내선" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "눈금자" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "전체화면" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "창" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "모두 저장" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "모두 닫기" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "평균 혼합" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "안티알리아싱 설정" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "안티알리아싱 해제" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "레이어" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "그림판 크기 변경" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "선택한 부분을 복사해 옮긴다" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "캔버스보다 큰 이미지" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "붙여넣기 이미지가 캔버스 사이즈보다 큽니다. 어떻게 하시겠습니까?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "캔버스 늘리기" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "캔버스 크기를 변경하지 않음." #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "클립보드에 이미지가 없습니다." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "더하기(+) (Ctrl + 왼쪽 클릭)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "빼기(-) (오른쪽 클릭)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "반전 (Ctrl + 오른쪽 클릭)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "교차 (Shift + 왼쪽 클릭)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " 선택 모드 " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "보통" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "곱하기" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "발광 효과" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "레이어 수평 뒤집기" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "레이어 수직 뒤집기" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "그림 크기 조정" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 이미지 ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "선택된 도구가 없습니다." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "저장되지 않은 이미지 {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "배경색" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "새 그림" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "이미지 열기" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "열 수 없는 파일 : {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "자동 색보정" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "흑백변환" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "밝기 / 대비" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "커브" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "색조 / 채도" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "색 반전" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "레벨" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "포스터화" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "세피아" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "색보정" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "빨강" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "녹색" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "파랑" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "연결됨" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "잡티 섞기" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "노이즈" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "채도" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "부풀리기" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "뒤틀어놓기" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "총계" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "구름" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "덧씌우기" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "테두리만 강조" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "테두리 효과" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "돋을새김" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "조각흔들기" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "흐릿하게 만들기" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "조각화" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "젖빛 유리 씌우기" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "가우스 곡선식 흐리기" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "둥글림 정도" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "사진" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "먹으로 밑그림 그린 효과" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "미술품 흉내내기" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "잉크 외곽선" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "줄리아 프랙탈" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "확대" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "만델브로트의 프랙탈" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "뭉개기" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "움직임 효과" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "유화효과" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "붓 크기" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "윤곽선" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "연필 밑그림 효과" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "연필심 크기" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "색 범위" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "그림낱 강조" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "셀 크기" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "구의 꼭지점 향해 객체 반복해서 넣기" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "방사형 흐리기" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "붉은 눈동자 수정" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "오차" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "노이즈 감소" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "돋을새김" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "선명하게" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "보드랍게 만들기" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "부드러움" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "따뜻함" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "매끄러운 타일에 반사효과" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "비틀기" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "초점 없애기" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "중앙 오프셋" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "확대해 흐리기" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "보정대상 기준" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "적녹청" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "밝기" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "빨강 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "파랑 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "초기화" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "도움말: 오른쪽 딸깍으로 조정점을 지울 수 있습니다." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "입력 히스토그램" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "입력" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "출력" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "출력 히스토그램" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "기본색 선택" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "보조색 선택" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "색깔판 색깔 선택" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "기본색과 보조색을 교환하려면 클릭" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "기본색을 선택하려면 클릭" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "보조색을 선택하려면 클릭" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "기본색을 설정하려면 왼쪽 클릭을 하세요. 보조색을 설정하려면 오른쪽 클릭을 하세요. 팔레트 색상을 선택하려면 중간 클릭을 하세요." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "보이는 레이어" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "숨긴 레이어" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "동그라미" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "모눈" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "흩뿌리기" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "사각형" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "브러시 너비" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "브러시 크기 축소" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "브러시 크기 확대" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "채움 방식" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "윤곽 모양" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "채움 모양" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "채움과 외곽선 모양" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "타원" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "따라그리기" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl글쇠를 누르고 왼쪽 딸깍 원본이 지정되고, 왼쪽 딸깍하면 따라서 그려집니다." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "색 고르기" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "기본색 설정은 왼쪽 클릭. 보조색 설정은 오른쪽 클릭." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "단일 픽셀" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 영역" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 영역" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 영역" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 영역" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "이미지" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "색 고른 후" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "계속 색 고르기" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "이전 도구로 전환" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "연필 도구로 전환" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "연필" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "타원 선택" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "지우개" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "배경색을 투명한 배경으로 하려면 왼쪽 클릭, 보조색으로 하려면 오른쪽 클릭하세요. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "홍수 모드" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "내부" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "전체" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "자유도형 그리기" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "왼쪽 클릭은 기본색으로 칠합니다. 오른쪽 클릭은 보조색으로 칠합니다." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "그라디언트" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "기본색에서 보조색으로 채우려면 클릭한 후 끌어서 놓으세요. 반대로 채우려면 오른쪽 클릭을 하세요." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "선형 그라데이션" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "반사된 선형 그라데이션" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "다이아몬드형 그라데이션" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "원추형 그라데이션" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "올가미 선택" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "선택 영역의 외곽선을 그리려면 클릭한 후 끌어서 놓으세요." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "요술봉 선택" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "비슷한 색상 영역을 선택하려면 클릭하세요." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "선택된 영역의 내용을 이동하려면 왼쪽 클릭을 하고 끌어서 놓으세요. 선택 영역의 내용을 회전하려면 오른쪽 클릭을 하고 끌어서 놓으세요." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "선택한 부분 옮기기" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "선택한 외곽선 영역을 이동하려면 왼쪽 클릭하여 끌어서 놓으세요. 선택 외곽선 영역을 회전하려면 오른쪽 클릭하여 끌어서 놓으세요." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "붓" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "형식" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "색칠" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "잡기" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "이미지를 조정하려면 클릭한 후 끌어서 놓으세요." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "색바꾸기" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "사각형 선택" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "사각형" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "둥근 사각형" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "글자" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "텍스트 커서를 위치시키려면 왼쪽 클릭한 후 글자를 입력하세요. 글자색은 기본색으로 적용됩니다." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "글꼴" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "굵게" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "기울임" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "밑줄" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "왼쪽 정렬" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "가운데 정렬" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "오른쪽 정렬" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "글꼴처리" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "보통 과 외곽선" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "배경 채우기" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "외곽선 너비" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "외곽선 크기 감소" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "외곽선 크기 확대" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "확대하려면 왼쪽 클릭. 축소하려면 오른쪽 클릭. 선택 부분 확대는 클릭하여 끌어서 놓으세요." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "팔렛트 크기 조정" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "새 팔렛트 크기:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "\"{0}\" 이미지를 닫기 전에 저장하시겠습니까?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "저장하지 않으면, 모든 변경 사항을 잃어버립니다" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "스크린샷 찍기" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "스크린샷 찍기 전 지연시간(초):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "이미지 파일" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "이미지 파일 저장" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta는 해당 형식의 이미지 파일을 지원하지 않습니다." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "읽기 전용 파일을 저장할 수 없습니다." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "너무 큰 이미지" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO 파일은 255 x 255 픽셀보다 클 수 없습니다." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "\"{0}\"(이)라는 이름의 파일이 이미 있습니다. 덮어 쓰시겠습니까?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "자료가 이미 \"{1}\" 에 존재합니다. 저장하면 현재 내용으로 바뀝니다." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "레이어 투명도" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "레이어 이름변경" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "레이어 숨기기" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "레이어 보이기" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "레이어 속성" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "레이어 회전/줌" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "현재 릴리즈에 대한 기여자 :" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "이전 기여자 :" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Jongwon Kim https://launchpad.net/~nanpa777-y\n" " Litty https://launchpad.net/~litty\n" " Mike Sierra https://launchpad.net/~ubuntuda\n" " SCRS https://launchpad.net/~secondroms\n" " Softblow https://launchpad.net/~ccwpc" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "번역자:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "이 무른모는 Paint.NET을 기반으로 합니다." #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "일부 아이콘의 출처 :" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pinta에 대하여" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "판 정보" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "판 번호:" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "사용권" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "MIT X11 사용허가 하에 배포됐습니다." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "저작권" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta 기여자" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 화질" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "화질: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "이름:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "표시" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "투명도:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "너비:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "픽셀" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "높이:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "제목" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "파일 경로" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "숨기기" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "고정하기" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "띄움" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "자동 숨기기" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "비율 유지" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "저자:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "렌더링을 위한 쓰레드 수" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "자료 (_F)" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "편집(_E)" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "보기(_V)" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "이미지(_I)" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "레이어(_L)" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "조정(_A)" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "효과(_C)" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "창(_W)" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "도구 창" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "도움말(_H)" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "선택사항명" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "작업 기록" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "레이어" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "이미지" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "도구" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "경계선 처리" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "다중 선택:\n" "\n" #: 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 "요구됨 : {0} v{1}, 찾음 v{2}" #: 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] "{0}개 업데이트 사용가능" #: 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.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.6/po/Makefile.in.in0000644000175000017500000001604612474707536016743 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)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(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.6/po/nb.po0000664000175000017500000020102312474707515015216 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-25 05:29+0000\n" "Last-Translator: Harald H. \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Tilleggshåndtering" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Angre" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Gjenta" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Klipp ut" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiér" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopi slått sammen" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Lim inn" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Lim inn i nytt lag" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Lim inn i et nytt bilde" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Slett utvalget" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fyll utvalget" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverter utvalg" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Merk alle" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Avmerk alle" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Åpne..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Lagre som..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Sett tilbake til standard" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Still inn antall farger" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palett" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Slett utvalg" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Fjern merking" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Åpne palett-fil" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palett-filer (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Alle filer" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Feil" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Lagre palett-fil" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palett-fil (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palett-fil (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Om" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Endre bildestørrelse..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Endre lerretstørrelse..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Vend horisontalt" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Vend vertikalt" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Roter 90° med klokken" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Roter 90° mot klokken" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Roter 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Flat ut" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Legg til et nytt lag" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Slett lag" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dupliser lag" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Flett lag nedover" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importer fra fil..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotér / Forstørr lag..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Flytt lag opp" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Flytt lag ned" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Lagegenskaper..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Åpne bildefil" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importer fra fil" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Forstørr" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Forminsk" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Beste tilpasning" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Forstørr til utvalget" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal størrelse" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Verktøylinje" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pikselrutenett" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linjaler" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Piksler" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tommer" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fullskjerm" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Vindu" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Linjalenheter" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Verktøy" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Hurtigtast" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal blending" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overskriv" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Kantutjevning slått på" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Kantutjevning slått av" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lag" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopi" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Endre lerretstørrelse" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Flytt valgte piksler" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Bildet er større enn lerretet" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Utvid lerretet" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "La være å endre lerretets størrelse" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Bildet kan ikke limes inn" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Utklippstavlen inneholder ikke et bilde." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Erstatt" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Ekskluder (-) (Høyreklikk)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Avskjær (Shift + Venstreklikk)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multipliser" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflekter" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glød" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Overlegg" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Forskjell" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Gjør lysere" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Gjør mørkere" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Avslutt piksler" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Endre størrelse på bilde" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} bilde ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Visningseffekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Ingen verktøy er valgt." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ulagret bilde {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Bakgrunn" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nytt bilde" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Åpne bilde" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Tilgang nektet" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunne ikke åpne fil: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Autonivå" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Svart-hvitt" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Lysstyrke / kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Lyshet" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurver" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Fargetone / Metning" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Snu om farger" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivåer" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Plakateffekt" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Bruntone" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Nivå tilpassning" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rød" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grønn" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blå" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Koblet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Legg til støy" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Støy" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Fargemetning" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Omfang" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Buling" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Forvreng" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Mengde" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Forskyving" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Skyer" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Generer" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Målestokk" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Styrke" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Utgangsverdi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Oppdag kanter" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilisér" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Vinkel" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Preg" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Utydeliggjør" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenter" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Avstand" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotasjon" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frostet glass" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussisk slør" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Bilde" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Pennskisse" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Kunstnerisk" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Blekkutheving" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Fargelegging" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalitet" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Forstørr/forminsk" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Prosentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Bevegelsesslør" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Midtstilt" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oljemaleri" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penselstørrelse" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grovhet" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Omriss" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tykkelse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Blyantskisse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Blyanttykkelse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Fargeområde" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikseller" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cellestørrelse" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polar invertering" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radial blur" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Fjern røde øyne" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toleranse" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduser støy" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Styrke" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relieff" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Gjør skarpere" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Mykne portrett" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mykhet" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Lyssetting" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Varme" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Flisrefleksjon" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Flisstørrelse" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Vridd" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Kantutjevning" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Defokusér" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Sentrumsforskyvning" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Uklar forstørrelse" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Overføringskart" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lysstyrke" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rød " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blå " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Nullstill" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tips: Høyreklikk for å fjerne kontrollpunkter" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogram inndata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Inndata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Utdata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogram utdata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatisk" #: ../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:106 msgid "Choose Primary Color" msgstr "Velg primærfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Velg sekundærfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Velg palettfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klikk for bytte mellom primær- og sekundærfarge." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Klikk for å tilbakestille primær- og sekundærfarge." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klikk for å velge primærfarge." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klikk for å velge sekundærfarge." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Venstreklikk for å sette primærfarge. Høyreklikk for å sette sekundærfarge. " "Mellomklikk for å velge palettfarge." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Lag vises" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Lag skjult" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Sirkler" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Rutenett" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Malingsdrypp" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Firkanter" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Børstebredde" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Reduser børstestørrelse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Øk børstestørrelse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fyllstil" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Lag omriss av formen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fyll formen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Lag omriss og fyll formen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonestempel" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+venstre museklikk for å sette utgangspunkt, venstre museklikk for å " "tegne." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Fargeplukker" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Bilde" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Etter utvalg" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ikke bytt verktøy" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Bytt til det forrige verktøyet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Bytt til blyant-verktøyet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Blyant" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elliptisk utvalg" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Klikk og dra for å tegne et elliptisk utvalg. Hold Shift å begrense til en " "sirkel." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Viskelær" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Fyllmodus" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Kontinuerlig" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Fri from" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineær gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineær gradient med refleksjon" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Diamantformet gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kjegleformet gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasso-utvalg" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magisk utvalgsstav" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klikk for å velge utvalg av samme farge." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Venstreklikk og dra utvalget å flytte valgt innhold. Høyreklikk og dra " "utvalget for å rotere valgt innhold." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytt merket område" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Venstreklikk og dra utvalget for å flytte utvalgets omrisse. Høyreklikk og " "dra utvalget for å rotere utvalgets omrisse." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Malerpensel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Malingsspann" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Panorér" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikk og dra for å navigere i bildet." #: ../Pinta.Tools/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 å frihåndstegne en-piksel brede linjer med primærfargen. " "Høyreklikk for å bruke den sekundære farger." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Endre farge" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rektangelutvalg" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Klikk og dra for å tegne et rektangulært utvalg. Hold Shift å begrense til " "en firkant." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rektangel" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Avrundet rektangel" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Tekstfullføring" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Skrifttype" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Fet" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Understreket" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Venstrejuster" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Senterjuster" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Høyrejuster" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Tekststil" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal og uthevet" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fylt bakgrunn" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Uthevelsesbredde" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Reduser uthevelsesbredde" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Øk uthevelsesbredde" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Endre palettstørrelse" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Ny palettstørrelse:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Lagre endringene til bildet \"{0}\" før det lukkes?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Hvis du ikke lagrer vil alle endringer gå tapt." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ta skjermbilde" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Ventetid før skjermbilde blir tatt (sekunder):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Bildefiler" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Lagre bildefil" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta støtter ikke lagring av bilder i dette formatet." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Kan ikke lagre over en skrivebeskyttet fil." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Bildet er for stort" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO-filer kan ikke være større enn 255 x 255 piksler." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Laggjennomsiktighet" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Endre navn på lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Gjem lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Vis lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Laginnstillinger" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotér / Forstørr lag" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Bidragsytere til denne utgivelsen:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Tidligere bidragsytere:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Espen L https://launchpad.net/~espenl\n" " Harald H. https://launchpad.net/~haarektrans\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:149 msgid "Translated by:" msgstr "Oversatt av:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basert på Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Bruker noen av ikonene fra:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Om Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versjonsinformasjon" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versjon" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lisensavtale" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Utgitt under MIT X11-lisensen." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Opphavsrett" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "av Pintas bidragsytere" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Detaljer" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalitet: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Navn:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Synlig" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blendingsmodus" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Tetthet:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Bredde:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "piksler" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Høyde:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tittel" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sti" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Skjul" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Kan festes til hovedvinduet" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flytende" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Skjul automatisk" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Feste/løsne" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "antall beregningstråder å bruke til tegning" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fil" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "R_ediger" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vis" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Bilde" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lag" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Justeringer" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Effekter" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Vindu" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Verktøyvinduer" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Hjelp" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "AlternativsNavn" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Lerret" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Logg" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lag" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Bilder" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Verktøy" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kanthåndtering" #: 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 "Aktiver" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Deaktiver" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Ingen utvalg" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Tilgjengelig i lageret:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Oppdatering tilgjengelig" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Dette tillegget kan ikke lastes på grunn av manglende avhengigheter" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Påkrevet: {0} v{1}, funnet v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Mangler: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Installert versjon" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Lagerversjon" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Nedlastingsstørrelse" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Følgende avhengigheter som kreves av dette tillegget er ikke tilgjengelig:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installasjon avbrutt" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Noen av de nødvendige tilleggene ble ikke funnet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installasjonen mislyktes" #: 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 "Installert" #: 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 "Oppdateringer" #: 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 "Galleri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Alle lagre" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Håndter lager …" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} oppdatering tilgjengelig" msgstr[1] "{0} oppdateringer tilgjengelig" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Oppdaterer lager" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Installer tilleggspakke" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Tilleggspakker" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Ingen tillegg ble funnet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Tillegg" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Annet" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Avinstaller" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Følgende pakker vil bli avinstallert:" #: 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 "" "Det er andre tillegg som er avhengige av de forrige som også vil bli " "avinstallert:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "De valgte tilleggene kan ikke installeres fordi det finnes " "avhengighetskonflikter." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Følgene pakker vil bli installert:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (i brukerkatalog)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Følgende pakker må avinstalleres:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Følgende avhengigheter kunne ikke løses:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Er du sikker på at du vil avbryte installasjonen?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Installerer tillegg" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Installasjonen mislyktes!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Installasjonen har blitt fullført med advarsler." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Avinstallerer tillegg" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Avinstallasjonen mislyktes!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Avinstallasjonen har blitt fullført med advarsler." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registrere lager" #: 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 "Unntak oppstod: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Mer informasjon" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installer …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Oppdater" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Avinstaller …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Ytterligere utvidelser er nødvendig for å utføre denne operasjonen." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Følgende tillegg vil bli installert:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Ingen oppdateringer ble funnet" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Oppdater" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Oppdater alt" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Lager:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Installer fra fil …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installer" #: 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 "Legg til nytt lager" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Velg lokasjon for lageret du vil registrere:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registrer et lager på nettet" #: 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 "Registrer et lokalt lager" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Sti:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Bla gjennom …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Framdrift" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.6/po/da.po0000664000175000017500000020563512474707515015220 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-23 19:35+0000\n" "Last-Translator: Alan Mortensen \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Skab og redigér let billeder" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Billedredigeringsprogram" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta billedredigeringsprogram" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Håndtering af udvidelsesmoduler" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Fortryd" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Gentag" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Klip" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiér" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopiér forenet" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Indsæt" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Indsæt i nyt lag" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Indsæt i nyt bilede" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Slet markering" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fyld markering" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Omvend markering" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Vælg alle" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Fravælg alt" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Åbn..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Gem som..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Gendan standard" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Indstil antal farver" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palet" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Slet markering" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Afmarkér" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Åbn paletfil" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletfiler (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Alle filer" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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 paletfil: {0}.\n" "Kontrollér venligst, at du prøver på at åbne en gyldig GIMP eller Paint.NET " "palet." #: ../Pinta.Core/Actions/EditActions.cs:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fejl" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Gem paletfil" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palet (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palet (*.gpl)" #: ../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: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: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/HelpActions.cs:50 msgid "Pinta Website" msgstr "Pinta hjemmeside" #: ../Pinta.Core/Actions/HelpActions.cs:51 msgid "File a Bug" msgstr "Rapportér en fejl" #: ../Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Oversæt dette program" #: ../Pinta.Core/Actions/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Om" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Beskær til markering" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Autobeskær" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Ændr størrelsen af billedet" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Ændr størrelsen af lærredet" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Vend vandret" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Vend lodret" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotér 90° med uret" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotér 90° mod uret" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotér 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Udjævn" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Tilføj nyt lag" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Slet lag" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplikér lag" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Forén lag nedad" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importér fra fil..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotér / Zoom Lag..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Flyt lag op" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Flyt lag ned" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Lagegenskaber..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Åbn billedfil" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importér fra fil" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom ind" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom ud" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Bedste tilpasning" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoom til markering" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal størrelse" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Værktøjslinje" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Billedpunktsgitter" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linealer" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Billedpunkter" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tommer" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fuldskærm" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Vindue" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Enheder på lineal" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Værktøj" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Genvejstast" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Almindelig Blanding" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overskriv" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Kantudjævning til" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Kantudjævning fra" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lag" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiér" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Ændr størrelse på lærred" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Flyt markerede billedpunkter" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Billede større end lærred" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Billedet, der indsættes, er større end lærredet. Hvad vil du gerne gøre?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Udvid lærredet" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ændr ikke lærredets størrelse" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Billede kan ikke sættes ind" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Der er ikke et billede i udklipsholderen." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Erstat" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Sammenslut (+) (Ctrl + Venstreklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Udeluk (-) (Højreklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (⊻) (Ctrl + Højreklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Gennemskær (Skift + Venstreklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Markeringstilstand: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicér" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additiv" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Farvebrænding" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Farveundvigelse" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflektér" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glød" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Læg over" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Forskel" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negation" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Gør lysere" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Gør mørkere" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Skærm" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Afslut billedpunkter" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Ændring af billedstørrelse" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} billede ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Optegne-effekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Intet værktøj valgt." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ikke gemt billede {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Baggrund" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nyt billede" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Filformat ikke understøttet" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Åbn billede" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Adgang nægtet" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunne ikke åbne fil: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Autoniveau" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Sort og hvid" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Lysstyrke / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Lysstyrke" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurver" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Nuance / Mætning" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Nuance" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Farvemætning" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Lysstyrke" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertér farver" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveauer" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterisér" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Niveaujustering" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rød" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grøn" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blå" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Sammenkædet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Tilføj støj" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Støj" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Farvemætning" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Dækning" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bule" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Forvræng" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Værdi" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Forskydning" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Skyer" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Optegne" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Kraft" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Startværdi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Kantdetektion" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilistisk" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Vinkel" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Præg i relief" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Sløringer" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenter" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Afstand" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frostet glas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussisk sløring" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Billede" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Blækskitse" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Kunstnerisk" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Blækomrids" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Farvelæg" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalitet" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Bevægelsessløring" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centreret" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oliemaleri" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penselstørrelse" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grovhed" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Omrids" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tykkelse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Blyantsskitse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Blyantspidsstørrelse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Farveområde" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelér" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cellestørrelse" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polinvertering" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radial sløring" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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 og små vinkler. Brug høj " "kvalitet for afsluttende kvalitet, store billeder og store vinkler." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Fjern røde øjne" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Farvemætningsprocent" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Tip: Markér hvert øje med markeringsværktøjet for at opnå det bedste " "resultat." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reducér støj" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Styrke" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Gør skarpere" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Blødgør portræt" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Blødhed" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Belysning" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Varme" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Glasfliser" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Flisestørrelse" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Drej" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Udjævning" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ufokuseret" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Fastgør" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Ombryd" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primær" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Sekundær" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Gennemsigtig" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centerforskydning" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoomsløring" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Overfør kort" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lysstyrke" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rød " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blå " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Nulstil" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Højreklik for at fjerne kontrolpunkter" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Inputhistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Outputhistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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 "Så igen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:106 msgid "Choose Primary Color" msgstr "Vælg primær farve" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Vælg sekundær farve" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Vælg palettefarve" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klik for at vælge mellem primær og sekundær farve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Klik for at nulstille primær og sekundær farve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klik for at vælge primær farve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klik for at vælge sekundær farve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Venstreklik for at vælge primær farve. Højreklik for at vælge sekundær " "farve. Tryk på musehjulet for at vælge palettefarve." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Lag Vist" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Lag Skjult" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cirkler" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Gitter" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Stænk" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Firkanter" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Panel" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Pil" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Størrelse" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Formindsk pilstørrelse" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Øg pilstørrelse" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Formindsk vinkelforskydning" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Øg vinkelforskydning" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Længde" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Formindsk længdeforskydning" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Øg længdeforskydning" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Penselbredde" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Formindsk penselstørrelse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Forøg penselstørrelse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fyldestil" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Kun omrids" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Kun fyld" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fyld og omrids" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Figurtype" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Åbne linje/kurve-serier" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Lukkede linje/kurve-serier" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Afrundede linjeserier" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Ændret figurtype" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Punkt slettet" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Slettet" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Punkt tilføjet" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Tilføjet" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Ændret" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Færdiggjort" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Åben kurveform" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Lukket kurveform" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Afrundet linjeform" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Formindsk hjørneradius" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Øg hjørneradius" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kloningsværktøj" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Farvevælger" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Venstreklik for at vælge primær farve. Højreklik for at vælge sekundær farve." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Prøvetagning" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Et billedpunkt" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 område" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 område" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 område" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 område" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Billede" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Efter markering" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Skift ikke værktøj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Skift til forrige værktøj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Skift til blyant" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Blyant" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipsemarkering" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Klik og træk for at tegne en elliptisk markering. Hold skift-tasten nede for " "at tegne en cirkel." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Venstreklik for at tegne en figur med den primære farve.\n" "Venstreklik på en figur for at tilføje et kontrolpunkt.\n" "Venstreklik på et kontrolpunkt og træk for at flytte det.\n" "Højreklik på et kontrolpunkt og træk for at ændre dets spænding.\n" "Hold Skift nede for at låse vinklen.\n" "Anvend piletaster til at flytte det valgte kontrolpunkt.\n" "Tryk Ctrl + venstre/højre piletast for at vælge kontrolpunkter efter orden,\n" "Tryk Delete for at slette det valgte kontrolpunkt.\n" "Tryk mellemrumstasten for at tilføje et nyt kontrolpunkt ved musemarkørens " "position.\n" "Hold Ctrl nede og tryk på mellemrumstasten for at danne kontrolpunktet ved " "nøjagtig samme position.\n" "Hold Ctrl nede og venstreklik på et kontrolpunkt for at danne en ny figur " "ved nøjagtig samme position.\n" "Hold Ctrl nede og klik uden for billedet for at danne en ny figur, der " "begynder ved kanten.\n" "Tryk Enter for at færdiggøre figuren." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Viskelæder" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Oversvømmelsesmodus" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Sammenhængende" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Frihåndsfigur" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Farveovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Klik og træk for at skabe en farveovergang fra primær til sekundær farve. " "Højre klik for modsat." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineær farveovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineær afspejlet farveovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Lineær diamant farveovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial farveovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konisk farveovergang" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lassomarkering" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Linje/kurve" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Tryllestavsmarkering" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klik for at vælge område med tilsvarende farve." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Venstreklik og træk i markeringen for at flytte det valgte. Højreklik og " "træk i markeringen for at rotere det valgte." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flyt markering" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Venstreklik og træk i markeringen for at flytte markeringsomridset. " "Højreklik og træk i markeringen for at rotere markeringsomridset." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Malerpensel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farvespand" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Venstreklik for at fylde med primær farve, højreklik for at fylde med " "sekundær farve." #: ../Pinta.Tools/Tools/PanTool.cs:37 msgid "Pan" msgstr "Panorér" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klik og træk for at flytte billedet rundt." #: ../Pinta.Tools/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 "" "Venstreklik for at tegne ét billedpunkt brede frihåndslinjer med den primære " "farve. Højreklik for at bruge den sekundære farve." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Omfarv" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Venstreklik for at erstatte den sekundære farve med den primære farve. " "Højreklik for omvendt." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rektangulær markering" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Klik og træk for at tegne en rektangulær markering. Hold skift-tasten nede " "for at tegne et kvadrat." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rektangel" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Afrundet rektangel" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Færdiggør" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Venstreklik for at placere markøren, indtast dernæst den ønskede tekst. " "Tekstfarve er primær farve." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Skrifttype" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Fed" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Understreg" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Venstrejusteret" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Centreret" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Højrejusteret" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Typografi" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal og omrids" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fyldt baggrund" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Bredde af omrids" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Formindsk størrelsen af omridset" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Forøg størrelsen af omridset" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Venstreklik for at zoome ind. Højreklik for at zoome ud. Klik og træk for at " "zoome ind på et område." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ændr størrelsen af paletten" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Ny størrelse af palet:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gem ændringer for billede \"{0}\" før luk?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Hvis du ikke gemmer, vil ændringer være tabt." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Luk _uden at gemme" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Tag skærmbillede" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Forsinkelse før skærmbillede tages (sekunder):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Billedfiler" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Gem billedfil" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta understøtter ikke at gemme billeder i dette filformat." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Kan ikke gemme skrivebeskyttet fil." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Billede for stort" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO filer kan ikke være større end 255 x 255 billedpunkter." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Lagets uigennemsigtighed" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Omdøb lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Skjul lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Vis lag" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Lagegenskaber" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotér / Zoom Lag" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta Community Addins - Platformsafhængig" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta Community Addins - Platformsuafhængig" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Bidragydere til denne version:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Tidligere bidragydere:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alan Mortensen https://launchpad.net/~alanmortensen-am\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\n" " Vlad V. Petersen https://launchpad.net/~vladikpetersen" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Oversat af:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Baseret på Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Bruger nogle ikoner fra:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Drevet af Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Om Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "VersionsInfo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licens" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Frigivet under MIT X11 Licens." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Ophavsret" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "af Pinta bidragyder" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Detaljer" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Rapportér fejl..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalitet: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Navn:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Synlig" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blandetilstand" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Uigennemsigtighed:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Udklipsholder" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Brugerdefineret" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Forudindstilling:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Bredde:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "billedpunkter" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Højde:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientering:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Stående" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Liggende" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Baggrund:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Hvid" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Baggrundsfarve" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sti" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Skjul" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokbar" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flydende" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Skjul automatisk" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dok" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:105 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:75 msgid "By percentage:" msgstr "Procent:" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:146 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:117 msgid "By absolute size:" msgstr "Absolut størrelse:" #: ../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/Main.cs:72 msgid "Show this message and exit." msgstr "Vis denne besked og afslut." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Vis programmets version." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "antal tråde ved rendering" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Anvendelse: pinta [filer]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Indstillinger: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fil" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Redigér" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vis" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Billede" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lag" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Justeringer" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Effekter" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Udvidelsesmoduler" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Vindue" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Værktøjsvinduer" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Hjælp" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "IndstillingsNavn" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Lærred" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historik" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lag" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Billeder" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Værktøjer" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kantopførsel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Flere markeringer:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Aktivér" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Deaktivér" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Intet er valgt" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Tilgængelig i arkiv:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Opdatering tilgængelig" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" "Dette udvidelsesmodul kan ikke indlæses på grund af manglende afhængigheder" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Krævet: {0} v{1}, fundet v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Manglende: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Installeret version" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Arkivversion" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Downloadstørrelse" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "De følgende afhængigheder krævet af dette udvidelsesmodul er ikke " "tilgængelige:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installation afbrudt" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Nogle af de påkrævede udvidelsesmoduler blev ikke fundet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installation mislykkedes" #: 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 "Installeret" #: 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 "Opdateringer" #: 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 "Galleri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Alle arkiver" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Håndtér arkiver..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} opdatering tilgængelig" msgstr[1] "{0} opdateringer tilgængelige" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Opdaterer arkiv" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Installér udvidelsesmodulpakke" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Udvidelsesmodulpakker" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Ingen udvidelsesmoduler fundet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Udvidelsesmodul" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Andet" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Afinstallér" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Følgende pakker vil blive afinstalleret:" #: 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 "" "Der er andre udvidelsesmoduler, der er afhængige af de tidligere, som også " "vil blive afinstalleret:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "De valgte udvidelsesmoduler kan ikke installeres, fordi der er " "afhængighedskonflikter." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Følgende pakker vil blive installeret:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (i brugermappe)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Følgende pakker mangler at blive afinstalleret:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Følgende afhængigheder kunne ikke løses:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Er du sikker på, du vil afbryde installationen?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Installerer udvidelsesmoduler" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Installationen mislykkedes!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Installationen er gennemført med advarsler." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Afinstallerer udvidelsesmoduler" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Afinstallationen mislykkedes!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Afinstallationen er gennemført med advarsler." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registrerer arkiv" #: 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 "Der opstod en undtagelse: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Mere information" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installér..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Opdatér" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Afinstallér..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Yderligere udvidelser er krævet for at udføre denne handling." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "De følgende udvidelsesmoduler vil blive installeret:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Ingen opdateringer fundet" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Opdatér" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Opdatér alle" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Arkiv:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Installér fra fil..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installér" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Håndtering af arkiver for udvidelsesmoduler" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Tilføj nyt arkiv" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Vælg placeringen af det arkiv, du vil registrere:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registrér et arkiv på nettet" #: 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 "Registrér et lokalt arkiv" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Sti:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Gennemse..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Status" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(leveret af {0})" pinta-1.6/po/Makefile.in0000664000175000017500000001634212474707543016335 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.6 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/PintaProject/Pinta/install-sh # Automake >= 1.8 provides $(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)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = af ar ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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 AM_DEFAULT_VERBOSITY = 1 INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-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.6/po/pl.po0000664000175000017500000020232712474707515015242 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-25 05:29+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Menedżer dodatków" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Cofnij" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Ponów" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Wytnij" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiuj" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopiuj złączone" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Wklej" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Wklej do nowej warstwy" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Wklej do nowego obrazu" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Usuń zaznaczone" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Wypełnij zaznaczenie" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Odwróć zaznaczenie" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Zaznacz wszystko" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Odznacz wszystko" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Otwórz..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Zapisz jako...." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Przywróć domyślne" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Ustaw liczbę kolorów" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Wyczyść zaznaczenie" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Usuń zaznaczenie" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Otwórz plik palety" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Pliki palety (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Wszystkie pliki" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Błąd" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Zapisz plik palety" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta programu Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta programu GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O programie..." #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Zmień rozmiar obrazu..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Zmień rozmiar płótna..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Odbij w poziomie" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Odbij w pionie" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Obróć o 90° w prawo" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Obróć o 90° w lewo" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Obróć o 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Spłaszcz" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Dodaj nową warstwę" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Usuń warstwę" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Powiel warstwę" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Scal warstwę w dół" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importuj z pliku..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Obróć / Przybliż warstwę..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Przesuń warstwę w górę" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Przesuń warstwę w dół" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Właściwości warstwy..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Otwórz plik obrazu" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importuj z pliku" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Powiększ" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Pomniejsz" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Dopasuj" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Powiększ do zaznaczenia" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normalny rozmiar" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Pasek narzędzi" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Siatka pikseli" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linijki" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Piksele" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Cale" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centymetry" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pełen ekran" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Okno" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Jednostki linijki" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Narzędzie" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Klawisz skrótu" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normalne mieszanie" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Zastąp" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Wygładzanie włączone" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Wygładzanie wyłączone" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "warstwa" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiuj" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Zmień rozmiar płótna" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Przenieś zaznaczone piksele" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Powiększ płótno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Nie zmieniaj rozmiaru płótna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Zamień" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Sposób zaznaczania: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normalny" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Poświata" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Zakończ pikselowanie" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Zmień rozmiar..." #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obraz ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efekt renderowania" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Niezapisany obraz {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Tło" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nowy obraz" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Otwórz obraz" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Odmowa dostępu" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nie udało się otworzyć pliku: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatyczne ustawienie poziomu" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Czarno-biały" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Jasność / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Jasność" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krzywe" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Barwa / Nasycenie" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Odwróć kolory" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Poziomy" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Redukcja kolorów" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Regulacja poziomów" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Czerwony" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zielony" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Niebieski" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Powiązane" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Dodaj szum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Szum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensywność" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Nasycenie kolorów" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pokrycie" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Wypukłość" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Zniekształcanie" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Ilość" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Przesunięcie" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Chmury" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderowanie" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skaluj" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Siła:" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Ziarno" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Wykrywanie krawędzi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylizacja" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kąt" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Płaskorzeźba" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Rozmycia" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenty" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Odległość" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Obrót" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Zamarznięte szkło" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Rozmycie Gaussa" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Promień" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografia" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Szkic tuszem" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artystyczne" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Wypełnij zarys" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Kolorowanie" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktal Julii" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Współczynnik" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Jakość" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Powiększenie" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrota" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentyl" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Rozmycie ruchem" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Wyśrodkowany" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Obraz olejny" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Rozmiar pędzla" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Ziarnistość" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kontur" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Grubość" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Szkic ołówkiem" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Rozmiar końcówki pędzla" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Zakres kolorów" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselizacja" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Rozmiar komórki" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Odwrócenie biegunów" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Rozmycie promieniowe" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Usuwanie efektu czerwonych oczu" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancja" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Redukcja szumu" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Poziom" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Płaskorzeźba" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Wyostrzanie" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Wygładź portret" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Wygładzanie" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Oświetlenie" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Ciepło" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Refleks" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Rozmiar płytki" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Wir" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Wygładzanie" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Rozmycie powierzchowe" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Przesunięcie środka" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Rozmycie przez powiększenie" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa przeniesienia" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Jaskrawość" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Czerwony " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Niebieski " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Przywróć ustawienia domyślne" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Wskazówka: Kliknij prawym przyciskiem by usunąć punkty kontrolne." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Poziomy wejściowe" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Źródło" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Wyjście" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Poziomy wyjściowe" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatycznie" #: ../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:106 msgid "Choose Primary Color" msgstr "Wybierz kolor podstawowy" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Wybierz kolor dodatkowy" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Wybierz kolor z palety" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Kliknij aby przełączyć między kolorem podstawowym a kolorem tła" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Kliknij aby wybrać kolor podstawowy" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Kliknij aby wybrać kolor tła" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Kliknij lewym klawiszem aby wybraustawić kolor podstawowy. Kliknij prawym " "klawiszem aby ustawić kolor tła. Kliknij środkowym klawiszem aby wybrać " "kolor z palety" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Warstwa widoczna" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Warstwa ukryta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Okręgi" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Siatka" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Rozprysk" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kwadraty" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Szerokość pędzla" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Zmniejsz rozmiar pędzla" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Zwiększ rozmiar pędzla" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Styl wypełniania" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Obrysowywanie kształtu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Wypełnianie kształtu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Obrysowywanie i wypełnianie kształtu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Stempel Klonujący" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Wybór koloru" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Próbkowanie" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Pojedynczy piksel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Obszar 3x3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Obszar 5x5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Obszar 7x7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Obszar 9x9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Obraz" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Po wybraniu" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "NIe zmieniaj narzędzia" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Zmień na poprzednie narzędzie" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Zmień na Ołówek" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Ołówek" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Zaznaczenie eliptyczne" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gumka" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Tryb zalewania" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Przylegające" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globalne" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Dowolny kształt" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradient liniowy" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradient liniowy lustrzany" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradient liniowy diamentowy" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradient promienisty" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradient stożkowy" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Zaznaczanie lassem" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknij i przeciągnij, aby zaznaczyć obszar." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magiczna różdżka" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Kliknij, aby zaznaczyć obszar o podobnym kolorze." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Przesuń Zaznaczenie" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pędzel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Rodzaj" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Wypełnienie" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Nawigacja" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Naciśnij i przytrzymaj lewy przycisk myszy aby przesuwać obraz." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Przemaluj" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Zaznaczenie prostokątne" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Prostokąt" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zaokrąglony prostokąt" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Czcionka" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Pogrubienie" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursywa" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podkreślenie" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Wyrównanie do lewej" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Wyrównanie do środka" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Wyrównanie do prawej" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Styl napisu" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normalny i kontur" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Wypełnij tło" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Szerokość konturu" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Zmniejsz wielkość konturu" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Zwiększ rozmiar konturu" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Zmień rozmiar palety" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nowy rozmiar palety:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Czy chcesz zapisać zmiany w obrazie \"{0}\" przed jego zamknięciem?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Jeśli nie zapiszesz, wszystkie zmiany zostaną utracone" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Zrzut ekranu" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Opóźnienie wykonania zrzutu ekranu (w sekundach):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Pliki graficzne" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Zapisz Obraz" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nie obsługuje zapisu w tym formacie." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nie można zapisać pliku. Plik tylko do odczytu." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Obrazek zbyt duży" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Pliki ICO nie mogą być większe niż 255 x 255 pikseli" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Nieprzezroczystość warstwy" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Zmień nazwę warstwy" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ukryj warstwę" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Pokaż warstwę" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Właściwości warstwy" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Obróć / Przybliż warstwę" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Michał Richter https://launchpad.net/~matmatyk\n" " Michał Ćwikliński https://launchpad.net/~mcwiklinski\n" " Miłosz Kosobucki https://launchpad.net/~mikom\n" " Patryk Wychowaniec https://launchpad.net/~p98\n" " Robson Masta https://launchpad.net/~robson-masta-deactivatedaccount\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/~skrzat\n" " Łukasz Semler https://launchpad.net/~lukasz-semler" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Tłumaczenie:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Bazuje na projekcie Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Wykorzystane ikony:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informacje o wersji" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Wersja" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licencja" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Wydane na licencji MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Prawa autorskie" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "przez współtwórców Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Szczegóły" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Jakość JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Jakość: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nazwa:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Widoczna" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Tryb mieszania" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Krycie:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Szerokość:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikseli" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Wysokość:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tytuł" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ścieżka" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ukryj" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokowalne" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Ruchoma" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatyczne ukrywanie" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Zadokuj" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "ilość wątków używanych podczas renderingu" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Plik" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edycja" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Widok" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Obraz" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "Wa_rstwy" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Do_stosowanie kolorów" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "E_fekty" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Okno" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Okna narzędziowe" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Pomoc" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Opcjonalna nazwa" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historia" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Warstwy" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Obrazy" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Narzędzia" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Wykrywanie krawędzi" #: 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 "Włącz" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Wyłącz" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Brak zaznaczenia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Dostępne w repozytorium" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Znaleziono uaktualnienie" #: 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 "Zainstalowana wersja" #: 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 "Rozmiar pobieranego pakietu" #: 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 "Instalacja anulowana" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Niektóre z wymaganych dodatków nie zostały odnalezione" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Instalacja nieudana" #: 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 "Zainstalowano" #: 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 "Aktualizacje" #: 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 "Repozytoria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Wszystkie repozytoria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Zarządzaj repozytoriami..." #: 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 "Pakiety dodatków" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nie odnaleziono dodatków" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Dodatek" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Inne" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Odinstaluj" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Następujące pakiety zostaną odinstalowane:" #: 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 "Następujące pakiety zostaną zainstalowane:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (w katalogu użytkownika)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Następujące pakiety wymagają odinstalowania:" #: 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 "Na pewno anulować instalację?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Instalowanie dodatków" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Instalacja nie powiodła się." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Instalacja została ukończona z ostrzeżeniami." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Odinstalowywanie Dodatków" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Odinstalowanie nie powiodło się." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Odinstalowanie zostało ukończone z ostrzeżeniami." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Rejestrowanie repozytorium" #: 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 "Wystąpił wyjątek: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Więcej informacji" #: 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 "Aktualizacja" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Odinstaluj..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Do wykonania tej operacji są wymagane dodatkowe rozszerzenia." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Zainstalowane zostaną następujące dodatki:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Nie znaleziono aktualizacji" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Odśwież" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Aktualizuj wszystko" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repozytorium:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Zainstaluj z pliku..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Zainstaluj" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Zarządzanie repozytorium dodatków" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Dodaj nowe repozytorium" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Wybierz położenie repozytorium, które chcesz zarejestrować:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Zarejestruj repozytorium on-line" #: 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 "Zarejestruj lokalne repozytorium" #: 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.6/po/az.po0000664000175000017500000015770112474707515015246 0ustar00cameroncameron00000000000000# Azerbaijani translation for pinta # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-26 01:21+0000\n" "Last-Translator: Bahram \n" "Language-Team: Azerbaijani \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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 "nişan" #: ../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:106 msgid "Choose Primary Color" msgstr "Əsas rəngi seçin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "İkincili rəngi seçin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Rəng palitrasını seçin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Əsas və ikincili rəng arasında keçid üçün klik edin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Əsas rəngi seçmək üçün klik edin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "İkincili rəngi seçmək üçün klik edin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Əsas rəng etmək üçün sol düyməni, ikincili rəng etmək üçün sağ, rəngi seçmək " "üçün orta düyməni klik edin..." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Çevrə" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Tor" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Bucaqlar" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Bahram https://launchpad.net/~bahram-hasanov" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/cs.po0000664000175000017500000020602312474707515015231 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-28 11:07+0000\n" "Last-Translator: schunka \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Snadné vytváření a úprava obrázků" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor obrázků" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Grafický editor Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Správce doplňků" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Vrátit změny" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Udělat znovu" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Vyjmout" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopírovat" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopírovat sloučené" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Vložit" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Vložit do nové vrstvy" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Vložit do nového obrázku" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Smazat výběr" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Vyplnit výběr" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Obrátit výběr" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Vybrat vše" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Zrušit výběr" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Otevřít..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Uložit jako..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Nastavit na výchozí" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Nastavit počet barev" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Smazat výběr" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Zrušit výběr" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Otevřít sobor s paletou" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Soubory palet (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Všechny soubory" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Chyba" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Uložit soubor palety" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O aplikaci" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Změnit velikost obrázku..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Změna velikosti plátna..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Převrátit horizontálně" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Převrátit vertikálně" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Otočit o 90° po směru hodin" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Otočit o 90° proti směru hodin" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Otočit o 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Zploštit" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Přidat novou vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Smazat vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplikovat vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Spojit vrstvy" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Vložit ze souboru..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Otočit / Přiblížit vrstvu ..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Posunout vrstvu nahoru" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Posunout vrstvu dolů" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Vlastnosti Vrstvy..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Otevřít obrázek" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Vložit ze souboru" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Přiblížit" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Oddálit" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Přizpůsobit" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Přiblížit na výběr" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normální velikost" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Panel nástrojů" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixelová mřížka" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Pravítka" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixely" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Palce" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetry" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Celá obrazovka" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Okno" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Jednotky pravítka" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Nástroj" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Klávesová zkratka" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normální míchání" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Přepsat" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiasing Zapnout" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiasing Vypnout" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Vrstva" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopírovat" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Změna velikosti plátna" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Posunout vybrané pixely" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Obrázek větší než plátno" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Roztáhnout plátno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Neměnit velikost plátna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Nelze vložit obrázek" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Schránka neobsahuje žádný obrázek" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Nahradit" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Přidat" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Odečíst" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl +Pravý klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Prolnutí (Shift + Levý klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Mód výběru: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normální" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Násobit" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Přísada" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Smísení barev" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Nepromísení barev" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Odraz" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Záře" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Překrytí" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Rozdíl" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negace" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Zesvětlit" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Ztmavit" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Obrazovka" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dokončit pixely" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Změnit velikost" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obrázek ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Vykreslovací efekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nebyl vybrán žádný nástroj." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neuložený obrázek {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Pozadí" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nový obrázek" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Nepodporovaný typ souboru" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Otevřít obrázek" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Přístup odepřen" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nelze otevřít soubor: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatická úroveň" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Černobílý" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Jas / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Jas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Křivky" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Odstín / Sytost" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Odstín" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Sytost" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Světlost" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertovat barvy" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Úrovně" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizovat" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sépie" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Přizpůsobení úrovně" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Červená" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zelená" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Modrá" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Spojený" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Přidat šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenzita" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Sytost barev" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pokrytí" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Vyboulit" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Pokřivit" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Množství" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Odstup" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Mraky" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Vykreslit" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Měřítko" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Síla" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Odzrnit" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detekce hran" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylizování" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Úhel" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Otisk" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Rozmazání" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Úlomky" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Vzdálenost" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotace" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Omrzlé sklo" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussovo rozmazání" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Poloměr" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografie" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Inkoustový náčrt" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Umělecké" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Obtažení iknoustem" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Barevnost" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Juliin fraktál" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalita" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Lupa" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrotův fraktál" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Medián" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Rozmazání pohybem" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Vystředěné" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olejomalba" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Velikost štětce" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Hrubost" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Obtáhnout" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tloušťka" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Náčrt tužkou" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Velikost hrotu tužky" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Rozsah barev" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Rozpixelovat" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Velikost buňky" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Převrácení pólů" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Rozmazání otáčením" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Odstranění červených očí" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Procento sytosti" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Snížit šum" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Síla" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reliéf" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Zaostřit" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Zjemnit portrét" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Jemnost" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Nasvícení" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Teplota" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Dlaždicový odraz" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Velikost dlaždic" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Zkroutit" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Vyhlazování" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Rozostření" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Svorka" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Obal" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Hlavní" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Vedlejší" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Středové odsazení" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Rozmazání přiblížením" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Přenosová mapa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB barvy" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Světlost" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Červená " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Modrá " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Resetovat" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Pravým kliknutím odstraníte ovládací body" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Vstupní histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Vstup" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Výstup" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Výstupní histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automaticky" #: ../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:106 msgid "Choose Primary Color" msgstr "Vybrat primární barvu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Vybrat sekundární barvu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Vybrat barvu palety" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Kliknutím zaměníte primární a sekundární barvu." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Kliknutím restartujete primární a skundární barvu." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Kliknutím vyberte primární barvu." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Kliknutím vyberte sekundární barvu." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Levý klik nastaví primární barvu. Pravý klik nastaví sekundární barvu. " "Prostřední klik vybere paletu barev." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Vrstva zobrazena" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Vrstva skryta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Kruhy" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Mřížka" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Cákance" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Čtverce" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Pomlčka" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Šipka" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Velikost" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Zmenšit šipku" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Zvětšit špiku" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Zmenšit úhel vyrovnání" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Zvětšit úhel odsazení" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Délka" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Snížit délku odsazení" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "ZVýšit délku odsazení" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Šířka štětce" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Zmenšit štětec" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Zvětšit štětec" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Styl výpně" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Obtáhnout tvar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Vyplnit tvar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Vyplnit a Obtáhnout tvar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Typ tvarování" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Otevřít sadu čar/křivek" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Zavřít sadu čar/křivek" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Zakulacená sada čar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Změnit typ tvarování" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Bod odstraněn" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Odstraněno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Bod přidán" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Přidáno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Změněno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Dokončeno" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Tvar otevřené křivky" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Tvar uzavřené křivky" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Tvar zakulacené čáry" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Zmenšit poloměr rohů tvaru" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Zvětšit poloměr rohu tvaru" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonovací razítko" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Kapátko" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Vzorkování" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Jednotlivý pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Oblast 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Oblast 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Oblast 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Oblast 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Obrázek" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Po výběru" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Nepřepínat nástroj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Přepnout na předchozí nástroj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Přepnout na tužku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Tužka" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elipsový výběr" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Kliknutím a táhnutím vytvoříte elyptický výběr. Pro kruhový výběr podržte " "Shift." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Levý klik nakreslíte tvar primární barvou.\n" "Levý klik na tvar přidá kontrolní bod.\n" "Levý klik a tažení na kontrolní bod ho posune.\n" "Pravý klik a tažení na kontrolní bod změní jeho rozpětí.\n" "Na přpnutí do úhlů držte Shift.\n" "Použijte špiky k posouvání kontrolních bodů.\n" "Pro výběr kontrolních bodů dele pořadí stiskněte Ctrl + špiknu " "doleva/doprava.\n" "Pro odsranění vybraných kontrolních bodů stiskněte Delete.\n" "Pro přidání nového kontrolního bodu na pozici myši stiskněte Mezerník.\n" "Držte Ctrl a stiskem Shift přidáte kontrolní bod na tu samou pozici.\n" "Držte Ctrl a levým klikem na kontrolní bod přidáte nový tvar na tu samou " "pozici.\n" "Držte Ctrl a klikem mimo obrázek vytvoříte nový tvar začínající na hraně.\n" "Pro dokončení tvaru stiskněte Enter." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Guma" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Záplavový režim" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Spojité" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globální" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Volný tvar" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Přechod" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineární přechod" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineární odražeý přechod" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Lineární kosočtvercový přechod" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiální přechod" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kónický přechod" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Výběr lasem" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikněte a obtáhněte vybranou oblast." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Čára/Křivka" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Výběr kouzelnou hůlkou" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klik vybere oblast s podobnou barvou." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Kliknutím a tažením výběru pohybujte vybraným obsahem. Pravý klikem a " "tažením výběru otáčejte výbraným obsahem." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Přesunout výběr" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Kliknutím a tažením výběru můžete hýbat obrysem výběru. Pravým klikem a " "tažením otáčejte obrysem výběru." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Štětec" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Typ" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Plechovka barvy" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Posun" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klik a táhnutí posunou obrázek." #: ../Pinta.Tools/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ým klikem nakreslíte volnou čáru širokou 1px primární bravou. Pravý klik " "použijte pro kreslení sekundární barvou." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Přebarvit" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Obdélníkový výběr" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Kliknutím a tažením nakreslíte obdélníkový výběr. Držte shift k nakreslení " "čtverce." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Obdélník" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zakulacený obdélník" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Dokončení" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Písmo" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Tučně" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kurzíva" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podtržené" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Zarovnat doleva" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Zarovnat na střed" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Zarovnat doprava" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Styl textu" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normální a ohraničený" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Vyplnit pozadí" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Šířka ohraničení" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Zmenšit šířku ohraničení" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Zvětšit šířku ohraničení" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Velikost Palety" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nová velikost palety:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, 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/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Sejmout obrazovku" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Zpoždění před sejmutím obrazovky (sekundy):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Soubory obrázků" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Uložení obrázku" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nepodporuje ukládání obrázků v tomto typu souborů.." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nelze uložit soubor pouze pro čtení." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Obrázek je příliš velký" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Soubory ICO nesmí být větší než 255 x 255 pixelů" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Průhlednost vrstvy" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Přejmenovat vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Skrýt vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Zobrazit vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Vlastnosti vrstvy" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Otočit / Přiblížit vrstvu" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Přispěli k této verzi:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Přispěli k předchozím verzím:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Martin Tesar https://launchpad.net/~tesarmar\n" " Pavel Kotrč https://launchpad.net/~pkotrc\n" " fri https://launchpad.net/~pavelfric\n" " luisah https://launchpad.net/~luisah\n" " schunka https://launchpad.net/~schunka\n" " xXx https://launchpad.net/~michalhusar-it" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Přeložili:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Na základě práce Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Použity některé ikonky z:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Běží na platformě Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informace o verzi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Verze" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licence" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Vydáno pod licencí MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Od přispěvatelů Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalita: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Název:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Viditelná" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Režim míchání" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Průhlednost" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Šířka:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixely" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Výška:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Název" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cesta" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Skrýt" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokovatelné" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plovoucí" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Skrývat automaticky" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Ukotvit" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Zobrazit tuto zprávu a zavřít." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Zobrazit verzi aplikace." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "počet vláken použitých k vykreslení" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Použití: pinta [soubory]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Možnosti: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Soubor" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Upravit" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Zobrazit" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Obrázek" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Vrstvy" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Přizpůsobení" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_kty" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "D_oplňky" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Okno" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Okna Nástrojů" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Nápověda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "JménoVolby" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Plátno" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historie" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Vrstvy" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Obrázky" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Nástroje" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Chování hran" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Vícenásobný výběr:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Zapnout" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Vypnout" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Žádný výběr" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Dostupné v repozitáři:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Dostupná aktualizace" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Tento doplněk nemůže být přidán kvůli chybějícím závislostem." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Požadováno: {0} v{1}, nalezeno v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Chybějící: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Instalovaná verze" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Verze z repozitáře" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Velikost ke stažení" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "Následující závislosti, vyžadované doplňkem, nejsou dostupné:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instalace zrušena" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Některé z požadovaných doplňků nebyly nalezeny" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Instalace selhala" #: 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 "Nainstalováno" #: 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 "Aktualizace" #: 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 "Galerie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Všechny repozitáře" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Správa repozitářů…" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "Dostupná {0} aktualizace" msgstr[1] "Dostupné {0} aktualizace" msgstr[2] "Dostupných {0} aktualizací" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Aktualizace repozitáře" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalovat balíček s doplňkem" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Balíčky s doplňky" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Žádný doplněk nenalezen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Doplněk" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Jiné" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Odebrat" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Následující balíčky budou odebrány:" #: 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 "" "Na odstraňovaných doplňcích závisí další doplňky, které budou také odebrány." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Vybrané doplňky nemohou být nainstalovány kvůli konfliktu závislostí." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Následující balíčky budou nainstalovány:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (v uživatelském adresáři)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Následující balíčky musí být odebrány:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Následující závislosti nemohou být vyřešeny:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Opravdu chcete zrušit instalaci?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Instalace doplňků" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Instalace selhala!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Instalace byla dokončena s varováními." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Odebírání doplňků" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Odebrání selhalo!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Odebrání bylo dokončeno s varováními." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registrace repozitářů" #: 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 "Došlo k výjimce: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Více informací" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instalovat..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Aktualizovat" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "O_debrat..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" "Aby mohla být požadovaná operace provedena, je nutno nainstalovat některé " "doplňky." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Následující doplňky budou nainstalovány:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Nebyly nalezeny žádné aktualizace" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Obnovit" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Aktualizovat vše" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repozitář:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instalovat ze souboru..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instalovat" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Správa repozitářů s doplňky" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Přidat nový repozitář" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Zvolte umístění repozitáře, který chcete zaregistrovat:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Zaregistrovat internetový repozitář" #: 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 "Zaregistrovat místní repozitář" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Umístění:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Procházet..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Průběh" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(poskytuje {0})" pinta-1.6/po/he.po0000664000175000017500000021066412474707515015226 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-24 18:01+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "צור וערוך תמונות בקלות" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "עורך תמונות" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "עורך התמונות פינטה" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "מנהל התוספים" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "ביטול" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "ביצוע חוזר" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "גזירה" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "העתקה" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "העתקה עם מיזוג" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "הדבקה" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "הדבקה לשכבה חדשה" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "הדבקה לתמונה חדשה" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "מחיקת הבחירה" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "מילוי הבחירה" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "היפוך הבחירה" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "בחירת הכול" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "ביטול בחירת הכול" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "פתיחה..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "שמירה בשם..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "איפוס לבררת המחדל" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "הגדרת מספר הצבעים" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "לוח צבעים" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "מחיקת הבחירה" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "ביטול בחירה" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "פתיחת קובץ ערכת צבעים" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "קובצי ערכת צבעים (‎*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "כל הקבצים" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "שגיאה" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "שמירת קובץ ערכת הצבעים" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "ערכת צבעים של Paint.NET‏ (‎*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "ערכת צבעים של GIMP‏ (‎*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "חדשה..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "על אודות" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "חיתוך לבחירה" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "חיתוך אוטומטי" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "שינוי גודל התמונה..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "שינוי גודל משטח הציור..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "היפוך אופקי" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "היפוך אנכי" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "היפוך ב־90° עם כיוון השעון" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "היפוך ב־90° נגד כיוון השעון" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "היפוך ב־180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "השטחה" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "הוספת שכבה חדשה" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "מחיקת שכבה" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "שכפול שכבה" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "מיזוג השכבה כלפי מטה" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "ייבוא מקובץ..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "הטייה / תקריב של השכבה..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "הגבהת השכבה" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "הנמכת השכבה" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "מאפייני השכבה..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "פתיחת קובץ תמונה" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "ייבוא מקובץ" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "התקרבות" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "התרחקות" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "ההתאמה הטובה ביותר" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "תקריב על הבחירה" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "גודל רגיל" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "סרגל כלים" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "רשת פיקסלים" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "סרגלים" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "פיקסלים" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "אינטשים" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "סנטימטרים" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "מסך מלא" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "חלון" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "יחידות הסרגל" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "שמירת הכול" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "סגירת הכול" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "כלי" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "מקשי קיצור" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "ערבול רגיל" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "דריסה" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "החלקה פעילה" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "החלקה כבויה" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "שכבה" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "עותק" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "שינוי גודל משטח הציור" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "הזזת הפיקסלים הנבחרים" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "התמונה גדולה ממשטח הציור" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "התמונה המודבקת גדולה מגודל משטח הציור. מה ברצונך לעשות?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "הרחבת משטח הציור" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "לא לשנות את גודל משטח הציור" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "לא ניתן להדביק תמונה" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "לוח הגזירים אינו מכיל תמונה." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "החלפה" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "איחוד (+) (Ctrl + לחצן שמאלי)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "הפרדה (-) (לחצן ימני)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor‏ (Ctrl + לחצן ימני)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "חיתוך (Shift + לחצן שמאלי)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " מצב בחירה: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "רגיל" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "הכפלה" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "הוספה" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "צריבת צבע" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "התחמקות צבע" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "השתקפות" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "זריחה" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "כיסוי" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "הבדל" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "ניגוד" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "הבהרה" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "האפלה" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "מסך" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "היפוך השכבה אופקית" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "היפוך השכבה אנכית" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "שינוי גודל התמונה" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} תמונה ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "אפקט עיבוד" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "לא נבחר כלי." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "תמונה שלא נשמרה {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "רקע" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "תמונה חדשה" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "פתיחת תמונה" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "ההרשאה נדחתה" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "לא ניתן לפתוח את הקובץ: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "רמות אוטומטיות" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "שחור ולבן" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "בהירות / ניגודיות" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "בהירות" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "ניגודיות" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "עקומות" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "גוון / רוויה" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "גוון" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "רוויה" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "בהירות" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "היפוך צבעים" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "רמות" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "הפחתת כמות הצבעים" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "ענתיקה" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "התאמת הרמות" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "אדום" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "ירוק" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "כחול" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "מקושר" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "הוספת רעש" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "רעש" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "עצמה" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "רווית הצבע" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "כיסוי" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "בליטה" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "עיוות" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "כמות" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "היסט" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "עננים" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "עיבוד" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "קנה מידה" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "חוזק" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "זרע" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "איתור קצוות" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "מסוגנן" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "זווית" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "תבליט" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "שבר" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "טשטושים" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "שברים" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "מרחק" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "סיבוב" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "זכוכית קפואה" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "טשטוש גאוסי" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "רדיוס" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "צילום" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "סקיצת דיו" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "אמנותי" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "קווי המתאר בדיו" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "צביעה" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "פרקטל יוליה" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "מקדם" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "איכות" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "תקריב" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "פרקטל מנדלברוט" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "חציוני" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "באחוזים" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "טשטוש בתנועה" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "ממורכז" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "ציור שמן" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "גודל המברשת" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "חוזק" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "קו מתאר" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "עובי" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "סקיצה בעפרון" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "גודל חוד העפרון" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "טווח צבעים" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "טשטוש לפיקסלים" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "גודל התא" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "היפוך קוטבי" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "טשטוש מעגלי" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "כדאי להשתמש באיכות נמוכה עבור תצוגות מקדימות, תמונות קטנות וזוויות קטנות. " "באיכות גבוהה כדאי להשתמש לאיכות גימור, תמונות גדולות וזוויות גדולות." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "הסרת עיניים אדומות" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "טולרנטיות" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "עצה: לקבלת התוצאות המיטביות כדאי תחילה לסמן כל אחת מהעיניים באמצעות כלי " "הבחירה." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "הפחתת רעש" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "עצמה" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "איזון גבהים" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "חידוד" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "ריכוך דיוקן" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "רכות" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "תאורה" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "חום" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "השתקפות אריחית" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "גודל האריח" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "סיבוב" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "החלקת קצוות" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "יציאה ממיקוד" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "ראשי" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "משני" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "שקוף" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "מקורי" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "היסט מהמרכז" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "טשטוש מרחק" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "מרחב צבעים להמרה" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "עצמת התאורה" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "אדום " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "כחול " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "איפוס" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "עצה: לחצן ימני כדי להסיר נקודות בקרה." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "היסטוגרמת הקלט" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "קלט" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "פלט" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "היסטוגרמת הפלט" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "בחירת צבע עיקרי" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "בחירת צבע משני" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "בחירת ערכת צבעים" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "יש ללחוץ כדי להחליף בין הצבעים העיקרי והמשני." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "יש ללחוץ כדי לאפס את הצבעים הראשי והמשני." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "יש ללחוץ כדי לבחור בצבע עיקרי." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "יש ללחוץ כדי לבחור בצבע משני." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "בלחיצה שמאלית ניתן לקבוע את הצבע העיקרי. בימנית להגדיר את הצבע המשני. אמצעית " "כדי לבחור בצבע מערכת הצבעים." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "שכבה מופיעה" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "שכבה מוסתרת" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "עיגולים" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "רשת" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "פיזור" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "מרובעים" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "חץ" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "גודל" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "הקטנת גודל החץ" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "הגדלת גודל החץ" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "אורך" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "עובי המברשת" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "הקטנת גודל המברשת" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "הגדלת גודל המברשת" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "סגנון המילוי" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "קו המתאר של הצורה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "מילוי הצורה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "מילוי וקו המתאר של הצורה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "סוג הצורה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "אליפסה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "נקודה נמחקה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "נמחקה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "נוספה נקודה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "נוספה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "השתנתה" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "חותמת העתקים" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+לחצן שמאלי כדי להגדיר את המקור, לחצן שמאלי לציור." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "‏מלקט הצבעים" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "לחיצה בלחצן השמאלי כדי לבחור צבע עיקרי. בימיני כדי להגדיר את הצבע המשני." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "דגימה" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "פיקסל בודד" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "אזור של 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "אזור של 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "אזור של 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "אזור של 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "תמונה" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "לאחר הבחירה" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "לא להחליף כלי" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "חזרה לכלי הקודם" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "מעבר לכלי העיפרון" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "עיפרון" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "בחירת אליפסה" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "לחץ וגרור כדי לבחור שטח אליפטי. החזק את מקש Shift בשביל עיגול" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "מוחק" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "יש ללחוץ עם לחצן העבר השמאלי כדי למחוק לצבע שקוף, עם מקש ימני כדי למחוק לצבע " "המשני: " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "מצב הצפה" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "המשכי" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "גלובלי" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "צורה ביד חופשית" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "לחיצה שמאלית כדי לצייר בצבע הראשי, לחיצה ימנית כדי לצייר בצבע המשני." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "מדרג" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "יש ללחוץ ולגרור כדי לצייר מדרג מהצבע העיקרי לצבע המשני. לחיצה ימנית להיפוך." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "מדרג קווי" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "מדרג קווי משתקף" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "מדרג קווי בצורת מעוין" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "מדרג מעגלי" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "מדרג חרוטי" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "בחירת פלצור" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "יש ללחוץ ולגרור כדי לצייר קו מתאר לאזור הבחירה." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "קו/עקומה" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "בחירה עם שרביט קסם" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "יש ללחוץ כדי לבחור אזור בעל אותו הצבע." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "יש ללחוץ בלחצן השמאלי ולגרור את הבחירה כדי להעביר את התוכן הנבחר. ניתן לגרור " "את הבחירה עם לחצן שמאלי כדי להטות את התוכן הנבחר." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "הזזת האזור נבחר" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "לחיצה בשמאלי וגרירה של הבחירה תעביר את קו המתאר של הבחירה. לחיצה בימני " "וגרירה של הבחירה כדי להטות את קו המתאר של הבחירה." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "מברשת" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "סוג" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "דלי צבע" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "ניווט" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "יש ללחוץ ולגרור כדי לנווט ברחבי התמונה." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "החלפת צבעים" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "בחירה ריבועית" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "מלבן" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "מלבן מעוגל" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "טקסט" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "טקסט - גימור" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "לחיצה שמאלית כדי להציב את הסמן, ואז להקליד את הטקסט הרצוי. צבע הטקסט הוא " "הצבע העיקרי." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "גופן" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "מודגש" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "נטוי" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "קו תחתי" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "יישור לשמאל" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "יישור למרכז" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "יישור לימין" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "סגנון הטקסט" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "רגיל ומתאר" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "מילוי הרקע" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "עובי המתאר" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "הקטנת עובי המתאר" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "עיבוי המתאר" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "לחיצה שמאלית להתקרבות. לחצן ימני להתרחקות. לחיצה וגרירה כדי להתקרב לבחירה." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "שינוי גודל ערכת הצבעים" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "גודל ערכת הצבעים החדשה:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "האם לשמור את השינויים לתמונה \"{0}\" בטרם היציאה?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "אם השינויים לא ישמרו הם יאבדו לעד." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "צילום המסך" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "ההשהיה שלפני צילום המסך (בשניות):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "קובצי תמונה" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "שמירת קובץ תמונה" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "ל־Pinta אין תמיכה בשמירת תמונות במבנה קובץ זה." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "לא ניתן לשמור קובץ לקריאה בלבד." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "התמונה גדולה מדי" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "קובצי ICO לא יכולים לחרוג מגודל של 255 × 255" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "קובץ בשם \"{0}\" כבר קיים. האם ברצונך להחליף אותו?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "הקובץ כבר קיים תחת \"{1}\". החלפתו תשכתב על תוכנו." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "אטימות השכבה" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "שינוי שם השכבה" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "הסתרת השכבה" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "הצגת השכבה" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "מאפייני השכבה" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "הטייה / תקריב של שכבה" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "תורמים לגרסה זו:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "תורמים לשעבר:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Yaron https://launchpad.net/~sh-yaron\n" " hatul https://launchpad.net/~amiadb\n" " ינון-דוד-צדוק (Yinon-David-Zadok) https://launchpad.net/~yinon-david-zadok" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "תורגם על ידי:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "מבוסס על העבודה של Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "נעשה שימוש בכמה סמלים מ־:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "מופעל על גבי מונו:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "על אודות Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "נתוני הגרסה" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "גרסה" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "רישיון" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "שוחרר תחת תנאי הרישיון MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "כל הזכויות שמורות" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "לתורמי Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "פרטים" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "איכות ה־JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "איכות: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "שם:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "גלוי" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "מצב ערבול" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "אטימות:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "רוחב:‏" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "פיקסלים" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "גובה:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "כותרת" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "נתיב" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "הסתרה" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "ניתן לעגינה" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "צף" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "הסתרה אוטומטית" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "שמירה על יחס גובה־רוחב" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "עוגן:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "מספר הפתילים לשימוש בטרם העיבוד" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_קובץ" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "ע_ריכה" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "ת_צוגה" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "ת_מונה" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "שכ_בות" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "הת_אמות" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_אפקטים" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_תוספים" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_חלון" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "חלונות כלים" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "ע_זרה" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "שם האפשרות" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "משטח ציור" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "היסטוריה" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "שכבות" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "תמונות" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "כלים" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "התנהגות הקצוות" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "בחירות מרובות:\n" "\n" #: 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 "נדרשת: {0} v{1}, נמצאה v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "חסרה: {0} v{1}" #: 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] "{0} עדכונים זמינים" #: 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 "קרתה חריגה: {0}" #: 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.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 "(מסופק על ידי {0})" pinta-1.6/po/gl.po0000664000175000017500000020321312474707515015224 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-21 06:40+0000\n" "Last-Translator: Miguel Anxo Bouzada \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "X-Poedit-Language: Galician\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Cree e edite imaxes fácilmente" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor de imaxes" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Editor de imaxes Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Xestor de complementos" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desfacer" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refacer" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cortar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Pegar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Pegar nunha nova paleta" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Pegar nunha nova imaxe" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Eliminar a selección" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Completar a selección" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverter a selección" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Seleccionar todo" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deseleccionar todo" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Abrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Gardar como..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Restabelecer os predefinidos" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Estabelecer o número de cores" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Borrar a selección" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deseleccionar" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Abrir o ficheiro da paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Ficheiros da paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Todos os ficheiros" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Erro" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Gardar o ficheiro de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta do Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta do GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Sobre" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Redimensionar imaxe..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionar lenzo" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Voltear horizontalmente" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Voltear verticalmente" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotar 90° á dereita" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotar 90° á esquerda" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotar 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Aplanar" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Engadir unha nova capa" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Eliminar a capa" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicar a capa" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Mesturar coa capa inferior" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importar dun ficheiro..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Subir a capa" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Baixar a capa" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propiedades da capa..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Abrir un ficheiro de imaxe" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importar dun ficheiro" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Ampliar" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Reducir" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Axuste óptimo" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Facer zoom sobre a selección" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Tamaño normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra de ferramentas" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grade de píxeles" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Regras" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Píxeles" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Polgadas" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centímetros" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pantalla completa" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Xanela" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unidades da regra" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Ferramenta" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Atallo de teclado" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Fusionado normal" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Sobreescribir" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Activar o suavizado" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Desactivar o suavizado" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Capa" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copiar" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionar o lenzo" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Mover os píxeles seleccionados" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Imaxe meirande có lenzo" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expandir o lenzo" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Non cambiar o tamaño do lenzo" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Non pode pegar a imaxe" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "O portapapeis non contén ningunha imaxe." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Sustituír" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modo de Selección: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicar" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflectir" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Brillo" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sobreposición" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferenza" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Aclarar" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Escurecer" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Pantallla" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar píxeles" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Cambiar o tamaño da imaxe" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} Imaxe ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efectos de representación" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Non seleccionou ningunha ferramenta." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imaxe sen gardar {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fondo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova imaxe" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "O formato de ficheiro non é compatíbel" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Abrir a imaxe" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permiso denegado" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Non foi posíbel abrir o ficheiro da paleta: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Nivel automático" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Branco e negro" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brillo / Contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brillo" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curvas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Matíz / Saturación" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Matiz" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturación" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Luminosidade" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverter as cores" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveis" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizar" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Niveis de axuste" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Vermello" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Azul" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Ligado" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Engadir ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensidade" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturación de cor" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cobertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Pico" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsionar" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Cantidade" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Desprazamento" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nubes" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Representar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Enerxía" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Xermolo" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detección do bordo" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizada" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ángulo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Membrete" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmento" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Difuminado" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmentos" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distancia" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotación" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Cristal xeado" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Difuminado Gausiano" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radio" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Debuxo a tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artística" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contorno de tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Coloreado" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal de Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Calidade" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Difuminado de movemento" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrado" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintura ao óleo" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Tamaño do pincel" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Basto" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorna" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Grosor" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Debuxo a lapis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Suxestión do tamaño do lapis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Intervalo de cor" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelar" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Tamaño da cela" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversión polar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Difuminado radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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 ." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Retirar os ollos vermellos" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancia" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Porcentaxe de saturación" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reducir o ruído" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Resistencia" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relevo" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Nitidez" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Retrato suave" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Suavidade" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Iluminación" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Calor" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Mosaico de reflexión" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tamaño do mosaico" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Torsión" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Suavizado" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desenfocar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Axustar" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primario" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secundario" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparente" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Orixinal" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Desprazamento do centro" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom no difuminado" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transferencia de mapas" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosidade" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Vermello " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Azul " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Restabelecer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Consello: premer co botón dereito para retirar os puntos de control." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histograma de entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Saída" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histograma de saída" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automático" #: ../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:106 msgid "Choose Primary Color" msgstr "Escoller unha cor primaria" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Escoller unha cor secundaria" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Escoller a paleta de cores" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Clica pra seleccionar cor principal" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Clica pra seleccionar cor secundaria" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Capa mostra" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Capa oculta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Círculos" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grade" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Salpicado" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Cadrados" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Taboleiro" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Frecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Tamaño" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Diminuír o tamaño da frecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Aumentar o tamaño da frecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Lonxitude" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Lonxitude do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Reducir a lonxitude do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Aumentar a lonxitude do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Estilo de recheo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Forma do contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Encher o contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Encher e dar forma ao contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Tipo de forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Cambiado o tipo de forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Eliminado o punto" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Eliminado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Engadido o punto" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Engadido" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modificado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalizado" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Abrir a forma curva" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Pechar a forma curva" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Diminuír o radio do canto da forma" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Aumentar o radio do canto da forma" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Clonar unha marca" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Selector de cor" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Mostraxe" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Un só pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Rexión 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Rexión 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Rexión 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Rexión 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imaxe" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Despois de seleccionar" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Non cambiar a ferramenta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Cambiar á ferramenta anterior" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Cambiar á ferramenta do lapis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Lapis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Seleccionar unha elipse" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Borrar" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Modo disperso" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Continuo" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma libre" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Degradado" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Degradado lineal" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Degradado lineal en refracción" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Degradado lineal en diamante" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Degradado radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Degradado cónico" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Selección de lazo" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Liña/curva" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Pincel máxico" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Premer aquí para seleccionar unha zona de cor semellante." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover a selección" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pincel de pintura" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Caldeiro de pintura" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Desprazar en horizontal" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Premer co botón esquerdo e arrastrar para explorar a imaxe." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Volver a colorar" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Selección rectangular" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectángulo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rectángulo redondeado" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Texto" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Tipo de letra" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Negriña" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Cursiva" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Subliñado" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Aliñación cara a esquerda" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Aliñación centrada" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Aliñación cara a dereita" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estilo de texto" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal e contorno" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Encher o fondo" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Lonxitude de contorno" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Reducir o tamaño do contorno" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Aumentar o tamaño do contorno" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Redimensionar a paleta" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Novo tamaño de paleta:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Quere gardar os cambios «{0}» antes de pechar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Se non garda, todos os cambios realizados perderanse." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Pechar _sen gardar" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Facer unha captura de pantalla" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes de facer unha captura (segundos):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Ficheiro de imaxes" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Gardar o ficheiro de imaxe como" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta non permite gardar imaxes neste formato." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Non se pode gardar un ficheiro de só lectura" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "A imaxe é moi grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Os arquivos ICO non deben sobrepasar 255 x 255 píxeles." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacidade da capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renomear a capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ocultar a capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Mostrar a capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propiedades da capa" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contribuíron para esta versión:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Contribuíntes anteriores:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Cameron White https://launchpad.net/~cameronwhite91\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:149 msgid "Translated by:" msgstr "Traducido por:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Con base no traballo de Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Usando algunhas iconas:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Funciona con Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Sobre Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Información sobre a versión" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versión" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenza" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Liberado baixo a licenza MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Dereitos de autoría" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Polos colaboradores de Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Información" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Informe de fallos..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calidade JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Calidade: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nome:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visíbel" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modo de mistura" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacidade:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Portapapeis" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Personalizar" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Predefinición:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Largura:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "píxeles" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altura:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientación:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Retrato" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Apaisado" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Fondo:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Branco" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Cor do fondo" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ruta" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ocultar" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancorábel" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotante" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Panel" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Amosar esta mensaxe e editar" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Amosar a versión do aplicativo" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "número de fíos que procesar" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Uso: pinta [ficheiros]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Opcións: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Ficheiro" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editar" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Ver" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imaxe" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Capas" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Axustes" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_ctos" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Xanela" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Ferramentas das xanelas" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Axuda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nome opcional" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Lenzo" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historial" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Capas" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imaxes" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Ferramentas" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportamento do bordo" #: 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 "Non hai selección" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Repositorio dispoñíbel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Actualización dispoñible" #: 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 "Requirido: {0} v{1}, atopado v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Non se atopa: {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 no repositorio" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Tamaño da descarga" #: 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 "Instalación cancelada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Non se encontraron algúns dos engadidos requiridos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "A instalación fallou" #: 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 "Instalado" #: 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 "Actualizacións" #: 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 os repositorios" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Xestionar 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 dispoñíbel" msgstr[1] "{0} actualizaciones dispoñíbeis" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Actualizando o 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 "Non se atoparon complementos" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Engadido" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Outro" #: 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 "Vanse desinstalar os seguintes 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 "" #: 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 "Vanse instalar os seguintes paquetes:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (no directorio do usuario)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Téñense que desinstalar os seguintes paquetes:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Non foi posíbel resolver as seguintes dependencias:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Confirma que quere cancelar a instalación?" #: 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 "Fallou a instalación!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "A instalación completouse 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 "Fallou a desinstalación!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "A desinstalación completouse con avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Rexistrando o 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 "Produciuse unha excepción: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Máis 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 "Requírense extensións adicionais 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 "Instalaranse os seguintes engadidos:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Non se atoparon actualizacións" #: 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 un ficheiro..." #: 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 "Xestión do repositorio de engadidos" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Engadir un novo repositorio" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Seleccione a localización do repositorio que queira rexistrar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Rexistrar un repositorio en liña" #: 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 "Rexistrar 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 "" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "" pinta-1.6/po/eo.po0000664000175000017500000017265712474707515015246 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:03+0000\n" "Last-Translator: Adolfo Jayme \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Bildredaktilo" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Administrilo de aldonaĵoj" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Malfari" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refari" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Eltondi" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopii" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Alglui" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Alglui en nova tavolo" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Glui en nova bildo" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Forigi zonon" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Plenigi zonon" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inversigi zonon" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Elekti ĉion" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Malelekti ĉion" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Malfermi..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Konservi kiel..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reŝargi defaŭltan" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Agordi numeron de koloroj" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paletro" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Viŝi zonon" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Malelekti" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Malfermi paletrodosieron" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletrodosieron (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Ĉiuj dosieroj" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Eraro" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Konservi paletrodosieron" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-a paletro (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP-a paletro (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Pri" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Stuci al zono" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Renversi horizontale" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Renversi vertikale" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Turni 90° dekstrume" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Turni 90° maldekstrume" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Turni 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Unutavoligi bildon" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Alkonstrui novan tavolon" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Forigi tavolon" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duobligi tavolon" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Kunfandi tavolon malsupre" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importi de dosiero..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Movi tavolon supre" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Movi tavolon malsupre" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Tavolaj atributoj..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Malfermi bildodosieron" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importi de dosiero" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Enzomi" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Elzomi" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Plej bona adapto" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zomi al zono" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normala grando" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Ilobreto" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Bilderkrado" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Mezuriloj" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Bilderoj" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Coloj" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetroj" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Tutekrane" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fenestro" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Mezurila unuoj" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Ilo" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Fulmoklavo" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normala miksiĝado" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Anstataŭigi" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Uzi glatigo" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Ne uzi glatigo" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Tavolo" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopio" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Regrandigi areaĵon" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Movi elektitan bilderojn" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Anstataŭigi" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normala" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multipliki" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Lumbrilo" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Kovro" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferenco" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Heligi" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Malheligi" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Ekrano" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Fini bilderojn" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Regrandigi bildon" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} bildo ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Bildiga efekto" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Malkonservita bildo {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fono" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova bildo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Malfermi bildon" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permeso rifuzita" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Dosiero ne malfermebla: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Aŭtomata Nivelo" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Nigra kaj blanka" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brileco / Kontrasto" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Heleco" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrasto" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurboj" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Koloro / Satureco" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inversigi la kolorojn" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveloj" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Afiŝigi" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepiaĵo" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ĝustigo de kolorniveloj" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Ruĝo" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verdo" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Bluo" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Kunligita" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Aldonu Perturbon" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Perturbo" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenseco" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Kolorsatureco" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Vasteco" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Tuberi" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distordi" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Kvanto" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Deŝovo" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nuboj" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Bildigi" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skalo" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Energio" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Semo" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Eltrovi Randojn" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stili" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angulo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Reliefigi" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmento" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Malfokusoj" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmentoj" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distanco" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotacio" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Malpolurita vitro" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaŭsa Malfokuso" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radiuso" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Inkskizo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artisma" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "inkokonturo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Kolorsatureco" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia fraktalo" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktoro" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalito" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zomi" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktalo" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediano" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Elcentero" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Moviĝo malklarigi" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrigita" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Petrola pentraĵo" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penika grado" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Malglateco" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Konturo" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Dikeco" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Krajonskizo" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Krajonekstremaĵa grando" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Koloramplekso" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Bilderigi" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Ĉela grado" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polusa Inversigo" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radia Malfokusigi" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Ruĝokula forigilo" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolereco" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Malpliigi perturbon" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Forto" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Trankviliĝo" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Netita" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Moligi portreton" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Moleco" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Lumigo" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Varmeco" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Kahela konsidero" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Kahela grado" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Tvisti" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Glatigo" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Malfokusi" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centradeŝovo" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoma-malfokusigi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transloka Mapo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RVB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Heleco" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Ruĝo " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Bluo " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Reagordi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Konsileto: dekstre alklaku forigi regajn punktojn." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Eniga Histogramo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Enigo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Eligo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Eliga Histogramo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Aŭtomata" #: ../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:106 msgid "Choose Primary Color" msgstr "Elekti primaran koloron" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Elekti duarangan koloron" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Elekti paletron koloron" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cirkloj" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Krado" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Ŝprucetigi" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kvadratoj" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Sago" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Grandeco" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Brush width" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Malkreski peniklarĝon" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Kreski peniklarĝon" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Pleniga stilo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Konturformo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Pleniga formo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Pleniga kaj Kontura Formo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipso" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kloni poŝtmarkon" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Kolorelektilo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Postelekto" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne ŝalti ilon" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Alŝalti al antaŭa ilo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Alŝalti al krajonilo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Krajono" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elipsa elekto" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Skrapgumo" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Diluva modalo" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Samlima" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Malloka" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Libermana formo" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Kolortransiro" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linia kolortransiro" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linia reflektita kolortransiro" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linia karoo kolortransiro" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiusa kolortransiro" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konusa kolortransiro" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Kaptoŝnuro" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Alklaku kaj tiru desegni konturon por elektazono." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Sorĉbastona elekto" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klak elekti regionon de simila koloro." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Movi elekton" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Peniko" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farbujo" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Balai" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Alklaku kaj tiru navigi bildon." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Rekolori" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rektangula elekto" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rektangulo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Ronda rektangulo" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Teksto" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Tiparo" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Grase" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursive" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Substrekite" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Maldekstra ĝisrandigo" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Horizontala centrigi" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Ĝisrandigi dekstren" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Teksta stilo" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normala kaj kontura" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Kontura larĝo" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Malkreski konturan grandon" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Kreski konturan grandon" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Regrandigi paletron" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Grando de nova paletro:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Ĉu vi volas konservi ŝanĝoj de bildo \"{0}\" antaŭ fermado?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Krei ekrankopion" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Prokrasto en sekundoj antaŭ ekrankopiado:" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Bildodosieroj" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Konservi bildodosieron" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne subtenas konservadon de bildoj en tiu dosierformo." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Ne povas konservi nurlegan dosieron." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Tavola opakeco" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renomi tavolon" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Kaŝi tavolon" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Malkaŝi tavolon" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Tavolaj atributoj" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Colin Dean https://launchpad.net/~colindean\n" " Michael Moroni https://launchpad.net/~airon90\n" " RedGuff https://launchpad.net/~domsau2" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Tradukita de:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Devenita de verko de Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Uzas iuj bildsimboloj de:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pri Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versiainformoj" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versio" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Permesilo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Aldonita sub la MIT X11 Permesilo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Kopirajto" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "de la kontribuantoj al Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Nivelo de JPEG-a kvalito" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalito: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nomo:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Videbla" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Miksiĝada modo" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opakeco:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Larĝo:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "bilderoj" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Alto:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titolo" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Vojo" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Kaŝi" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Endokigeble" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Glita" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Aŭtomate kaŝi" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Doki" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "numero de fadenoj uzi por bildigo" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Dosiero" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "R_edakti" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vidi" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "B_ildo" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "Tavo_loj" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Ĝustigo" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efekto_j" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fenestro" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Ilaj fenestroj" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Helpo" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Agordnomo" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Ŝanĝohistorio" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Tavoloj" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Bildoj" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Iloj" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Randa agmaniero" #: 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.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.6/po/fil.po0000664000175000017500000016066212474707515015406 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Idikit" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Lahat ng files" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Mali" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Tungkol Sa" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Karaniwan" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Kinang" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Bagong Larawan" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Itim at Puti" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Pagbaligtarin ang mga Kulay" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Mga Lebel" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterize" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Pula" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Luntian" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Bughaw" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Ulap" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Larawan" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia Fractal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Ilapit" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Linawan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Pula " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Bughaw " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "I-reset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Pumili ng Pangunahing Kulay" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Pumili ng Ikalawang Kulay" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Bilog" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Parilya" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Parisukat" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pampili ng Kulay" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Lapis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Pambura" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Pangkalahatan" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Igalaw ang Seleksyon" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Uri" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Kulayan muli" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Parihabang Pagpili" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Parihaba" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Bilugang Parihaba" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Sulat" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Salungguhitan" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Ihanay sa Kaliwa" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Ihanay sa Gitna" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Ihanay sa Kanan" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Kumuha ng Screenshot" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Isinalin ni:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Batay sa trabaho ng Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Tungkol sa Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Bersyon" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lisensya" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Pangalan:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Lapad:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Tangkad" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pamagat" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Wag ipakita" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Lumulutang" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Baguhin" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Tingnan" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Larawan" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Window" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Gabay" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Kasaysayan" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/be.po0000664000175000017500000015713212474707515015220 0ustar00cameroncameron00000000000000# Belarusian translation for pinta # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2015. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-11 20:03+0000\n" "Last-Translator: Launchpad Translations Administrators \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Launchpad-Export-Date: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/et.po0000664000175000017500000016367712474707515015255 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-02-27 10:46+0000\n" "Last-Translator: Eraser \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Võta tagasi" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Uuesti" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Lõika" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopeeri" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Aseta" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Kustuta valik" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Täida valik" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Pööra valik" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Vali kõik" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Eemalda kõik valikust" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Ava..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Salvesta kui..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Värvipalett" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Tühista valik" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Kõik failid" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Viga" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Programmist" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Peegelda horisontaalselt" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Peegelda vertikaalselt" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Kihtide ühendamine" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Lisa uus kiht" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Kustuta kiht" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Kihi dubleerimine" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Liiguta kiht ettepoole" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Liiguta kiht tahapoole" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Kihi omadused..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Ava pildifail" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Impodi failist" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Suurenda sisse" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Vähenda" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Parim sobitus" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Suurenda valikuni" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normaalsuurus" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Tööriistariba" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikslid" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tollid" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Sentimeetrid" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Täisekraan" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Aken" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Joonlaua ühikud" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" 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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Tööriist" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Ülekirjutamine" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Kiht" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "koopia" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Tavaline" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Helendus" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Pildi suuruse muutmine" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Taust" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Uus pilt" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Ava pilt" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Mustvalge" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Heledus / kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Eredus" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurvid" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Pööra värvid" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Tasemed" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterda" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Seepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Tasemete kohendamine" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Punane" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Roheline" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Sinine" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Seotud" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Lisa müra" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Müra" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Moonutus" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Hulk" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Pilved" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderdamine" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skaleerimine" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Serva tuvastamine" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stiliseeri" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Nurk" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Reljeefne" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Hägud" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Vahemaa" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Pööramine" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Külmunud klaas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussi hägu" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Raadius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Kunstiline" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia fraktaal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvaliteet" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Suurendus" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediaan" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Liikumishägu" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Keskel" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Õlimaal" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Välisjoon" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Paksus" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Pliiatsivisand" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Värvivahemik" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Suured pikslid" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Kärje suurus" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Poolsuste vahetamine" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiaalne hägu" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Punasilmsuse eemaldamine" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerants" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Vähenda müra" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Tugevus" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reljeef" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Teravustamine" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Soojus" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Suurendushägu" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Valgustatus" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Punane " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Sinine " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Lähtesta" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Vihje: Kontrollpunktide eemaldamiseks kasuta paremklikki." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Sisend" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Väljund" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automaatne" #: ../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 "silt1" #: ../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:106 msgid "Choose Primary Color" msgstr "Vali peamine värv" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Vali teine värv" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Vali paleti värv" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Nähtav kiht" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Kiht peidetud" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Ringjooned" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Koordinaatvõrk" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Ruudud" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Pintsli laius" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Vähenda pintsli suurust" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Vähenda pintsli suurust" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Täitmise stiil" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Värvivalija" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ära vaheta tööriista" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Vali eelmine tööriist" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pliiats" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elliptiline valik" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Kustukumm" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Pidev" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Üleüldine" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Värviüleminek" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiaalne üleminek" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Liiguta valikut" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pintsel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tüüp" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Värvi üle" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Nelinurkne valik" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Ristkülik" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Ümarnurkne ristkülik" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Rasvane" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kaldkiri" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Allajoonitud" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Joonda vasakule" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Joonda keskele" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Joonda paremale" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Teksti stiil" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Välisjoone laius" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Kuvatõmmise salvestamine" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Pildifailid" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Salvesta pildifail" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Kihi läbipaistvus" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Kihi nime muutmine" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Peida kiht" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Näita kihti" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Kihi omadused" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Eraser https://launchpad.net/~rivozangov\n" " Märt Põder https://launchpad.net/~boamaod" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Tõlkis:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versiooni info" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versioon" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Litsents" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autoriõigused" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvaliteet" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvaliteet: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nimi:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Nähtav" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Läbipaistvus:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Laius:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikslit" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Kõrgus:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pealkiri" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Rada" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Peida" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokitav" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Hõljuv" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automaatne peitmine" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Doki" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fail" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Muuda" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vaade" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Pilt" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Kihid" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Efektid" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Aken" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Abiinfo" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Ajalugu" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Kihid" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Tööriistad" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/hr.po0000664000175000017500000017362212474707515015245 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-10-15 01:06+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Vrati" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Ponovi" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Izreži" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiraj" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Zalijepi" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Zalijepi u novi sloj" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Zalijepi u novu sliku" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Ukloni odabir" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Ispuni izabrano" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Obrni izabrano" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Označi sve" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Ukloni odabir" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Otvori…" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Spremi kao…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Vrati u početno stanje" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Postavi broj boja" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Obriši izabrano" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Odznači" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Otvori datoteku palete" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Sve datoteke" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Pogrješka" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Pohrani datoteku paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O aplikaciji..." #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Promjeni veličinu slike..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Promjeni veličinu platna..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Vodoravno zrcaljenje" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Okomito zrcaljenje" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Okreni 90° u smjeru kazaljke na satu" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Okreni 90° suprotnu smjeru kazaljke na satu" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Okreni 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Spljošti" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Dodaj novi sloj" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Obriši sloj" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dupliciraj sloj" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Stopi prema dolje" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Unesi iz datoteke..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotiraj / Povećaj sloj..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Pomakni sloj gore" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Pomakni sloj dolje" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Postavke sloja..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Otvori sliku" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Unesi iz datoteke" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Povećaj" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Smanji" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Najbolje pristajanje" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Povećaj označeno" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normalna veličina" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Alatna traka" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Rešetka piksela" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Ravnala" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikseli" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Palci" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Preko čitavog zaslona" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Prozor" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Jedinica ravnala" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Alat" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Tipka kratice" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normalno miješanje" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Prepiši" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Uključen antialiasing" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Isključen antialiasing" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Sloj" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiraj" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Promjeni velčinu platna" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Premjesti odabrane točke" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Povećaj platno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ne mijenjaj veličinu platna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normalan" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Sjaj" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dovrši piksele" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Promijeni veličinu slike" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efekt iscrtavanja" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nepohranjena slika{0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Pozadina" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova slika" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Otvori sliku" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nije se mogla otvoriti datoteka: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatsko poravnavanje razine" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Crno-bijelo" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Jačina osvijetljena / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Osvijetljenost" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krivulje" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Nijansa / Zasićenje" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Obrni boje" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Razine" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posteriziranje" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Prilagodba razina" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Crvena" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zelena" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Plava" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Povezano" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Dodaj šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenzitet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Zasićenost boje" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pokrivenost" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Ispupči" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Deformiraj" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Količina" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Pomak" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Oblaci" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Iscrtaj" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Promjeni veličinu" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Snaga" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Zasij" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detekcija rubova" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stiliziraj" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kut" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Izboči" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Zamučenje" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenti" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Udaljenost" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Zakretanje" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Staklo sa mrazom" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussovo zamućivanje" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Polumjer" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografija" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Skica tintom" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Umjetničko" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Obris tinte" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Bojanje" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julijin fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvaliteta" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Povećati" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrotov fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Postotak" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Pomično Zamućenje" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Sredinom" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Uljana slika" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Veličina kista" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Hrapavost" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kontura" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Debljina" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Skica olovkom" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Veličina vrška olovke" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Raspon boje" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikseliziraj" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Veličina ćelije" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polarna inverzija" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radijalan zamućenost" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Uklanjanje efekta crvenih očiju" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancija" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Korekcija šuma" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Snaga" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reljef" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Izoštri" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Smekšaj portret" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mekoća" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Osvjetljenje" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Toplina" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Odsjaj pločice" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Veličina pločice" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Zakreni" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Izglađeni rub" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ukloni focus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centriraj pomak" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Uvećano zamućenje" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa prijenosa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Osvjetljenje" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Crvena " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Plava " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Vrati na zadano" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Savjet: Desni-klik za uklanjanje kontrolnih točaka." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Unosni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Unos" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Ispis" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Izlazni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatski" #: ../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:106 msgid "Choose Primary Color" msgstr "Odaberite primarnu boju" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Odaberite sekundarnu boju" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Odaberite boju palete" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Krugovi" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Rešetka" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Brčkanje" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kvadrati" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Širina kista" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Smanji veličinu kista" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Povećaj veličinu kista" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Način popunjavanja" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Oblik obrisa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Oblik popunjavanja" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Oblik popunjavanja i obrisa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Alat za kloniranje" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-lijevi klik za odabir izvora, desni klik za bojanje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Birač boja" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Nakon odabira" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne mijenjaj alat" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Vrati prethodni alat" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Koristi olovku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Olovka" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Eliptični odabir" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gumica za brisanje" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Poplavni način" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Povezujući" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Opći" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Slobodni oblik" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linijski gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linijski zrcalni gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linijski dijamantski gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radijalni gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konusni gradijent" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Laso odabir" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magic Wand odabir" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Kliknite za odabir područja slične boje" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pomicanje označenog" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Kist" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Vrsta" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Kanta boje" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Cilindar" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Kliknite i povucite za proučavanje slike." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Ponovno oboji" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Pravokutni odabir" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Pravokutnik" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zaobljeni pravokutnik" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Polumastan tisak" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Ukošena slova" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podvučena slova" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Postrojiti lijevo" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Postrojiti u sredinu" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Postrojiti desno" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Stil teksta" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normalan sa obrisom" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Ispuni pozadinu" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Širina obrisa" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Smanji veličinu obrisa" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Povećaj veličinu obrisa" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Promjena veličine palete" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nova veličina palete:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Sačuvaj promjene na slici \"{0}\" prije zavaranja?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Ako ne sačuvate, sve promjene će biti trajno izgubljene." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Snimi prikaz zaslona" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Pričekaj prije snimanja zaslona (u sekundama):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Slikovne datoteke" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Sačuvaj sliku" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podržava zapisivanje slika tog formata." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nije moguće spremiti datoteku namijenjenu samo za čitanje." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Prozirnost sloja" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Preimenuj sloj" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Sakri sloj" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Prikaži slok" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Postavke slojeva" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotiraj / Povećaj sloj" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " freedomrun https://launchpad.net/~freedomrun\n" " tty https://launchpad.net/~tty29a\n" " zp https://launchpad.net/~zekopeko" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Preveli:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Bazirano na programu Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Koristi pojedine slikice iz:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O Pinti" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informacije o inačici" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Inačica" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenca" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Licencirano po MIT X11 licenci" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autorska prava" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "od Pinta suradnika" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvaliteta" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvaliteta: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Naziv:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Vidljivo" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Način mješanja" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Prozirnost:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Širina:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikseli" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Visina:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naslov" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Putanja" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Sakrij" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Usidrivo" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutajuće" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatski Sakrij" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dok" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "broj dretvi za iscrtavanje" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Datoteka" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Uredi" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Prikaz" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Slika" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Slojevi" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Podešenja" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efek_ti" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Prozor" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Prozori s alatima" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Pomoć" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "NazivOdabira" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Stare stavke" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Slojevi" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Slike" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Alati" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Ponašanje ruba" #: 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.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.6/po/la.po0000664000175000017500000015761012474707515015227 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-10-15 01:04+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "automaticus derigens" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "niger et albus" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Fulgor / Contrarietas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "curvaturae" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Circumlitio / Saturitas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "colores convertere" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Aequare" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "sepiaceus" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Aptare quantitas" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Ruber" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Pratinus" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Caeruleus" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Conexus" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "iterum facere" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Conde imaginum graphium" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Conde" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "proventus" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "proventus imago graphium" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automaticus" #: ../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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Christian Brickhouse https://launchpad.net/~chrisbrick" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/tr.po0000664000175000017500000020053112474707515015247 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-25 05:29+0000\n" "Last-Translator: Hasan Yılmaz \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=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Eklenti Yöneticisi" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Geri Al" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Yinele" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Kes" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopyala" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopya Birleşti" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Yapıştır" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Yeni Katmana Yapıştır" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Yeni Görüntü Dosyasına Yapıştır" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Seçimi sil" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Seçimi Doldur" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Seçimi Tersine Çevir" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Tümünü Seç" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Tüm Seçimleri Kaldır" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Aç..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Farklı Kaydet..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Varsayılana Sıfırla" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Renk Numaraları" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palet" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Seçimi Sil" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Seçimi Kaldır" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Palet Dosyası Aç" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palet dosyaları (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Tüm dosyalar" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Hata" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Palet Dosyasını Kaydet" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleti (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleti (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Hakkında" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Seçime Kırp" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Otomatik Kırp" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Görüntüyü Yeniden Boyutlandır..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Tuvali Yeniden Boyutlandır..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Yatay Çevir" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Dikey Çevir" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Saat Yönünde 90° Çevir" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Saat Yönünün Tersinde 90° Çevir" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "180° Döndür" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Düzleştir" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Yeni Katman Ekle" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Katmanı Sil" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Katmanı Çoğalt" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Katmanı Birleştir" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Dosyadan Aktar" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Katmanı Döndür / Yakınlaştır..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Katmanı Yukarı Taşı" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Katmanı Aşağı İndir" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Katman Özellikleri..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Bir Görüntü Dosyası Aç" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Dosyadan Aktar" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Yakınlaştır" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Uzaklaştır" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "En Uygun Görünüm" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Seçime Büyüt" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal Boyut" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Araç Çubuğu" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Piksel Izgara" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Cetvel" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Piksel" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "İnç" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Santimetre" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Tam Ekran" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Pencere" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Cetvel Birimi" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Araç" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Kısayol tuşu" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal Harmanlama" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Üzerine yaz" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Kenar Keskinleştirme Açık" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Kenar Keskinleştirme Kapalı" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Katman" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopyala" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Tuvali Yeniden Boyutlandır" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Seçili Pikselleri Taşı" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Görüntü tuvalden büyük" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Yapıştırılan görüntünün boyutu tuvalden büyük. Ne yapmak istiyorsunuz?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Tuvali büyüt" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Tuval büyüklüğünü değiştirme" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Görüntü yapıştırılamadı" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Panoda bir görüntü bulunmuyor." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Çarp" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Katkı" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Renk Yanığı" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Renk Atlatma" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Yansıt" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Parlama" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Kaplama" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Fark" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Olumsuz" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Rengi Aç" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Koyulaştır" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Ekran" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pikseller Bitir" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Görüntüyü Yatay Döndür" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Görüntüyü Dikey Döndür" #: ../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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Görüntüyü Yeniden Boyutlandır" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} görüntü ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Render Efekti" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Kaydedilmemiş Görüntü {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Arkaplan" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Yeni Görüntü" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Görüntüyü Aç" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Dosya açılamadı: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Otomatik Seviye" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Siyah Beyaz" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Parlaklık / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Parlaklık" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Eğriler" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Ton / Doygunluk" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Renkleri Ters Çevir" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Seviyeler" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterleştir" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepya" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Seviye Ayarları" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Kırmızı" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Yeşil" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Mavi" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Bağlı" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Parazit Ekle" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Parazit" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Yoğunluk" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Renk Doygunluğu" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Kapsam" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Şişirme" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Boz" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Miktar" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Yerleşim" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Bulutlar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Tara" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Ölçek" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Güç" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Tohum" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Kenar Saptama" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilize et" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Açı" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Kabartma" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragman" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Bulanıklıklar" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmanlar" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Uzaklık" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Döndürme" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Buzlu Cam" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gauss Bulanıklığı" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Yarıçap" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotoğraf" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Mürekkep Efekti" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Sanatsal" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Mürekkep taslak" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Renklendirme" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia Fraktali" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Etken" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kalite" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Büyüt" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktali" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Ortalama" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Yüzdelik Değer" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Hareketli Bulanıklaştır" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Ortalanmış" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Yağlı Boya" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Fırça Boyutu" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Kabalık" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Anahat" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Kalınlık" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Kalemle Eskiz" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Kalem Ucu Büyüklüğü" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Renk Dizisi" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselleştir" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Hücre Boyutu" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Ters Çevirme" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Dairesel Bulanıklaştırma" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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 görüntüler ve dar açılar için düşük kalite kullanın. Son " "nüshada kalite, büyük görüntüler ve geniş açılar için yüksek kalite kullanın." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Kırmızı Göz Kaldırma" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerans" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Paraziti Azalt" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Güçlülük" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Kabartma" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Keskinleştir" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Portreyi Yumuşat" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Yumuşaklık" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Aydınlatma" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Sıcaklık" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Karo Yansıması" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Döşeme Boyutu" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Örtüşme Önle" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Odağı Kaldır" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Orta Baskı" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Yaklaşma Bulanıklaştırması" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transfer Haritası" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Parlaklık" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Kırmızı " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Mavi " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Sıfırla" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Öneri : Kontrol noktalarını kaldırmak için sağ tıklayın." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Giriş Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Girdi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Çıktı" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Çkış Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Otomatik" #: ../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 "Yeniden Tohumla" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:106 msgid "Choose Primary Color" msgstr "Birincil Rengi Seç" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "İkincil Rengi Seç" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Palet Rengini Seç" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Tabakayı Göster" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Tabakayı Gizle" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Daireler" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Izgara" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Sıçrat" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kareler" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Fırça boyutu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Fırça boyutunu azalt" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Fırça boyutunu arttır" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Stili Doldur" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Anahat Şekli" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Şekli Doldur" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonlama Aracı" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Renk Seçici" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Örnekliyor" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Tek Piksel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Bölge" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 Bölge" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x7 Bölge" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x9 Bölge" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Görüntü" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Seçimden sonra" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Aracı değiştirme" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Önceki araca geç" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Kalem aracına geçin" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Kalem" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elips Seçim" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Silgi" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Taşırma Modu" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Sürekli" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Genel" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Renk Geçişi" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Doğrusal Renk Geçişi" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Doğrusal Yansıyan Renk Geçişi" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Doğrusal Elmas Renk Geçişi" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Işınsal Renk Geçişi" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konik Renk Geçişi" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Kement Seçim" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Sihirli Değnek Seçimi" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Benzer renkli bir bölge seçmek için tıklayın." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Seçimi Taşı" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Boya fırçası" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tür" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Boya Kovası" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Kaydırma" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Görüntüyü hareket ettirmek için tıklayın ve sürükleyin." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Tekrar renklendir" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Dikdörtgen Seçim" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Dikdörtgen" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Dairesel Dikdörtgen" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Metin" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Yazıtipi" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Kalın" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "İtalik" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Altı çizili" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Sola Hizalı" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Ortala" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Sağa Hizalı" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Yazı Stili" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal Anahat" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Arkaplanı Doldur" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Anahat genişliği" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Anahat boyutunu küçült" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Anahat boyutunu büyüt" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Paleti Yeniden Boyutlandır" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Yeni palet büyüklüğü" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" "Kapatmadan önce değişiklikleri \"{0}\" görüntüsüne kaydetmek istiyor musunuz?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Kaydetmezseniz tüm değişiklikler kalıcı olarak kaybolacak." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ekran Görüntüsü Al" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Ekran Görüntüsü Almadan Önce Bekleme (saniye):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Görüntü dosyaları" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Görüntü Dosyasını Kaydet" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta görüntüleri bu dosya biçimiyle kaydetmeyi desteklemiyor." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Sadece okunabilir dosyadır, kaydedilemez." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Görüntü çok büyük" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO dosyası 255 x 255 pikselden büyük olamaz." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Katman Saydamlığı" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Katmanı Yeniden Adlandır" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Katmanı Gizle" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Katmanı Göster" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Katman Özellikleri" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Tabakayı Döndür / Yakınlaştır" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ahmet Vurgun https://launchpad.net/~ahmetvurgun\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Hasan Yılmaz https://launchpad.net/~hasanyilmaz\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Mehmet Gülmen https://launchpad.net/~memetgulmen\n" " Okan Akıncı https://launchpad.net/~okanakinci86\n" " Omer GOK https://launchpad.net/~mechulkalan\n" " Yalçın Can https://launchpad.net/~yalcin.can\n" " Yusuf ÜLKÜ https://launchpad.net/~yusufulku\n" " rosencreuz https://launchpad.net/~rosencreuz" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Çeviren:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Paint.NET üzerine inşa edilmiştir:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Bazı simgeler şuradan alınmıştır:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pinta Hakkında" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Sürüm Bilgisi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Sürüm" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lisans" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "MIT X11 Lisansı altında dağıtılmaktadır" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Telif Hakkı" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta katılımcıları tarafından" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Ayrıntılar" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Kalitesi" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kalite : " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "İsim:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Görünür" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Karıştırma Kipi" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Saydamlık:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Genişlik:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "piksel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Yükseklik:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Başlık" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Konum" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Gizle" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Gömülebilir" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Yüzen" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Otomatik Gizle" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Rıhtım" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "oluşturulma için için kullanılan işlem parçacıkları" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Dosya" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "Düz_enle" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Görünüm" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Görüntü" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Katmanlar" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Ayarlar" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Efektler" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Pencere" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Araç Pencereleri" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Yardım" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Ayarİsmi" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Geçmiş" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Katmanlar" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Görüntüler" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Araçlar" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kenar Davranışı" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Çoklu seçim:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Etkinleştir" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Pasifleştir" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Seçim yok" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Depo bulundu:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Yükseltme bulundu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Bu eklenti eksik bağımlılıklar nedeniyle kurulamıyor" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Desteklenen: {0} v{1}, bulunan v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Desteklenmeyen: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Kurulu sürüm" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Depo sürümü" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "İndirme boyutu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "Bu eklenti için aşağıdaki bağımlılıklar mevcut değildir:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Yükleme iptal edildi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Bazı gerekli eklentiler bulunamadı" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Yükleme başarısız" #: 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 "Kurulu" #: 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 "Güncelleştirmeler" #: 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 "Galeri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Tüm depolar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Depoları Yönet..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} güncelleme var" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Depo güncelleniyor" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Eklenti Paketini Yükle" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Eklenti paketleri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Eklenti bulunamadı" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Eklenti" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Diğer" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Kaldır" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "İzleyen paketler kaldırılmış olacak:" #: 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 "Daha önceki eklemelere bağımlı olanlar ayrıca kaldırılacak:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "Seçili eklemeler yüklenemez çünkü çakışan bağımlılıklar var." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Aşağıdaki paketler kurulacak:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (kullanıcı dizini içinde)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Bu paketlerin kaldırılmasına gerek duyuluyor:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Bu bağımlılıklar çözümlenemedi:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Yüklemeden vazgeçmek istediğinize emin misiniz?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Eklentiler Yükleniyor" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Yükleme başarısız oldu!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Yükleme uyarılarla tamamlandı." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Eklenti Kaldırılıyor" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Kaldırma başarısız oldu!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Kaldırma uyarılarla tamamlandı." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Depo onaylanıyor" #: 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 "Kural dışı durum meydana geldi: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Daha fazla bilgi" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Kur..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Güncelle" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Kaldır..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Bu işlemin gerçekleştirilmesi için ek uzantılar gerekiyor." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Yüklecek eklentiler:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Güncelleme bulunamadı" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Yenile" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Tümünü Güncelle" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Depo:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Dosyadan yükle..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Yükle" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Eklenti Deposu Yönetimi" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Yeni Depo Ekle" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Kaydetmek istediğiniz deponun konumunu seçin:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Bir çevrimiçi depo kaydedin" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "Adres:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Yerel bir depo kaydedin" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Konum:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Gözat..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "İşlem" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "({0} sağladı)" pinta-1.6/po/id.po0000664000175000017500000017153312474707515015227 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "X-Poedit-Country: INDONESIA\n" "X-Poedit-Language: Indonesian\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Urungkan" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Ulangi" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Potong" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Salin" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Tempel" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Tempel Ke Lapisan Baru" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Tempel Ke Citra Baru" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Arsir Pilihan" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inversikan Pilihan" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Pilih Semua" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Buka..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Simpan Sebagai..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Tentukan Jumlah Warna" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palet" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Hapus Pilihan" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Awapilih" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Semua berkas" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Kesalahan" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Tentang" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Pangkas Pilihan" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Balikkan Horizontal" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Balikkan Vertikal" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Putar 90° Perijam" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Putar 90° Lawan-Perijam" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Putar 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Sedatarkan" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Tambah Lapisan Baru" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Hapus Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Gandakan Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Gabungkan Ke Bawahnya" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Impor dari Berkas..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Naikkan Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Turunkan Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Buka Berkas Citra" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Impor Dari Berkas" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zum Masuk" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zum Keluar" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zum ke Pilihan" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Ukuran Normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Toolbar" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Kisi Piksel" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Mistar" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Piksel" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inci" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Sentimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Layar Penuh" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Jendela" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Alat" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Kunci pintasan" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Timpa" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lapisan" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "salin" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Ubah Ukuran Kanvas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Pindahkan Piksel Terpilih" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Berpendar" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Selesaikan Piksel" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Ubah Ukuran Citra" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} citra ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efek Lukis" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Latar Belakang" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Citra Baru" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Buka Citra" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Gagal membuka berkas: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto-Level" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Hitam dan Putih" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Kecerahan / Kontras" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Kecerahan" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontras" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurva" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Warna / Kepekatan" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inversikan Warna" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Tingkat" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterkan" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Penyesuaian Level" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Merah" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Hijau" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Biru" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Terkait" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Tambah derau" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Derau" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitas" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Kepekatan Warna" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cakupan" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Tonjolkan" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsi" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Sebanyak" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Ofset" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Awan" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Pencitraan" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Daya" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Umpan" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Deteksi Tepian" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Gayakan" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Sudut" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Timbul" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmen" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Buram" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmen" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Jarak" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Putaran" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Kaca Buram" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Pengaburan Gaussian" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Jari-jari" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Sketsa Tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistik" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Garis Tepi Tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Pewarnaan" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Mutu" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zum" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Persentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Pengaburan Gerak" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Ditengahkan" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Cat Minyak" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Ukuran Kuas" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Kekasaran" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kerangka" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Ketebalan" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Sketsa Pensil" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Ukuran Ujung Pensil" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Kisaran Warna" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselkan" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Ukuran Sel" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversi Kutub" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Pengaburan Melingkar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Hilangkan Mata Merah" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toleransi" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Kurangi Derau" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Kekuatan" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Pertajam" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Haluskan Foto" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Kehalusan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Pencahayaan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Kehangatan" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Refleksi Ubin" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Ukuran Ubin" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Pelintir" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Awafokus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Ofset Tengah" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Pengaburan Zum" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Peta Transfer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Kecemerlangan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Merah " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Biru " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Atur Ulang" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Klik-kanan untuk menghapus titik kendali." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Masukan Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Masukan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Keluaran" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Keluaran Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Pilih Warna Primer" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Pilih Warna Sekunder" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Pilih Warna Palet" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Lingkaran" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Petak" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kotak" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Lebar kuas" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Kecilkan ukuran kuas" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Besarkan ukuran kuas" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Model isian" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Bentuk Bergaris Tepi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Bentuk Berisi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Bentuk Berisi dan Bergaris Tepi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Duplikasi Stempel" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-Kiri untuk menentukan titik mula, klik kiri untuk melukis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pemilih Warna" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Setelah memilih" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Jangan ganti alat" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Ganti ke alat sebelumnya" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Ganti ke alat Pensil" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pensil" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Pemilih Elips" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Penghapus" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Modus curah" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Bersambungan" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Bentuk Bebas" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradiasi" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradasi Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradasi Linear Tercerminkan" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradasi Linear Wajik" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradasi Melingkar" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradasi Mengerucut" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Pemilih Laso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik dan seret untuk menggambar garis tepi area pemilihan." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Pemilih Tongkat Ajaib" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Pilih untuk memilih area yang warnanya mirip." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pindahkan Pemilih" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Kuas Cat" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Jenis" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Ember Cat" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Geser" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klik dan seret untuk menavigasi citra." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Warnai-ulang" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Pemilih Persegi Panjang" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Persegi Panjang" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Persegi Panjang Berlengkung" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Teks" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Tebal" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Miring" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Garis Bawah" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Rata Kiri" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Rata Tengah" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Rata Kanan" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Corak Teks" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal dan Skema" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Lebar outline" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "kurangi ukuran outline" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Tambah ukuran outline" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Simpan perubahan ke citra \"{0}\" sebelum menutup?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Bila Anda tidak simpan, semua perubahan akan hilang." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ambil Cuplikan Layar" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Jeda sebelum mengambil cuplikan layar (dalam detik)" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Berkas citra" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Simpan Berkas Citra" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta tidak dapat menyimpan gambar dalam format ini" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Ketaktembusan Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Ubah Nama Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Sembunyikan Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Tampilkan Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Properti Lapisan" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Diterjemahkan oleh:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Berdasarkan karya Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Menggunakan ikon dari:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Tentang Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Info Versi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lisensi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Dirilis di bawah Lisensi MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Hak Cipta" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "oleh kontributor Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kualitas JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kualitas: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nama:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Terlihat" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modus Pencampuran" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Ketaktembusan:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Lebar:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "piksel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Tinggi:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Judul" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Jalur" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Sembunyikan" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dapat dilabuhkan" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Mengambang" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Auto-Sembunyikan" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Berlabuh" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "jumlah ulir yang digunakan untuk melukis" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "Be_rkas" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edit" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Tampakan" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Citra" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lapisan" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Penyesuaian" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_k" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Jendela" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Jendela Alat" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Bantuan" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Riwayat" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lapisan" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Alat" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Sifat Tepian" #: 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.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.6/po/es.po0000664000175000017500000021104412474707515015232 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-25 14:53+0000\n" "Last-Translator: Adolfo Jayme \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Cree y edite imágenes fácilmente" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor de imágenes" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Editor de imágenes Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gestor de complementos" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Deshacer" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Rehacer" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cortar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copiar combinado" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Pegar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Pegar en una capa nueva" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Pegar en una imagen nueva" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Eliminar selección" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Rellenar la selección" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertir la selección" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Seleccionar todo" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deseleccionar todo" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Abrir…" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Guardar como…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Restablecer valores predeterminados" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Configurar número de colores" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Borrar selección" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Anular la selección" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Abrir archivo de paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Archivos de paletas (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Todos los archivos" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Guardar archivo de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta de Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta de GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Acerca de" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Recortar según la selección" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Recortar automáticamente" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Redimensionar imagen…" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionar lienzo…" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Voltear horizontalmente" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Voltear verticalmente" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Girar 90° a la derecha" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Girar 90° a la izquierda" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Girar 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Acoplar" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Añadir capa nueva" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Eliminar capa" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicar capa" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Combinar las capas hacia abajo" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importar desde archivo…" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Girar o acercar capa…" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Subir capa" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Bajar capa" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propiedades de capa…" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Abrir archivo de imagen" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importar desde archivo" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Ampliar" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Reducir" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Ajuste óptimo" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Ampliar a selección" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Tamaño normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra de herramientas" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Cuadrícula de píxeles" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Reglas" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Píxeles" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Pulgadas" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centímetros" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pantalla completa" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Ventana" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unidades de regla" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Herramienta" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Atajo de teclado" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Mezclado normal" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Sobrescribir" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Suavizado activado" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Suavizado desactivado" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Capa" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copiar" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionar el lienzo" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Desplazar píxeles seleccionados" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "La imagen es más grande que el lienzo" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expandir lienzo" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "No redimensionar el lienzo" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "No se puede pegar la imagen" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "El portapapeles no contiene ninguna imagen." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Reemplazar" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unión (+) (Ctrl+pulsac. izq.)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Excluir (−) (pulsac. der.)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl+pulsac. der.)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersecar (Mayús+pulsac. izq.)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modo de selección: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicar" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Adicionar" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Subexponer color" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Sobreexponer color" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflejar" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Brillo" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Superponer" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferencia" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negación" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Aclarar" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Oscurecer" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Trama" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "O exclusivo" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar píxeles" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensionar la imagen" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Imagen {0} ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efecto de renderizado" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "No se seleccionó ninguna herramienta." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagen sin guardar {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fondo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Imagen nueva" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Formato de archivo no compatible" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Abrir imagen" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permiso denegado" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "No se pudo abrir el archivo: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Nivel automático" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Blanco y negro" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brillo y contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brillo" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curvas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Matiz y saturación" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Matiz" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturación" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Luminosidad" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertir colores" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveles" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizar" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajuste de niveles" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rojo" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Azul" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Vinculado" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Añadir ruido" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Ruido" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensidad" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturación de color" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cobertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Abultar" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsionar" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Cantidad" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Desplazamiento" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nubes" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderizar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Potencia" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Semilla" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detección de bordes" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizar" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ángulo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Bajorrelieve" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmento" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Desenfoques" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmentos" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distancia" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotación" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Cristal congelado" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Desenfoque gaussiano" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radio" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografía" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Boceto en tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artístico" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contorno en tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Coloreado" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal de Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Calidad" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Desenfoque de movimiento" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrado" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintura al óleo" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Tamaño de pincel" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Aspereza" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorno" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Grosor" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Boceto a lápiz" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Tamaño de la punta" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Rango de color" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelar" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Tamaño de celda" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversión polar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Desenfoque radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Quitar ojos rojos" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancia" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Porcentaje de saturación" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reducir ruido" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Fuerza" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relieve" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Nítido" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Suavizado de retrato" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Suavidad" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Iluminación" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Calidez" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Reflejo en mosaico" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tamaño del mosaico" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Giro" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desenfocar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Fijar" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Ajustar" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primario" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secundario" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparente" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Desplazamiento desde el centro" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Desenfoque por zoom" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa de transferencia" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosidad" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rojo " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Azul " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Restablecer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" "Consejo: Pulse con el botón derecho para eliminar los puntos de control." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histograma de entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Salida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histograma de salida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automático" #: ../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:106 msgid "Choose Primary Color" msgstr "Elegir color primario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Elegir color secundario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Elegir colores de paleta" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Pulse para cambiar entre el color primario y el secundario." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Pulse para restablecer los colores primario y secundario." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Pulse para seleccionar un color primario." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Pulse para seleccionar un color secundario." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Pulse para establecer el color primario. Pulse con el botón derecho para " "establecer el color secundario. Pulse con el botón central para elegir el " "color de la paleta." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Capa mostrada" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Capa oculta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Círculos" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Red" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Aerógrafo" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Cuadrados" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Punteado" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Flecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Tamaño" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Disminuir tamaño de flecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Aumentar tamaño de flecha" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Decrementar desplazamiento de ángulo" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Incrementar desplazamiento de ángulo" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Longitud" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Decrementar desplazamiento de longitud" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Incrementar desplazamiento de longitud" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Grosor del pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Reducir grosor del pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Aumentar grosor del pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Estilo de llenado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Contornear forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Rellenar forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Rellenar y contornear forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Tipo de forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Serie de Línea/Curva abierta" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Serie de Línea/Curva cerrada" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Serie de Línea redondeada" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Tipo de forma cambiado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Punto eliminado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Eliminado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Punto añadido" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Añadido" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modificado" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalizado" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Curva abierta" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Curva cerrada" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Forma de Línea redondeada" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Decrementar el radio de la esquina de la forma" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Incrementar el radio de la esquina de la forma" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Tampón de clonación" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+pulse para fijar origen, pulse para pintar." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Selector de color" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Muestreo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Un solo píxel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Región de 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Región de 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Región de 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Región de 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imagen" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Tras la selección" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "No cambiar herramienta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Usar herramienta anterior" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Usar lápiz" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Lápiz" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Selección elíptica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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. Oprima Mayús para " "restringir a un círculo." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Click izquierdo para dibujar una forma con el color primario.\n" "Click izquierdo en una forma para añadir un punto de control.\n" "Click izquierdo en un punto de control y arrastrarlo para moverlo.\n" "Click derecho en un punto de control y arrastrarlo para cambiar su tensión.\n" "Mantener May para ajustar a los ángulos.\n" "Use las teclas de las flechas para mover el punto de control seleccionado.\n" "Presione Ctrl + flecha derecha/izquierda para seleccionar los puntos de " "control en orden.\n" "Presione Suprimir para eliminar el punto de control seleccionado.\n" "Presione Espacio para añadir un punto de control nuevo en la posición del " "ratón.\n" "Mantenga Ctrl mientras presiona Espacio para crear el punto de control en la " "misma posición.\n" "Mantenga Ctrl mientras hace click izquierdo en un punto de control para " "crear una nueva forma en la misma posición.\n" "Mantenga Ctrl mientras hace click fuera de los límites de una imagen para " "crear una nueva forma empezando en el borde.\n" "Apriete Enter para acabar la forma." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Borrador" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Modo de llenado" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contiguo" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma libre" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Degradado" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Degradado lineal" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Degradado lineal reflejado" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Degradado lineal en diamante" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Degradado radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Degradado cónico" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Selección con lazo" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Seleccione y arrastre el contorno para seleccionar un área." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Línea/curva" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Varita mágica" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Pulse para seleccionar una región de un color similar." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Pulse y arrastre la selección para mover el contenido seleccionado. Pulse " "con el botón derecho y arrastre para girar el contenido seleccionado." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover selección" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Pulse y arrastre la selección para mover el contorno de selección. Pulse con " "el botón derecho y arrastre para girar el contorno de selección." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pincel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Cubo de pintura" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Desplazar" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Pulse y arrastre para desplazarse por la imagen." #: ../Pinta.Tools/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 de forma libre con un píxel de anchura y con el " "color primario. Pulse con el botón derecho para usar el color secundario." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolorear" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Pulse para reemplazar el color secundario con el primario. Pulse con el " "botón derecho para invertir." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Selección rectangular" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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. Oprima Mayús para " "restringir a un cuadrado." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectángulo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rectángulo redondeado" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Texto" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Texto - Finalizar" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Tipografía" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Negrita" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Cursiva" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Subrayado" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Alinear a la izquierda" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Centrar texto" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Alinear a la derecha" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estilo de texto" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal y contorneado" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Rellenar el fondo" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ancho de contorno" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Reducir tamaño de contorno" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Aumentar tamaño de contorno" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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 ampliar a la selección." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Redimensionar paleta" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nuevo tamaño de paleta:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "¿Guardar los cambios en la imagen «{0}» antes de cerrar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Si no guarda los cambios, éstos se perderán permanentemente." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Cerrar _sin guardar" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Capturar pantalla" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Retardo antes de tomar la captura (s):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Archivos de imagen" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Guardar archivo de imagen" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 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." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "No se puede guardar un archivo de solo lectura." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Imagen demasiado grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 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/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacidad de la capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renombrar capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ocultar capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Mostrar capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propiedades de la capa" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Girar o acercar capa" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Complementos de la comunidad de Pinta: para plataformas específicas" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Complementos de la comunidad de Pinta: multiplataforma" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Colaboradores de esta versión:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Colaboradores anteriores:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Christopher https://launchpad.net/~cdhornb\n" " Eduardo Alberto Calvo https://launchpad.net/~edu5800\n" " Francisco Camenforte Torres https://launchpad.net/~fct\n" " Jin Valiant https://launchpad.net/~jin-valiant\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " VPablo https://launchpad.net/~villumar\n" " Woakaon https://launchpad.net/~calango-42" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Traducido por:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basado en el trabajo de Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Se usan algunos iconos de:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Funciona con Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Acerca de Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Información de la versión" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versión" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licencia" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Publicado bajo la licencia MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "de los colaboradores de Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Enviar fallo..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calidad de JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Calidad: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nombre:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modo de mezcla" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacidad:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Portapapeles" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Personalizado" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Preajuste:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Anchura:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "píxeles" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altura:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientación:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Vertical" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Horizontal" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Fondo:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Blanco" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Color del fondo" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ruta" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ocultar" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoplable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotante" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Ocultar automáticamente" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Anclar" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Mostrar este mensaje y salir." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Mostrar la versión de la aplicación." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "número de hilos que se usarán al renderizar" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Uso: pinta [archivos]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Opciones: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Archivo" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editar" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Ver" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imagen" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Capas" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Aju_stes" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "E_fectos" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Comp_lementos" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "Ve_ntana" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Ventanas de herramientas" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "Ay_uda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Lienzo" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historial" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Capas" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imágenes" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Herramientas" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportamiento del borde" #: 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.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.6/po/ms.po0000664000175000017500000020440412474707515015244 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-24 15:32+0000\n" "Last-Translator: abuyop \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Cipta dan sunting imej dengan mudah" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Penyunting Imej" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Penyunting Imej Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Pengurus Tambahan" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Buat Asal" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Buat semula" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Potong" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Salin" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Salin Bergabung" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Tampal" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Tampal dalam Lapisan Baru" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Tampal ke Imej Baru" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Padam Pemilihan" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Isi Pemilihan" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Songsangkan Pemilihan" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Pilih Semua" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Nyahpilih Semua" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Buka..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Simpan Sebagai..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Tetap ke Lalai" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Tetapkan Bilangan Warna" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palet" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Padam Pemilihan" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Nyahpilih" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Buka Fail Palet" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Fail Palet (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Semua fail-fail" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Ralat" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Simpan Fail Palet" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Palet Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Palet GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Perihal" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Saiz Semula Imej..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Saiz Semula Kanvas..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Kalih Mengufuk" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Kalih Menegak" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Pusing 90° Arah Jam" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Pusing 90° Lawan Arah Jam" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Pusing 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Meratakan" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Tambah Lapisan Baru" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Padam Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Gandakan Lapisan" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Gabungkan Lapisan Bawah" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Import dari Fail..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Putar / Zum Lapisan..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Alih Lapisan Ke atas" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Alih Lapisan Ke bawah" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Ciri-ciri Lapisan..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Buka Fail Gambar" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Import Dari Fail" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zum Masuk" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zum Keluar" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Sesuai Muat" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zum ke Pemilihan" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Saiz Normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Palang Alat" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grid Piksel" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Pembaris" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Piksel" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inci" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Sentimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Skrin Penuh" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Tetingkap" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unit Pembaris" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Alat" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Kekunci pintasan" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Pengadunan Normal" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Tulis-Ganti" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialias Hidup" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialias Mati" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lapisan" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "salin" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Ubah Saiz Kanvas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Alih Piksel Pilihan" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Imej lebih besar dari kanvas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Kembangkan kanvas" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Jangan ubah saiz kanvas" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Imej tidak boleh ditampal" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Papan keratan tidak mengandungi imej." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Ganti" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Satukan (+) (Ctrl + Klik Kiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Asingkan (-) (Klik Kanan)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Klik Kanan)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Silangkan (Shift + Klik Kiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Mod Pemilihan: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Biasa" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Ganda" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Tambahan" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Bakar Warna" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Tokok Tambah Warna" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Pantulan" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Bersinar" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Tindihan Atas" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Perbezaan" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negasi" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Cerahkan" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Gelapkan" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Skrin" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Piksel Selesai" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Ubah Saiz Gambar" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imej ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Kesan Penerapan" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Tiada alat dipilih." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Gambar Belum Simpan {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Latar Belakang" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Gambar Baru" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Format fail tidak disokong" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Buka Gambar" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Keizinan dinafikan" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Gagal buka fail: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Aras Automatik" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Hitam Putih" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Kecerahan / Beza Jelas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Kecerahan" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Beza Jelas" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Lengkung" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Hue / Ketepuan" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Rona" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Ketepuan" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Kecerahan" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Songsangkan Warna" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Paras-paras" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterkan" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Pelarasan Paras" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Merah" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Hijau" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Biru" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Terpaut" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Tambah Hingar" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Hingar" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Keamatan" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Ketepuan Warna" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Liputan" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bonjol" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Herot" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Amaun" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Ofset" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Awan" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Jadikan" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Kuasa" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Benih" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Kesan Tepi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Gayakan" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Sudut" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Cetak Timbul" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Serpihan" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Kabur" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Cebisan" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Jarak" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Putaran" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Gelas Beku" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Kabur Gaussian" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Jejari" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Lakaran Dakwat" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistik" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Garis Luar Dakwat" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Pewarnaan" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kualiti" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zum" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fraktal Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Persentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Kabur Gerakan" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Ditengahkan" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Lukisan Minyak" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Saiz Berus" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Kekasaran" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Garis Luar" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Ketebalan" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Lakaran Pensil" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Saiz Hujung Pensel" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Julat Warna" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselkan" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Saiz Sel" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Pembalikan Kutub" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Kabur Berjejari" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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 pratonton, imej kecil, dan sudut kecil. Guna " "kualiti tinggi untuk kualiti terakhir, imej besar, dan sudut besar." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Pembuangan Mata Merah" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Had terima" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Peratus Ketepuan" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Kurangkan Hingar" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Kelembutan" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Lepas" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Jelaskan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Lembutkan Potret" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Kelembutan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Pencahayaan" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Kehangatan" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Pantulan Genting" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Saiz Jubin" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Putar" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Samar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Kapit" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Lilit" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Utama" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Sekunder" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Lutsinar" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Asal" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Ofset Pusat" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Kabur Zum" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Peta Pindahan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminans" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Merah " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Biru " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Tetap semula" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Klu: Klik kanan untuk buang titik kawalan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogram Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogram Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Pilih Warna Utama" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Pilih Warna Kedua" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Pilih Warna Palet" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klik untuk tukar diantara warna utama dan sekunder." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Klik untuk tetap semula warna utama dan sekunder." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klik untuk pilih warna utama." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klik untuk pilih warna sekunder." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Klik kiri untuk tetapkan warna utama. Klik kiri untuk tetapkan warna " "sekunder. Klik tengah untuk pilih warna palet." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Lapisan Dipaparkan" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Lapisan Disembunyikan" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Bulatan" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grid" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Splatter" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Segi Empat Sama" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Sengkang" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Anak Panah" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Saiz" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Kurangkan saiz anak panah" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Tingkatkan saiz anak panah" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Kurangkan ofset sudut" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Tingkatkan ofset sudut" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Panjang" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Kurangkan ofset panjang" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Tingkatkan ofset panjang" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Lebar Berus" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Kurangkan saiz berus" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Tingkatkan saiz berus" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Gaya Isi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Bentuk Garis Luar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Bentuk Isi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Isi dan Bentuk Garis Luar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Jenis Bentuk" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Siri Garis/Lengkung Terbuka" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Siri Garis/Lengkung Tertutup" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Siri Garis Terbundar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Jenis Bentuk Berubah" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Titik Dipadam" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Dipadam" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Titik Ditambah" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Ditambah" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Diubahsuai" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Dimuktamadkan" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Bentuk Lengkung Terbuka" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Bentuk Lengkung Terbuka" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Bentuk Garis Bundar" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Kurangkan radius bucu bentuk" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Tingkatkan radius bucu bentuk" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Setem Klon" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+klik kiri untuk tetapkan asalan, klik kiri untuk cat" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pemilih Warna" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Persampelan" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Piksel Tunggal" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Kawasan 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Kawasan 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Kawasan 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Kawasan 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imej" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Selepas pilih" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Jangan tukar alat" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Tukar kepada alat terdahulu" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Tukar ke alat Pensel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pensil" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Pilih Elips" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Klik dan seret untuk lukis pemilihan eliptik. Tahan Shift untuk kekang " "menjadi bulatan." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Klik kiri untuk melukis bentuk dengan warna utama.\n" "Klik kiri pada bentuk untuk menambah titik kawalan.\n" "Klik kiri pada titik kawalan dan seret ia untuk menggerakkannya.\n" "Klik kanan pada titik kawalan dan seret untuk mengubah tegangannya.\n" "Tahan Shift untuk lekap mengikut sudut.\n" "Guna kekunci anak panah untuk menggerakkan titik kawalan terpilih.\n" "Tekan Ctrl + anak panah kiri/kanan untuk memilih titik kawalan mengikut " "tertib.\n" "Tekan Delete untuk memadam titik kawalan terpilih.\n" "Tekan Space untuk menambah titik kawalan baharu pada kedudukan penuding " "tetikus.\n" "Tahan Ctrl semasa menekan Space untuk mencipta titik kawalan pada kedudukan " "yang sama.\n" "Tahan Ctrl semasa mengklik kiri pada titik kawalan untuk mencipta bentuk " "baharu pada kedudukan yang sama.\n" "Tahan Ctrl semasa mengklik diluar sempadan imej untuk mencipta bentuk baharu " "yang bermula dipinggirnya.\n" "Tekan Enter untuk memuktamadkan bentuk yang dikehendaki." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Pemadam" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mod Limpah" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Bersebelahan" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Sejagat" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Bentuk Bebas" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradien" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gredien Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradien Terpantul Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradien Intan Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradien Jejari" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradien Berkon" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Pilih Lasso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik dan seret untuk lukis garis luar kawasan pemilihan." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Garis/Lengkung" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Pilih Tongkat Ajaib" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klik untuk pilih kawasan yang sama warna" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Klik kiri dan seret pemilihan untuk alihkan kandungan terpilih. Klik kanan " "dan seret pemilihan untuk putar kandungan terpilih." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Alih Pilihan" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Klik kiri dan seret pemilihan untuk alihkan garisan luar pemilihan. Klik " "kanan dan seret pemilihan untuk putar garisan luar pemilihan." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Berus cat" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Jenis" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Baldi Cat" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klik dan seret untuk pandu arah imej." #: ../Pinta.Tools/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 garis lebar satu piksel dengan warna utama. Klik kanan " "untuk guna warna sekunder." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Warna Semula" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Klik kiri untuk ganti warna sekunder dengan warna utama. Klik kanan untuk " "kekalkan." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Pilih Segi Empat Tepat" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Klik dan seret untuk lukis pemilihan segiempat. Tahan Shift untuk kekang " "menjadi segiempat sama." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Segiempat Tepat" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Segi Empat Tepat Bundar" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Teks" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Teks - Muktamatkan" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Fon" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Tebal" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Condong" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Garis Bawah" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Jajar Kiri" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Jajar Tengah" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Jajar Kanan" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Gaya Teks" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Biasa dan Garis Luar" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Isi Latar Belakang" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Lebar garis luar" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Kurangkan saiz garis luar" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Tingkatkan saiz garis luar" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ubah Saiz Palet" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Saiz baru palet:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Simpan perubahan ke imej \"{0}\" sebelum menutup?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Jika anda tidak simpan, semua perubahan akan hilang." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Tutup ta_npa menyimpan" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ambil Cekupan Skrin" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Lengahan sebelum mengambil cekupan skrin (saat):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Fail-fail Gambar" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Simpan fail Gambar" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta tidak boleh menyimpan gambar dalam format fail ini." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Tidak dapat simpan fail baca-sahaja" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Imej terlalu besar" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Fail ICo tidak boleh besar dari 255 x 255 piksel." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Kelegapan Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Nama Semula Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Sembunyi Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Papar Lapisan" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Sifat Lapisan" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Putar / Zum Lapisan" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Tambahan Komuniti Pinta - Spesifik-Platform" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Tambahan Komuniti Pinta - Platform-Berbilang" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Penyumbang keluaran ini:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Penyumbang terdahulu:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Diterjemah oleh:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Berasaskan Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Menggunakan beberapa ikon dari:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Dikuasakan oleh Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Berkenaan Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Maklumat Versi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lesen" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Dilepaskan dibawah Lesen X11 MIT." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Hakcipta" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "oleh penyumbang Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Perincian" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Lapor Pepijat..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kualiti JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kualiti: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nama:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Boleh Dilihat" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mod Adunan" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Kelegapan:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Papan Keratan" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Suai" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Praset:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Lebar:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "piksel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Tinggi:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientasi:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Potret" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Lanskap" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Latar Belakang:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Putih" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Warna Latar Belakang" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tajuk" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Laluan" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Sorok" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Boleh labuh" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Terapung" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Auto Sembunyi" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Labuh" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Tunjuk mesej ini kemudian keluar." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Papar versi aplikasi." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "bilangan bebenang yang digunakan untuk penerapan" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Penggunaan: pinta [files]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Pilihan: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fail" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Sunting" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Paparan" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imej" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lapisan" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Pelarasan" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Kes_an" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Tam_bahan" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Tetingkap" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Tetingkap Alat" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Bantuan" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nama Pilihan" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Kanvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Sejarah" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lapisan" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imej" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Alatan" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kelakuan Pinggir" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Pemilihan berbilang:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Dibenarkan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Dilumpuhkan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Tiada pemilihan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Tersedia dalam repositori:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Kemaskini tersedia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Tambahan ini tidak boleh dimuatkan kerana kehilangan dependensi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Diperlukan: {0} v{1}, temui v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Hilang: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versi pemasangan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Versi repositori" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Saiz muat turun" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "Dependensi berikut diperlukan oleh tambahan ini tidak tersedia:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Pemasangan dibatalkan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Beberapa tambahan yang diperlukan tidak ditemui" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Pemasangan gagal" #: 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 "Dipasang" #: 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 "Kemaskini" #: 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 "Galeri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Semua repositori" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Urus Repositori..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} kemaskini tersedia" msgstr[1] "{0} kemaskini tersedia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Mengemaskini repositori" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Pasang Pakej Tambahan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pakej tambahan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Tiada tambahan ditemui" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Tambahan" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Lain-lain" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Nyahpasang" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Pakej berikut akan dibuang:" #: 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 "" "Terdapat tambahan lain yang bergantung pada yang terdahulu juga akan dibuang:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Tambahan yang dipilih tidak dapat dipasang kerana terdapat konflik " "dependensi." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Pakej berikut akan dipasang:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (dalam direktori pengguna)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Pakej tersebut perlu dibuang:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Dependensi berikut tidak dapat dileraikan:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Anda pasti ingin membatalkan proses pemasangan?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Memasang Tambahan" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Pemasangan gagal!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Pemasangan selesai tetapi berserta amaran." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Menyahpasang Tambahan" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Penyahpasangan gagal!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Penyahpasangan telah selesai berserta amaran." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Mendaftar repositori" #: 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 "Pengecualian berlaku: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Maklumat lanjut" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Pasang..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Kemaskini" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Nyahpasang..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Sambungan tambahan diperlukan untuk melakukan operasi ini." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Tambahan berikut akan dipasang:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Tiada kemaskini ditemui" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Segar Semula" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Kemaskini Semua" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repositori:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Pasang dari fail..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Pasang" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Pengurusan Repositori Tambahan" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Tambah Repositori Baru" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Pilih lokasi repositori yang ingin didaftar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Daftar repositori atas talian" #: 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 "Daftar repositori setempat" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Laluan:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Layar..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Kemajuan" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(disediakan oleh {0})" pinta-1.6/po/vi.po0000664000175000017500000016240412474707515015246 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Bảng màu" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Giới thiệu" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Chỉnh cỡ nền vẽ" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Dịch chuyển các điểm ảnh được chọn" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Chỉnh cỡ hình" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Hình mới" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Thu phóng" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Bề rộng nét chổi vẽ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Giảm cỡ chổi vẽ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Tăng cỡ chổi vẽ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Vẽ biên ngoài của hình" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Tô đầy hình" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Tô đầy và vẽ biên ngoài của hình" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Chọn màu" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Sau khi lựa chọn" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Không đổi công cụ" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Chuyển về công cụ trước đó" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Chuyển về công cụ bút chì" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Bút chì" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Chọn theo chế độ thòng lọng" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Bút vẽ" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Độ mờ đục của lớp" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Đổi tên lớp" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ẩn lớp" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Hiện lớp" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Các thuộc tính lớp" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Dịch bởi:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Dựa trên chương trình Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Dùng một số hình biểu tượng từ:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Giới thiệu Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Thông tin về phiên bản" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Phiên bản" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Giấy phép" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Phát hành theo giấy phép MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Bản quyền" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "bởi nhóm đóng góp cho Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Tên:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Có thể thấy được" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Độ đục:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Bề rộng:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "điểm ảnh" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Độ cao:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Tựa đề" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Đường dẫn" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ẩn" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Neo được" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Trôi" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Tự động ẩn" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Neo" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "số tuyến được dùng để lên hình" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Sửa" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Xem" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "Ả_nh" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lớp" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Chỉnh" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Hiệu ứng" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "Cử_a sổ" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Trợ giúp" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Quá trình" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lớp" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Công cụ" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/ar.po0000664000175000017500000021003212474707515015221 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-02-18 06:14+0000\n" "Last-Translator: xDev \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "مدير الإضافات" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "تراجع" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "كَرِّر" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "قُصّ" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "انسخ" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "انسخ ما دُمج" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "الصق" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "الصق في طبقة جديدة" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "الصق في صورة جديدة" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "احذف البكسلات المُحددة" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "عبّأ المنطقة المُحددة" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "اعكس التّحديد" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "حدّد الكلّ" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "أزل التحديد عن الكل" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "افتح..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "احفظ كـ..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "أعد إلى الحالة المبدئيّة" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "عيّن عدد الألوان" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "لوحة الألوان" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "امحُ التّحديد" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "أزل التّحديد" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "افتح ملفّ لوحة ألوان" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "ملفات ألواح الألوان (*.txt، *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "كل الملفّات" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "خطأ" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "احفظ ملفّ لوحة الألوان" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "ملفّ لوحة ألوان لبرنامج Paint.NET (*.xt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "لوحة ألوان لبرنامج GIMP (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "جديد..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "عنْ" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "اقتص وفقًا للتّحديد" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "اقتصاص آلي" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "غيّر مقاس الصورة..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "غيّر مقاس مساحة الرسم..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "اقلب أفقيًّا" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "اقلب رأسيًّا" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "دوّر 90 درجة باتّجاه عقارب السّاعة" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "دوّر 90 درجة باتّجاه عكس عقارب السّاعة" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "دوّر 180 درجة" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "سطّح" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "أضف طبقة جديدة" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "احذف الطّبقة" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "كرر الطبقة" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "ادمج الطّبقة مع الطّبقة تحتها" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "استورد من ملفّ..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "تدوير/تكبير الطبقة..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "تحريك الطبقة لأعلى" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "تحريك الطبقة لأسفل" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "خصائص الطّبقة..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "فتح ملفّ صورة" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "استورد من ملفّ" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "كبّر" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "صغّر" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "أفضل ملائمة" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "عدّل الحجم ليناسب التحديد" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "الحجم الطبيعي" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "شريط الأدوات" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "شبكة البكسلات" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "المساطر" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "بكسلات" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "بوصات" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "سنتيمترات" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "كامل الشاشة" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "النافذة" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "وحدات المسطرة" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "احفظ الكلّ" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "أغلق الكلّ" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "الأداة" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "مفتاح الاختصار" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "خلط عاديّ" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "الكتابة فوق" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "فعّل التنعيم" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "عطّل التنعيم" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "الطبقة" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "انسخ" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "تغيير مقاس مساحة الرسم" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "تحريك البكسلات المُحددة" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "الصورة أكبر من مساحة الرسم" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "الصورة المُلصقة أكبر من مساحة الرسم. ماذا تحب أن تفعل؟" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "وسّع مساحة الرسم" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "لا تغّير مقاس مساحة الرسم" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "لا يمكن لصق الصورة" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "لا تحتوي الحافظة على صورة." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "استبدل" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " وضع التحديد: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "طبيعي" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "تكرار" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "جمعي" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "انعكاس" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "توهّج" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "كسو" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "طرح" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "تخفيف" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "تقتيم" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "شاشة" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "اقلب الطبقة أفقيًّا" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "اقلب الطبقة رأسيًّا" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "تغيير مقاس الصورة" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} صورة ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "تأثير التّصيير" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "لا أداة مُحدَّدة" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "صورة لم تُحفَظ {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "الخلفيّة" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "صورة جديدة" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "افتح صورة" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "رُفض التّصريح" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "لم يستطع فتح الملف: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "اضبط المستويات تلقائيا" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "أسود وأبيض" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "السطوع / التباين" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "السطوع" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "التباين" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "منحنيات" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "درجة اللون / الإشباع" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "اعكس الألوان" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "المستويات" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "تأثير الملصقات" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "تأثير اللّون البنّي الدّاكن" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "ضبط المستويات" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "أحمر" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "أخضر" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "أزرق" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "مرتبط" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "أضف ضوضاء" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "ضوضاء" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "الكثافة" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "نطاق التغطية" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "انتفاخ" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "تشويه" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "القيمة" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "الانزياح" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "غيوم" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "صيّر" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "المقياس" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "القوة" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "تحديد الحواف" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "كسوة" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "الزاويه" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "تجسيم" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "تفتيت" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "غشاوة" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "الفُتات" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "المسافة" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "الدوران" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "تأثير الزجاج المثلج" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "غشاوة غَوْسِيّة" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "نصف القطر" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "صورة" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "رسم بالحبر" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "فنّي" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "حد الحبر" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "التلوين" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "رمز جوليا" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "المعامل" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "الجودة" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "تكبير/تصغير" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "رمز مندلبروت" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "متوسط" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "غشاوة حركية" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "توسيط" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "رسم زيتيّ" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "مقاس الفرشاة" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "الخشونة" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "حد خارجي" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "الثخانة" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "رسم بقلم رصاص" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "حجم سن قلم الرصاص" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "مدى اللون" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "بكسلة" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "مقاس الخلية" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "انعكاس قطبي" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "غشاوة دورانية" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "استخدم جودة منخفضة للمُصغّرات، والصور الصغيرة، والزوايا الصغيرة. واستخدام " "جودة مرتفعة للجودة النهائية، والصور الكبيرة، والزوايا الكبيرة." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "إزالة احمرار العين" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "السماحية" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "تلميح: للحصول على أفضل نتيجة، استخدم أولًا أدوات التحديد وحدد كل عين على حدة." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "اخفض الضّوضاء" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "الشدة" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "تضريس" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "اصقل" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "تنعيم الصورة" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "تليين" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "الإضاءة" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "انعكاس بلاط" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "مقاس البلاطة" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "لفّ" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "التنعيم" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "ألغِ التّركيز" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "انزياح المركز" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "غشاوة تقريبيّة" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "نقل الخريطة" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "ح‌خ‌ز" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "الإشراق" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256، 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "أحمر " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "أزرق " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "أعد الضبط" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "تلميح: انقر بالزر الأيمن لحذف نقاط التحكم." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "الرسم البياني للمُدخَلات" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "المُدخََلات" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "المُخرجَات" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "الرسم البياني للمُخرجَات" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "اختر اللّون الأساسيّ" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "اختر اللّون الثّانويّ" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "اختر لون لوحة الألوان" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "انقر للتبديل بين اللون الأولي واللون الثانوي" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "انقر لاختيار اللون الأولي" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "انقر لاختيار اللون الثانوي" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "انقر باليسار لاختيار اللون الأولي، أو باليمين لاختيار اللون الثانوي، أو بزر " "الفأرة الأوسط لاختيار لون من لوح الألوان." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "إظهار الطبقة" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "إخفاء الطبقة" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "دوائر" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "خطوط شبيكة" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "بخاخ" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "مربعات" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "عرض الفرشاة" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "قلِّل مقاس الفرشاة" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "زِد مقاس الفرشاة" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "نمط التعبئة" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "شكل بحدود خارجية فقط" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "شكل معبأ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "شكل معبأ مع حدود خارجية" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "إهليج" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "المستنسخ" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "انقر على زر Ctrl الأيسر لتعيين نقطة الأصل، وارسم بالزر الأيسر للفأرة." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "لاقط الألوان" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "استخدم الزر الأيسر لتعيين اللون الأساسي، والزر الأيمن لتعيين اللون الثانوي." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "بيكسل مفرد" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "منطقة بمساحة 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "منطقة بمساحة 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "منطقة بمساحة 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "منطقة بمساحة 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "صورة" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "بعد لقط اللون" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "لا تغيّر الأداة" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "غيّر إلى الأداة السابقة" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "بدّل إلى القلم الرصاص" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "قلم رصاص" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "تحديد بيضاوي" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "انقر واسحب لرسم تحديد بيضوي. اضغط ضغطة مستمرة على Shift لرسم تحديد دائري." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "ممحاة" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "استخدم الزر الأيسر للمحو إلى الشفافية، والزر الأيمن للمحو إلى اللون الثانوي. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "نمط التحديد" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "متّصل" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "شامل" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "شكل حُر" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "انقر بالزر الأيسر للرسم باللون الأساسي، وبالزر الأيمن للرسم باللون الثانوي." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "تدرّج" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "انقر واسحب لرسم تدرّج من اللون الأساسي لللون الثانوي، وانقر الزر الأيمن لعمل " "العكس." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "تدرّج خطي" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "تدرّج خطي منعكس" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "تدرّج خطي ماسّي" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "تدرّج قطري" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "تدرّج مخروطي" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "تحديد حُر" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "انقر واسحب لرسم تحديد حُر." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "عصا التحديد السحرية" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "انقر لتحديد مساحة بألوان متقاربة." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "انقر فوق التحديد باليسار واسحبه لنقل محتواه، أو انقر فوقه باليمين واسحبه " "لتدوير محتواه." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "تحريك التحديد" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "انقر فوق التحديد باليسار واسحبه لنقل حدوده، أو انقر فوقه باليمين واسحبه " "لتدويره." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "فرشاة تلوين" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "النوع" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "دلو الطلاﺀ" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "انتقل" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "انقر واسحب لتصفّح الصّورة" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "إعادة تلوين" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "تحديد مستطيل" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "مستطيل" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "مستطيل مستدير الزوايا" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "نصّ" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "انقر بالزّر الأيسر للفأرة لتعيين موضع المؤشّر، ثمّ اكتب النّص. لون النّص " "يوافق اللّون الأساسيّ." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "الخطّ" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "غليظ" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "مائل" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "خط سُفليّ" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "محاذاة لليسار" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "محاذاة للوسط" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "محاذاة لليمين" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "نمط النص" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "عادي مع حد خارجي" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "عبأ الخلفية" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "عرض الحد الخارجي" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "قلِّل مقاس الحد الخارجي" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "زِد مقاس الحد الخارجي" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "انقر بالزر الأيسر للتكبير، وانقر بالزر الأيمن للتصغير. أو اضغط واسحب لتحديد " "مساحة لتكبيرها أو تصغيرها." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "تغيير مقاس لوحة الألوان" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "المقاس الجديد للوحة الألوان:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "هل تريد حفظ التغييرات على الصورة \"{0}\" قبل الإغلاق؟" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "إذا لم تحفظ، ستضيع جميع التغييرات نهائيًا." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "خُذ لقطة للشاشة" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "المُهلة قبل أخذ لقطة للشاشة (بالثوانِ):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "ملفات الصور" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "حفظ ملف صورة" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "لايدعم بِنْتا الصور المحفوظة بهذه الصيغ." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "لايمكن حفظ الملفات المُخصصة للقراءة فقط." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "الصورة كبيرة جدًا" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ملفات ICO لا يمكن أن تكون أكبر من 255 × 255 بكسل." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "الملف المُسمى \"{0}\" موجود حاليًا. هل تريد استبداله؟" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "الملف موجود حاليًا في \"{1}\". استبداله سوف يكتبه على المحتويات الموجود " "مسبقًا." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "إعتام الطبقة" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "غيّر اسم الطبقة" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "أخف الطبقة" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "إظهار الطبقة" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "خصائص الطبقة" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "تدوير/تكبير الطبقة" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "ترجمة:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "إستخدام بعض الأيقونات من:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "عنْ بِنْتا" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "معلومات النسخة" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "الإصدار" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "الترخيص" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "حقوق النشر" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "بواسطة مساهمين بينتا" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "جودة JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "الجودة: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "الاسم:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "مرئي" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "نمط المزج" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "الإعتام:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "العرض:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "بكسلات" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "الطول:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "العنوان" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "المسار" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "أخفِ" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "قابل للترصيف" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "عائم" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "اخفاء تلقائي" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "حافظ على نسبة الطول إلى العرض" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_ملف" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "ت_حرير" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_عرض" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "الصورة" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "ال_طبقات" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "ت_عديلات" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "تأثيرات" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_نافذة" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "نوافذ الأدوات" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "م_ساعدة" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "اختيار" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "التاريخ" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "الطبقات" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "صور" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "الأدوات" #: Polar Inversion dialog msgid "Edge Behavior" 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] "تحديث واحد متوفر" msgstr[2] "تحديثان متوفران" msgstr[3] "{0} تحديثات متوفرة" msgstr[4] "{0} تحديثا متوفرا" msgstr[5] "{0} تحديث متوفر" #: 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.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.6/po/stamp-it0000664000175000017500000000000012474707543015731 0ustar00cameroncameron00000000000000pinta-1.6/po/ga.po0000664000175000017500000016723112474707515015222 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-03-21 04:13+0000\n" "Last-Translator: Seanan \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Cealaigh" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Déan Árís É" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Gearr" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Macasamhlaigh" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Greamaigh" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Greamaigh Sa Sraith Nua" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Greamaigh i Sraith Nua" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Líon an Roghnúchán" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Aisiompaigh an Roghnúchán" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Roghnaigh Uile" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Oscail..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Cuir i dTaisce Mar..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Fill ar Réamhshocruithe" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Socraigh Líon na nDathanna" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Pailéad" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Scrios an Roghnúchán" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Díroghnaigh" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Oscail Comhad Páiléid" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Comhaid phailéid (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Gach comhad" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Botún" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Pailéad Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Pailéad GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Maidir Leis" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Cas go Cothrománach" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Cas go hIngearach" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rothlaigh 90° Deiseal" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rothlaigh 90° Tuathalach" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rothlaigh 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Leacaigh" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Cuir Sraith Nua Leis" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Scrios Sraith" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dúblaigh Sraith" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Cumasc Sraith Síos" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Tabhair isteach ó chomhad..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Bog Sraith Suas" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Bog Sraith Síos" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Airíonna na Sraithe..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Oscail Comhad Íomhá" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Tabhair isteach ó chomhad" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Formhéadaigh Isteach" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Formhéadaigh Amach" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Formhéadaigh go dtí an Roghnúchán" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra Uirlisí" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Eangach na bPicteilín" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Rialtóirí" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Picteilíní" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Orlach" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Ceintiméadar" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Lánscáileán" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fuinneog" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Aonaid an Rialóra" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Uirlis" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Aicearra" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Gnáthchumasc" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Forscríobh" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Sraith" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "macasamhlaigh" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Athmhéadaigh an Canbhás" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Bog na Picteilíní Roghnaithe" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Gnáth" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Breo" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Athraigh Méid na hÍomhá" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} íomhá ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Íomhá nár chuireadh i dtaisce {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Cúlra" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Íomhá Nua" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Oscail Íomhá" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Níorbh fhéidir an comhad a oscailt: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Dubh agus Bán" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Gile / Codarsnacht" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Gile" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Codarsnacht" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Cuair" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Lí / Sáithiú" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Aisiompaigh na Dathanna" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Airde" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Déan póstaer de" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Dearg" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Uaine" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Gorm" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Nasctha" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Cuir torann leis" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Torann" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Déine" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Sáithiú na nDathanna" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Clúdú" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Boilscigh" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Saobh" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Méid" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Seach-chur" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Scamaill" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Cruth" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scála" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Cumhacht" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Síol" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Uillinn" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Cabhair" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Scoilt" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Geamhú" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Bloghanna" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Fad" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rothlú" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Gloine Shioctha" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Geamhú Gaussach" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Ga" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Grianghraf" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Dúchléaráid" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Ealaíonta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Imlíne Dhúigh" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Dathú" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Frachtal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Fachtóir" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Cáilíocht" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Formhéadaigh" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Meánach" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Ceintíl" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Láraithe" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olaphictiúr" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Méid na Scuaibe" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Imlínigh" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tiús" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Léaráid Phinn Luaidhe" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Raon na nDathanna" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Méid na Cille" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Aisiompú Polach" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Baint Súile Dhearga" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Lamháltas" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Maolaigh an torann" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Neart" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Rilíf" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Géaraigh" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Bog" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Soilsiú" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Teas" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Cas" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Frith-ailias:" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "DGlGo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lonrachas" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Dear " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Gorm " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Athshocraigh" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Ionchur" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Aschur" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Uathoibríoch" #: ../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:106 msgid "Choose Primary Color" msgstr "Roghnaigh an príomhdhath" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Roghnaigh an Dath Tánaisteach" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" "Brúigh anseo chun an príomhdhath agus an dath tánaisteach a athshocrú." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Brúigh anseo chun an príomhdhath a roghnú." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Brúigh anseo chun an dath tánaisteach a roghnú." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "An ciseal ar taispeáint" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "An ciseal i bhfolach" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Ciorcail" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Eangach" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Doirt" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Cearnóga" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Leithead na scuaibe" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Laghdaigh méid na scuaibe" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Méadaigh méid na scuaibe" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Imlínigh an Cruth" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Líon an Cruth" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Líon agus Imlínigh Cruth" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Éilips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Roghnóir Dathanna" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Tar éis an roghnú" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ná athraigh an uirlis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Fill ar an n-uirlis roimhe seo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Athraigh chuig uirlis an phinn luaidhe" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Peann Luaidhe" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Scriosán" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Comhtheagmhálach" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Comhchoiteann" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Cruth Saor" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Grádán" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Grádán Gathach" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Roghnú Fleasc Dhraíochta" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Bog Roghnúchán" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "scuab phéinte" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Cineál" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Brúigh agus tarraing chun an íomhá a ghluaiseacht." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Athdhathaigh" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Roghnú Dronuilleog" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Dronuilleog" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Dronuilleog Cruinn" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Téacs" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Clófhoireann" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Cló Trom" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Iodálach" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Cuir líne faoi" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Ailínigh Ar Chlé" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Ailínigh sa lár" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Ailínigh Ar Dheis" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Méid pháiléid nua:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Tóg Gabháil Scáileáin" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Moill roimh gabháil scáileáin a thógáil (soicindí):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Comhaid íomhánna" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Teimhneacht na Sraithe" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Athainmnigh Sraith" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Folaigh Sraith" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Taispeáin Sraith" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Airíonna na Sraithe" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Aistrithe ag:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Bunaithe ar an oibre Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Ag baineadh feidhm as deilbhíní as:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Maidir le Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Eolas faoin Leagan" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Leagan" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Ceadúnas" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Cóipcheart" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Cáilíocht JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Cáilíocht: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Ainm:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Infheicthe" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Teimhneacht:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Leithead:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "picteilíní" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Airde:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Teideal" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Conair" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Folaigh" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Foluaineach" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Folaigh go hUathoibríoch" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Cuir i nDuga" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Comhad" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "Cuir in _Eagar" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Amharc" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Íomhá" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Sraitheanna" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Mionathruithe" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Tionchair" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fuinneog" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Fuinneoga na nUirlisí" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Cabhair" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Oireas" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Sraitheanna" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Uirlisí" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/zh_TW.po0000664000175000017500000020002312474707515015651 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-25 14:50+0000\n" "Last-Translator: Walter Cheuk \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "輕鬆建立和編輯圖片" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "影像編輯器" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta 圖片編輯器" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "附加元件管理器" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "復原" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "取消復原" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "剪下" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "複製" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "合併複製" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "貼上" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "貼到新圖層" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "貼到新圖片" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "清除選取區域" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "填充選取區域" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "反向選取" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "全選" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "取消選取" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "開啟..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "另存新檔..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "重置為預設" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "設置顏色數量" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "調色盤" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "清除選取區域" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "取消選取" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "開啟調色盤檔案" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "調色盤檔案 (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "所有檔案" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "錯誤" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "儲存調色盤檔案" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET 調色盤 (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP 調色盤 (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新增..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "關於" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "剪裁出選取區域" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "自動裁切" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "調整圖片大小..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "調整畫布大小..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "水平翻轉" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "垂直翻轉" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "順時針旋轉90°" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "逆時針旋轉90°" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "旋轉 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "影像平面化" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "新增圖層" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "刪除圖層" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "複製圖層" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "將目前所選圖層及它下一層圖層合併" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "匯入圖片檔..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "旋轉/縮放圖層..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "圖層上移" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "圖層下移" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "圖層屬性..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "開啟圖片檔" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "匯入圖片檔" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "放大" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "縮小" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "最佳大小" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "放大成自選區域" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "正常大小" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "工具列" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "像素格線" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "尺規" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "像素" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "英吋" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "公分" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "全螢幕" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "視窗" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "尺規單位" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "儲存所有圖片" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "關閉所有圖片" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "工具" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "快速鍵" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "一般混合" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "覆蓋" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "反鋸齒開啟" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "反鋸齒關閉" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "圖層" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "複製" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "調整畫布尺寸" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "移動選取的像素" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "影像大於畫布" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "貼上的圖片大於畫布大小。您打算做什麼?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "擴大畫布" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "不要更改畫布大小" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "圖片不能被粘貼" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "剪貼簿中不包含圖片。" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "取代" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "聯合 (+) (Ctrl + 按一下滑鼠左鍵)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "排除 (-) (按一下滑鼠右鍵)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "互斥或(Xor) (Ctrl +按一下滑鼠右鍵 )" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "相交 (Shift +按一下滑鼠左鍵)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " 選取模式: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "一般" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "相乘" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "附加" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "顏色加深" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "顏色減淡" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "反射" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "美白效果" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "覆蓋" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "差值" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "否定" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "變亮" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "變暗" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "螢幕" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "互斥或(Xor)" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "水平翻轉圖層" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "垂直翻轉圖層" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "縮放圖片" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 圖片 ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "渲染效果" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "沒有選定的工具。" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "未儲存的圖片{0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "背景" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "新增圖片" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "開啟圖片" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "拒絕許可" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "不能開啟檔案:{0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "自動調整色階" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "去除色彩" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "亮度/對比" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "亮度" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "對比" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "曲線" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "色相 / 飽和度" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "反轉顏色和亮度" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "色階" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "色調分離" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "復古褐色" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "色階調整" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "紅色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "綠色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "藍色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "連鎖變更" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "加入雜訊" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "雜訊" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "強度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "飽和度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "覆蓋率" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "凸起" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "扭曲" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "總量" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "偏移" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "雲" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "渲染" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "伸縮" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "強度" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "種子" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "邊緣偵測" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "風格化" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "角度" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "浮雕" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "碎片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "模糊" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "碎片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "距離" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "旋轉" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "磨砂玻璃" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "高斯模糊" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "半徑" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "照片" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "水墨素描" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "藝術效果" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "輪廓的油墨量" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "染色" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "茱莉亞不規則碎片形" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "因素" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "品質" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "縮放" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "曼德勃羅不規則碎片形" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "中間值" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "百分位數值" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "動感模糊" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "居中" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "油畫" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "筆刷尺寸" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "粗糙度" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "邊框" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "厚度" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "鉛筆素描" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "鉛筆頭大小" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "顏色範圍" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "像素化" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "格子大小" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "極性反轉" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "放射狀模糊" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "使用低質量預覽小圖像,小角度。使用高品質的最終質量,大圖片和大角度。" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "去除紅眼" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "容許偏差量" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "提示:要獲得最佳效果,首先使用選取工具選取每隻眼睛。" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "減少雜訊" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "強度" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "醒目效果" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "銳利化" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "柔化處理" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "柔和" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "照明" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "溫暖" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "瓷磚效果" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "磁磚大小" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "扭曲" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "反鋸齒" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "失去聚焦" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "透明" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "中心偏移" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "變焦模糊" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "轉換圖" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "亮度" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "紅色 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "藍色 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "重設" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "提示:按右鍵以刪除控制點。" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "輸入直方圖" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "輸入" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "輸出" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "輸出直方圖" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "選擇主要顏色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "選擇次要顏色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "選擇調色盤顏色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "按一下以切換主要和次要之間的顏色。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "按一下以重設主要和次要的顏色。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "按一下以選取主要顏色。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "按一下以選取次要顏色。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "按一下滑鼠左鍵設定主要顏色。按一下滑鼠右鍵設定次要顏色。按一下中間鍵選擇調色盤的顏色。" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "圖層顯示" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "圖層隱藏" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "圓圈" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "網格" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "噴灑" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "方塊" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "箭頭" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "大小" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "縮小箭頭" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "增大箭頭" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "長度" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "筆刷寬度" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "減小筆刷大小" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "增大筆刷" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "填充形式" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "邊框" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "填充" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "填充和邊框" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "形狀類型" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "橢圓形" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "已變更形狀類型" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "已刪除點" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "已刪除" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "已新增點" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "已新增" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "已修改" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "橡皮圖章" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "按著左邊的 \"ctrl鍵\",然後用滑鼠點選要複製像素的中心點!然後放開鍵盤,按滑鼠左鍵當筆刷塗抹。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "顏色拾取器" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "按滑鼠左鍵設置主要顏色,按滑鼠右鍵設置次要顏色。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "取樣" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "單個像素" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3×3 區域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5×5 區域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7×7 區域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9×9 區域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "圖片" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "選色之後" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "不要切換工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "切換到上一個工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "切換到鉛筆工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "鉛筆" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "橢圓形選取工具" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "橡皮擦" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "按滑鼠左鍵擦拭變成透明,按滑鼠右鍵擦拭變成次要顏色。 " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "泛濫模式" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "相似顏色的連續區域" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "整個選取區域" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "自由形態形狀" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "畫圖時,按滑鼠左鍵畫出來的顏色是主要顏色,按滑鼠右鍵畫出來的顏色是次要顏色。" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "漸層" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "按住滑鼠左鍵並拖動畫出從主要顏色到次要顏色的漸層顏色,按住滑鼠右鍵則相反。" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "線性漸變填充" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "雙線性漸變填充" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "鑽石形漸變填充" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "放射漸變填充" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "圓錐形漸變填充" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "自由選取工具" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "按住滑鼠並拖動畫出選取區域的邊框" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "魔術棒選取工具" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "點擊以選取一相同顏色的區域。" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "移動選取區域" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "畫筆" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "類型" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "油漆桶" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "平移" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "按住滑鼠並拖動以瀏覽圖片" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "重新著色" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "矩形選取工具" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "矩形" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "圓角矩形" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "文字" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "點擊滑鼠左鍵,輸入想要的文字。(文字顏色是主要顏色!)" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "字型" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "粗體" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "斜體" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "底線" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "置左" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "置中" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "置右" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "文字樣式" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "一般及邊框" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "填充背景" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "邊框寬度" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "減小邊框大小" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "增大邊框大小" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "按滑鼠左鍵以放大,按滑鼠右鍵以縮小。另外,可以用滑鼠左鍵選取一個區域來放大。" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "調整調色盤大小" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "新調色盤大小:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "在關閉之前,儲存變更到圖片檔 \"{0}\" 中?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "如果不儲存,所有的變更將會永久地遺失。" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "關閉但不儲存(_W)" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "拍下螢幕擷圖" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "在多少秒後,拍下螢幕擷圖:" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "圖片檔案" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "儲存圖片檔" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta 不支援儲存這個檔案格式的圖片" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "無法儲存唯讀檔的變更。" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "影像太大" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "圖示檔不能大於255×255像素。" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "檔名 \"{0}\" 已經存在。 你想取代它嗎?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "檔案已經存在於 \"{1}\"。取代它會覆蓋其內容。" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "圖層不透明度" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "更改圖層名稱" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "隱藏圖層" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "顯示圖層" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "圖層屬性" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "旋轉/縮放圖層" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta 社群附加元件 - 特定平台" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta 社群附加元件 - 跨平台" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "此版本貢獻者:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "先前貢獻者:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Eddie https://launchpad.net/~zx4636313\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Walter Cheuk https://launchpad.net/~wwycheuk\n" " taijuin lee https://launchpad.net/~taijuin" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "翻譯者:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "基於Paint.NET專案:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "由此取用一些圖示:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "基於 Mono 技術:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "關於 Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "版本信息" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "版本" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "授權許可" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "以 MIT X11 許可證發行" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "版權所有" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "屬於開發Pinta程式的貢獻者" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "細節" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 品質" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "品質: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "名稱:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "顯示的" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "混合模式" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "不透明度:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "剪貼簿" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "自訂" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "預先設置:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "寬度:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "像素" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "高度:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "方向:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "直向" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "橫向" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "背景:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "白色" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "背景色彩" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "標題" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "路徑" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "隱藏" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "停駐式" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "浮動式" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "自動隱藏" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "保持長寬比" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "定位點:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "顯示本訊息並結束。" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "顯示應用程式版本。" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "用於渲染的線程數" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "用法:pinta [檔案]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "選項: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "檔案(_F)" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "編輯(_E)" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "檢視(_V)" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "圖片(_I)" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "圖層(_L)" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "調整(_A)" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "效果(_C)" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "增益集(_D)" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "視窗(_W)" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "工具視窗" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "說明(_H)" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "選項名稱" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "畫布" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "步驟記錄" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "圖層" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "影像" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "工具" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "邊緣行為" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "多重選擇:\n" "\n" #: 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 "要求:{0} v{1},找到 v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "缺少:{0} v{1}" #: 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] "{0} 個可用更新" #: 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 "發生異常:{0}" #: 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 "解除安裝(_U)..." #: 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.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 "(由 {0} 提供)" pinta-1.6/po/en_AU.po0000664000175000017500000020336412474707515015620 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-25 14:53+0000\n" "Last-Translator: Jared Norris \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Easily create and edit images" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Image Editor" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Add-in Manager" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Undo" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Redo" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cut" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copy" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copy Merged" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Paste" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Delete Selection" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fill Selection" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invert Selection" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Select All" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deselect All" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Open..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Save As..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reset to Default" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Set Number of Colours" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palette" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Erase Selection" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deselect" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Open Palette File" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "All files" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Save Palette File" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "About" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Resize Image..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Flip Horizontal" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Flip Vertical" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Counter-Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotate 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Flatten" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Add New Layer" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Delete Layer" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Import from File..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Move Layer Up" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Move Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Layer Properties..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Open Image File" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Import From File" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom In" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom Out" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Best Fit" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal Size" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Toolbar" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixel Grid" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Rulers" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inches" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetres" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fullscreen" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Window" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Ruler Units" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Tool" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Shortcut key" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal Blending" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overwrite" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiasing On" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Layer" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copy" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Resize Canvas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expand canvas" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Replace" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Union (+) (Ctrl + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclude (-) (Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersect (Shift + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Selection Mode: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiply" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additive" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Colour Burn" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Colour Dodge" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflect" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glow" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Overlay" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Difference" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negation" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Lighten" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Darken" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Screen" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Resize Image" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Rendering Effect" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "No tool selected." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Background" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "New Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Unsupported file format" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Open Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permission denied" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto Level" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Black and White" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brightness" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curves" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Hue" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Lightness" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invert Colours" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Levels" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterise" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Red" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Green" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blue" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Linked" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Add Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensity" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Colour Saturation" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Coverage" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bulge" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distort" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Amount" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Offset" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Clouds" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Render" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scale" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Power" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Seed" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Edge Detect" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylize" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Emboss" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Blurs" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distance" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frosted Glass" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Photo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Ink Sketch" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Ink Outline" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colouring" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia Fractal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Quality" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentile" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Motion Blur" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centered" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oil Painting" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Brush Size" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Coarseness" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Outline" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Thickness" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Colour Range" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelate" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cell Size" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polar Inversion" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radial Blur" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Red Eye Removal" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Saturation Percentage" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduce Noise" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Strength" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Sharpen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Soften Portrait" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Softness" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Lighting" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Warmth" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tile Reflection" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tile Size" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Twist" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Unfocus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Clamp" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Wrap" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primary" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secondary" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparent" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Center Offset" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom Blur" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transfer Map" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosity" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Red " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blue " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Reset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Input Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Output Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Choose Primary Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Choose Secondary Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Choose Palette Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Click to switch between primary and secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Click to reset primary and secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Click to select primary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Click to select secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Left click to set primary colour. Right click to set secondary colour. " "Middle click to choose palette colour." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Layer Shown" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Layer Hidden" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Circles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grid" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Splatter" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Squares" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Dash" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Arrow" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Decrease arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Increase arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Decrease angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Increase angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Length" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Decrease length offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Increase length offset" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Brush width" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Decrease brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Increase brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fill Style" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fill Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Open Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Closed Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Rounded Line Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Changed Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Point Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Point Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modified" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalised" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Open Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Closed Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Rounded Line Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Decrease shape's corner radius" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Increase shape's corner radius" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Clone Stamp" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Colour Picker" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Sampling" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Single Pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Image" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "After select" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Do not switch tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pencil" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipse Select" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Left click to draw a shape with the primary colour.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalise the shape." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Eraser" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Flood Mode" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contiguous" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Freeform Shape" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linear Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Conical Gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasso Select" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Line/Curve" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Click to select region of similar colour." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Paintbrush" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolor" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Left click to replace the secondary colour with the primary colour. Right " "click to reverse." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rectangle Select" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalise" #: ../Pinta.Tools/Tools/TextTool.cs:101 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 " "colour." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Bold" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Italic" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Underline" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Left Align" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Center Align" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Right Align" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Text Style" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal and Outline" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fill Background" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Outline width" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Decrease outline size" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Increase outline size" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Resize Palette" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "New palette size:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Close _without saving" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Take Screenshot" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Image files" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Save Image File" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Image too large" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 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/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Layer Opacity" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Rename Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Hide Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Show Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Layer Properties" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta Community Addins - Platform-Specific" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta Community Addins - Cross-Platform" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contributors to this release:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Previous contributors:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Anthony Harrington https://launchpad.net/~untaintableangel\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jackson Doak https://launchpad.net/~noskcaj\n" " Jared Norris https://launchpad.net/~jarednorris\n" " Rafael Neri https://launchpad.net/~rafepel" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Translated by:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Using some icons from:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Powered by Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "About Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Version Info" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "License" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 License." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Report Bug...." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Quality: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Name:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blend Mode" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacity:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Clipboard" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Custom" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Preset:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Width:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Height:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientation:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Portrait" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Landscape" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Background:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "White" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Background Colour" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Hide" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Auto Hide" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Show this message and exit." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Display the application version." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Usage: pinta [files]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Options: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edit" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_View" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Image" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Layers" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Adjustments" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effe_cts" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "A_dd-ins" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Window" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Tool Windows" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Help" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Canvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "History" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Layers" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Images" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Tools" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Edge Behavior" #: 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.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 online 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.6/po/pt.po0000664000175000017500000020423612474707515015253 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:03+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "X-Poedit-Country: PORTUGAL\n" "X-Poedit-Language: Portuguese\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Criar e editar imagens com facilidade" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor de imagens" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Editor de imagens Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gestor de extras" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desfazer" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refazer" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cortar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copiar união" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Colar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Colar numa nova camada" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Colar numa nova imagem" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Eliminar seleção" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Preencher seleção" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverter seleção" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Selecionar tudo" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Desmarcar tudo" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Abrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Gravar como..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Repor predefinições" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Definir número de cores" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Apagar seleção" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Desmarcar" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Abrir ficheiro de paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Ficheiros paleta (*.txt,*.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Todos os ficheiros" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Erro" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Gravar ficheiro de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Acerca de" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Redimensionar imagem..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionar tela..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Inverter horizontalmente" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Inverter verticalmente" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rodar 90° à direita" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rodar 90° à esquerda" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rodar 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Alisar" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Adicionar nova camada" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Eliminar camada" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicar camada" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Unir a camada inferior" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importar do ficheiro..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rodar/Ampliar camada..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Mover camada para cima" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Mover camada para baixo" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propriedades da camada..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Abrir imagem" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importar do ficheiro" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Ampliar" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Reduzir" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Melhor ajuste" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Ajustar à seleção" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra de ferramentas" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grelha de pixeis" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Réguas" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Polegadas" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centímetros" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Ecrã completo" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Janela" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unidades da régua" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Ferramenta" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Tecla de atalho" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Mistura normal" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Substituir" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Ativar suavização de letras" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Desativar suavização de letras" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Camada" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copiar" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionar tela" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Mover pixeis selecionados" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Imagem maior do que a tela" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expandir tela" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Não alterar o tamanho da tela" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "A imagem não pode ser colada" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "A área de transferência não tem imagens." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Substituir" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "União (+) (Ctrl + Botão esquerdo do rato)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclusão (-) (Botão direito do rato)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Botão direito do rato)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Interseção (Shift + Botão esquerdo do rato)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modo de seleção: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicar" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Aditivo" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Sobrexposição de cor" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Subexposição de cor" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Refletir" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Brilho" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sobreposição" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferença" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negativo" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Clarear" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Escurecer" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Ecrã" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar pixeis" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensionar imagem" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagem ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efeito de processamento" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nenhuma ferramenta selecionada." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagem não gravada {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fundo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova imagem" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Abrir imagem" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permissão negada" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossível abrir o ficheiro: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Níveis automáticos" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Preto e branco" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brilho/Contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brilho" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curvas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Matiz/Saturação" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverter cores" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Níveis" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Aplicar gradação" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sépia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajuste de níveis" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Vermelho" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Azul" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Vinculado" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Adicionar ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensidade" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturação da cor" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cobertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Convexa" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorcer" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Quantidade" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Desvio" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nuvens" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Processar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Energia" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Semente" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Deteção de contornos" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizar" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ângulo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Gravar em relevo" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmento" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Manchas" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmentos" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distância" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotação" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Vidro fosco" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Mancha Gaussiana" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Raio" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografia" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Esboço a tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artístico" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contorno de tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "A colorir" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Fator" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualidade" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Ampliação" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Mancha de movimento" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrado" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintura a óleo" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Tamanho do pincel" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Rugosidade" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorno" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Espessura" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Esboço a lápis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Tamanho da ponta do lápis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Intervalo de cor" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelizar" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Tamanho da célula" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversão polar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Mancha radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Remoção de olhos vermelhos" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerância" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Dica: para melhores resultados, utilize as ferramentas de seleção para " "escolher cada olho." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduzir ruído" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Intensidade" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relevo" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Precisão" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Retrato suavizado" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Suavidade" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Iluminação" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Calor" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Reflexo ladrilhado" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tamanho do ladrilho" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Torção" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Suavizar" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desfocar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centrar rebordo" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Mancha ampliada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa de transferência" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosidade" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Vermelho " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Azul " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Repor" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Dica: botão direito do rato para remover pontos de controle." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histograma do original" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Original" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Destino" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histograma do destino" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automático" #: ../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:106 msgid "Choose Primary Color" msgstr "Escolha a cor primária" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Escolha a cor secundária" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Escolha a cor da paleta" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Clique para trocar entre a cor primária e a secundária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Clique para reiniciar a cor primária e secundária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Clique para escolher a cor primária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Clique para escolher a cor secundária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Botão esquerdo do rato para definir a cor primária. Botão direito para " "definir a cor secundária. Clique na roda para escolher a cor." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Mostrar camada" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Ocultar camada" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Círculos" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grelha" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Salpico" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Quadrados" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Painel" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Seta" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Tamanho" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Reduzir tamanho da seta" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Aumentar tamanho da seta" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Reduzir desvio do ângulo" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Aumentar desvio do ângulo" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Comprimento" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Reduzir desvio do comprimento" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Aumentar desvio do comprimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Largura do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Diminuir tamanho do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Aumentar tamanho do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Estilo de preenchimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Formato do contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Formato do preenchimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Formato do contorno e preenchimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Clonar selo" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Seletor de cores" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Amostra" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Um píxel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Área 3x3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Área 5x5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Área 7x7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Área 9x9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imagem" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Após selecionar" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Não trocar ferramenta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Trocar para a ferramenta anterior" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Trocar para ferramenta Lápis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Lápis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Seleção elíptica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Clique e arraste para desenhar uma seleção elíptica. Prima Shift para " "reduzir a um círculo." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Borracha" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Botão esquerdo do rato para apagar a transparência, botão direito para " "apagar a cor secundária. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Modo de inundação" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Adjacente" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma livre" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Botão esquerdo do rato para desenhar com a cor principal, botão direito para " "desenhar com a cor secundária." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradiente" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Clique e arraste para aplicar o gradiente da cor primária para a secundária. " "Botão direito para inverter." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradiente linear" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradiente linear refletido" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradiente linear diamante" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradiente radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradiente cónico" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Seleção Lasso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Seleção varinha mágica" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Clique para escolher uma área de cor similar." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Com o botão esquerdo do rato arraste a seleção para mover o conteúdo. Botão " "direito e arraste a seleção para rodar o conteúdo." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover seleção" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Com o botão esquerdo do rato arraste para mover o contorno. Botão direito e " "arraste a seleção para rodar o contorno." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pincel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Balde de tinta" #: ../Pinta.Tools/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 primária, botão direito para " "preencher com a cor secundária." #: ../Pinta.Tools/Tools/PanTool.cs:37 msgid "Pan" msgstr "Mover a vista" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Clique e arraste para navegar na imagem." #: ../Pinta.Tools/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 desenhar livremente linhas de 1 pixel de largura " "com a cor primária. Botão direito para usar a cor secundária." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Colorir novamente" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Seleção retangular" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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 " "reduzir a um quadrado." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Retângulo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Retângulo arredondado" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Texto" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Texto - Finalizar" #: ../Pinta.Tools/Tools/TextTool.cs:101 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 primária." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Tipo de letra" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Negrito" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Itálico" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Sublinhado" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Alinhar à esquerda" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Alinhar ao centro" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Alinhar à direita" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estilo do texto" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal e contorno" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Preencher fundo" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Largura do contorno" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Diminuir contorno" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Aumentar contorno" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ajustar paleta" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Novo tamanho da paleta:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gravar alterações feitas em \"{0}\" antes de fechar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Tirar uma captura de ecrã" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes da captura do ecrã (segundos):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Imagens" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Gravar imagem" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "O Pinta não suporta a gravação de imagens neste formato." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Não pode gravar um ficheiro de leitura." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Imagem muito grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Os ficheiros ICO não podem ser maiores do que 255x255 pixeis." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacidade da camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renomear camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ocultar camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Mostrar camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propriedades da camada" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rodar/Ampliar camada" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contributos nesta versão:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Contributos anteriores:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Pedro Albuquerque https://launchpad.net/~palbuquerque73\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-deactivatedaccount" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Traduzido por:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Inspirado no Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Utiliza alguns ícones de:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Desenvolvido em Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Sobre o Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informações da versão" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versão" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licença" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Disponibilizado nos termos da licença MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Direitos de autor" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "pelos contribuidores Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualidade JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualidade: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nome:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visível" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modo de mistura" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacidade:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Largura:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pontos" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altura:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Caminho" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ocultar" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoplável" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flutuante" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Acoplar" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "número de processos a utilizar no processamento" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Ficheiro" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editar" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Ver" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imagem" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Camadas" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Ajustes" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efeito_s" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "E_xtras" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Janela" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Janelas de ferramentas" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "A_juda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "NomeDaOpção" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Tela" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Histórico" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Camadas" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imagens" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Ferramentas" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportamento nos limites" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Seleção múltipla:\n" "\n" #: 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 "Sem seleção" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "No repositório:" #: 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 "Este extra não foi carregado devido a erros com dependências" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Requer: {0} v{1}, encontrado v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Falta: {0} v{1}" #: 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 "Versão no repositório" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Tamanho da transferência" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "As seguintes dependências deste extra não estão disponíveis:" #: 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 extras não foram encontrados" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Falha ao instalar" #: 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 "Instalada" #: 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 "Gerir repositórios..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "Disponível {0} atualização" msgstr[1] "Disponíveis {0} atualizações" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Atualizar repositório" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalar pacote" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pacotes de extras" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nenhum extra encontrado" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Extra" #: 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 pacotes seguintes serão removidos:" #: 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 "" "Existem outros extras mas que dependem de outros que foram desinstalados:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Os extras selecionados não podem ser instalados pois originam conflitos." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Os pacotes seguintes serão instalados:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (na pasta do utilizador)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Os pacotes seguintes têm de ser removidos:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Não foi possível resolver estas dependências:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Tem a certeza de que pretende cancelar a instalação?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "A instalar extras" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Falha ao instalar!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "A instalação terminou com avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "A remover extras" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Falha ao remover!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "A remoção terminou com avisos." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "A registar repositórios" #: 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 seguintes extras serão instalados:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Não existem atualizações" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Refrescar" #: 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 "Do ficheiro..." #: 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 "Gestão de repositórios de extras" #: 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 a registar:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registar um repositório na rede" #: 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 "Registar um repositório local" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Caminho:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Explorar..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Evolução" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(fornecido por {0})" pinta-1.6/po/lt.po0000664000175000017500000016607412474707515015256 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertuoti pažymėjimą" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Pasirinkti viską" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Atžymėti viską" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Atstatyti į numatytąjį" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Nustatyti spalvų skaičių" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paletė" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Panaikinti žymėjimą" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Atidaryti paletės failą" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletės dailai (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Išsaugoti paletės failą" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paletė (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paletė (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "" #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Apie" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Įrankis" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Sluoksnis" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopijuoti" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Išplėsti darbinę drobę" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Nekeisti darbinės drobės dydžio" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Švytėjimas" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Keisti paveikslėlio dydį" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Naujas paveikslėlis" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Juoda ir balta" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Šviesumas/ Kontrastas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Šviesumas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kreivės" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertuoti spalvas" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Lygiai" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepija" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Lygių koregavimas" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Raudona" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Žalia" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Mėlyna" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Sujungtas" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Pridėti triukšmo" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Triukšmas" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensyvumas" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bumbulas" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Iškraipymas" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Kiekis" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Poslinkis" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Debesys" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Generuoti" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Mastelis" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Krašto suradimas" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizuoti" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kampas" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Reljefinis ornamentas" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmentas" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Suliejimas" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Posūkis" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Matinis stiklas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gauso suliejimas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Nuotrauka" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Rašalo eskizas" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Meninis" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julijos fraktalas" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kokybė" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbroto fraktalas" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Procentai" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Suliejimas judesiu" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centruotas" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Tapyba aliejiniais dažais" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Teptuko dydis" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kontūras" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Storis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Pieštukinis eskizas" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Vaizdo taškinimas" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Šaltoji inversija" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radialinis suliejimas" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Raudonų akių pašalinimas" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toletantiškumas" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Sumažinti triukšmą" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Stiprumas" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reljefas" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Paryškinti" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Švelnesnis portretas" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Švelnumas" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Apšvietimas" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Plytelių refleksija" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Susukimas" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Glotninimas" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Nefokusuoti" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Priartinimo suliejimas" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Perduoti žemėlapį" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Šviesumas" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Raudona " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Mėlyna " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Atstatyti" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 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/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Įvesties histograma" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Įvestis" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Išvestis" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Išvesties histograma" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatinis" #: ../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:106 msgid "Choose Primary Color" msgstr "Pasirinkti pirmines spalvas" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Pasirinkti antrines spalvas" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Pasirinkti paletės spalvas" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kopijuoti pažymėtą" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Spalvų pipetė" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Po pasirinkimo" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Neperjungti įrankio" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Perjungti į ankstenį įrankį" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pieštukas" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elipsinis pažymėjimas" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Trintukas" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Užpilimo režimas" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Vientisas" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globalus" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradientas" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Tiesinis perėjimas (gradientas)" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Tiesinis atspindėtas perėjimas (gradientas)" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Tiesinis rombo formos perėjimas (gradientas)" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radialinis perėjimas (gradientas)" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magiškos lazdelės parinktis" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Spustelėkite kad pasirinkti tos pačios spalvos regioną" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Perkelti pažymėjimą" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Teptukas" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipas" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Stačiakampis pažymėjimas" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Stačiakampis" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Stačiakampis apvaliais kampais" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Neišsaugojus, visi pakeitimai bus negrįžtamai prarasti." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Negalima išsaugoti failo atidaryto peržiūros režimu." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Sluoksnio permatomumas" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Pervadinti sluoksnį" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Paslėpti sluoksnį" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Rodyti sluoksnį" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Sluoksnio savybės" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Vertėjai:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Dalis ikonų naudojama iš:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Apie Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Laidos informacija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licencija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autorinės teisės" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Pavadinimas:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Matomas" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Permatomumas:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Plotis:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "tašk." #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Aukštis:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Pavadinimas" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Kelias" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Slėpti" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plaukiojantis" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatinis slėpimas" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Failas" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Keisti" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Rodymas" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Paveikslėlis" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Sluoksniai" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Efektai" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Langas" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Pagalba" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Istorija" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Sluoksniai" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Įrankiai" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/messages.in0000664000175000017500000001726312474706675016437 0ustar00cameroncameron00000000000000#: Polar Inversion dialog msgid "Edge Behavior" 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.6/po/pt_BR.po0000664000175000017500000020600512474707515015632 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:02+0000\n" "Last-Translator: Cameron White \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gerenciador de suplementos" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desfazer" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Repetir" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Recortar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copiar mesclado" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Colar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Colar em Nova Camada" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Colar em Nova Imagem" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Apagar Seleção" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Preencher Seleção" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverter Seleção" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Selecionar tudo" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Desmarcar Todos" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Abrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Salvar Como..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Retornar ao padrão" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Definir número de cores" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Apagar Seleção" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Desmarcar" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Abrir arquivo de paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Arquivo de paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Todos os arquivos" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Erro" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Salvar arquivo de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Sobre" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Redimensionar Imagem..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionar Tela..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Inverter na Horizontal" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Inverter na Vertical" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Girar 90° Sentido Horário" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Girar 90° Sentido Anti-horário" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Girar 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Achatar" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Adicionar Nova Camada" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Remover Camada" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicar Camada" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Unir a camada inferior" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importar do arquivo..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotacionar / Camada de Ampliação..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Mover camada para cima" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Mover camada para baixo" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propiedades da Camada..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Abrir Arquivo de Imagem" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importar de Um Arquivo" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Aproximar" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Afastar" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Melhor Ajuste" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Ampliar para Seleção" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Tamanho Normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra de ferramentas" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grade de Pontos" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Réguas" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pontos" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Polegadas" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centímetros" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Tela cheia" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Janela" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unidades de medida" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Ferramenta" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Tecla de atalho" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Misturando Norma" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Sobrescrever" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Suavização ligada" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Suavização desligada" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Camada" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copiar" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionar Tela" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Mover pontos selecionados" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Imagem maior que a tela" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expandir tela" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Não altere o tamanho da tela" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Imagem não pôde ser colada" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "A área de transferência não possui uma imagem." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Substituir" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unir (+) (Ctrl + Clique Esquerdo)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Excluir (-) (Clique Direito)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Clique Direito)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Dividir (Shift + Clique Esquerdo)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modo de Seleção: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicar" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Aditivo" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Cor queimada" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Subexposição de cor" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflexão" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Fluorescência" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sobreposição" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferença" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negação" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Clarear" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Escurecer" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Tela" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalizar Pontos" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Mudar tamanho da imagem" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagem ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efeito de Renderização" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nenhuma ferramenta selecionada." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagem não salva {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Plano de fundo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova Imagem" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Abrir Imagem" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permissão negada" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Não foi possível abrir o arquivo: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Níveis automáticos" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Preto e branco" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brilho / Contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brilho" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curvas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Matiz / Saturação" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverter cores" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Níveis" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizar" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sépia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajuste de níveis" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Vermelho" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Azul" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Conectado" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Adicionar Ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Ruído" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensidade" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturação da Cor" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cobertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Inchar" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorcer" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Quantidade" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Deslocamento" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nuvens" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderizar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Ligar/Desligar" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Raiz" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detecção de borda" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizar" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ângulo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Realçar" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmento" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Borrar" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmentos" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distância" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotação" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Vidro Fosco" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Borrão gaussiano" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Raio" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Desenho a tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artístico" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contorno de Tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colorindo" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Fator" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualidade" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Ampliar" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediano" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Borrar por Movimento" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centralizado" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintura a Óleo" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Tamanho do Pincel" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Aspereza" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorno" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Espessura" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Desenho a Lápis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Tamanho da ponta do lápis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Intervalo de Cor" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pincelada" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Tamanho da Célula" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversão Polar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Borrão radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Remoção de Olhos Vermelhos" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerância" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduzir ruído" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Concentração" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relevo" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Nitidez" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Retrato Suavizado" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Suavidade" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Iluminação" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Vivacidade" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Reflexo de azulejo" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tamanho Mosaico" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Torcer" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Suavizar" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desfocar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centralizar Deslocamento" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Borrão por ampliação" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa de transferência" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosidade" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Vermelho " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Azul " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Restaurar" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Dica: Dê um clique direito para remover os pontos de controle." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histograma de entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Saída" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histograma de saída" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automático" #: ../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:106 msgid "Choose Primary Color" msgstr "Escolha a cor primária" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Escolha a cor secundária" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Escolha o padrão de cores" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Clique para alternar entre cor primária e secundária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Clique para redefinir a cor primária e secundária" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Clique para selecionar a cor primária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Clique para selecionar a cor secundária." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Clique com o botão esquerdo do mouse para definir a cor primária, com o " "botão direito para definir a cor secundária e com o botão do meio para " "escolher a paleta de cores." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Camada visível" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Camada oculta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Círculos" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grade" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Espátula" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Quadrados" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Largura do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Diminuir tamanho do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Aumentar tamanho do pincel" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Preencha o Estilo" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Formato do contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Formato do preenchimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Formato do contorno e preenchimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Ferramenta Carimbo" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Seletor de cores" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Amostragem" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Único pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Região 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Região 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Região 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Região 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imagem" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Pós-seleção" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Não trocar de ferramenta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Trocar para ferramenta anterior" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Trocar para ferramenta Lápis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Lápis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Seleção Elíptica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Clique e arraste para desenhar uma seleção elíptica. Mantenha a tecla Shift " "para restringir a um círculo." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Borracha" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mode transbordo" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contíguo" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma livre" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradiente" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradiente Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradiente Linear Refletido" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradiente Linear Diamante" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradiente Radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradiente Cônico" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Seletor Laço" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Varinha Mágica de Seleção" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Clique para selecionar a região de cor similar." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Clique com o botão esquerdo arraste a seleção para mover o conteúdo " "selecionado. Clique com o botão direito e arraste a seleção para rodar " "conteúdo selecionado." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mover Seleção" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Clique com o botão esquerdo e arraste a seleção para mover contorno de " "seleção. Clique com o botão direito e arraste a seleção para girar contorno " "de seleção." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pincel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Balde de Tinta" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Posicionar" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Clique e arraste para navegar na imagem." #: ../Pinta.Tools/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 com o botão esquerdo do mouse para desenhar com linhas de um pixel de " "largura de forma livre, com a cor primária. Botão direito do mouse para usar " "a cor secundária." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolorir" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Seleção Retangular" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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. Mantenha a tecla " "Shift para restringir a um quadrado." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Retângulo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Retângulo Arredondado" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Texto" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Texto – Finalizar" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Fonte" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Negrito" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Itálico" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Sublinhado" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Alinhar à esquerda" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Alinhar Centralizado" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Alinhar à direita" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estilo do Texto" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal e Contorno" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Preencher Fundo" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Largura do contorno" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Diminuir o tamanho do contorno" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Aumentar o tamanho do contorno" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ajustar tamanho do pálete" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Novo tamanho do pálete" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Salvar mudanças na imagem \"{0}\" antes de fechar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Capturar imagem da tela" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Atraso antes de capturar a imagem da tela (segundos):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Arquivos de Imagem" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Salvar Arquivo de Imagem" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta não tem suporte para salvar a imagem neste formato." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Não é possível salvar, apenas ler o arquivo." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Imagem muito grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Arquivos ICO não podem ser maiores que 255 x 255 pixels." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacidade da Camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renomear Camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ocultar Camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Exibir Camada" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propriedades da Camada" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotacionar / Camada de Ampliação" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contribuíram para esta versão:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Contribuintes anteriores:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\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" " 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" " Kristian Gomes https://launchpad.net/~kristiang\n" " Luiz Fernando Palacios https://launchpad.net/~sapo-mano\n" " Neliton Pereira Jr. https://launchpad.net/~nelitonpjr\n" " Paulo N. Júnior https://launchpad.net/~naves-junior\n" " Rafael Neri https://launchpad.net/~rafepel\n" " Victor Westmann https://launchpad.net/~victor.westmann\n" " Vitor da Silva Gonçalves https://launchpad.net/~vitorsgoncalves" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Traduzido por:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Inspirado no trabalho do Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Usando alguns ícones de:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Funciona com Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Sobre o Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informações da versão" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versão" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licença" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Publicado sob a licença MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Direitos autorais" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "pelos colaboradores Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualidade do JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualidade: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nome:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visível" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modo Misturar" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacidade:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Largura:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altura:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Título" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Caminho" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ocultar" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Encaixável" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flutuante" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Ocultar automaticamente" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Acoplar" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "Número de processos usados para renderizar" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Arquivo" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editar" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Exibir" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imagem" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Camadas" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Ajustes" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efeito_s" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "A_dd-ins" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Janela" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Janela de Ferramentas" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Ajuda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nome da Opção" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Canvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Histórico" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Camadas" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imagens" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Ferramentas" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportamento nas Bordas" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Seleção múltipla:\n" "\n" #: 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 "Disponível no repositório:" #: 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 "" "Este suplemento não pôde ser carregado devido a dependências que estão " "faltando" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Necessário: {0} v{1}, encontrado v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Faltando: {0} v{1}" #: 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 "Versão do repositório" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Tamanho a baixar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "As seguintes dependências necessárias não estão disponíveis para este " "suplemento:" #: 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 "Atualizando repositório" #: 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 "" "Existem outros suplementos que dependem dos anteriores que também será " "desinstalado:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "O suplemento selecionado não pôde ser instalado porque há conflitos de " "dependência." #: 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 "Instalando suplemento" #: 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 "Desinstalando suplemento" #: 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 "Registrando repositório" #: 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 "Nenhuma atualização encontrada" #: 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.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 "Registrar um repositório on-line" #: 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 um repositório local" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Localização:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Navegar..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Progresso" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(fornecido por {0})" pinta-1.6/po/fi.po0000664000175000017500000020420312474707515015220 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-26 14:09+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Luo ja muokkaa kuvia vaivatta" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Kuvankäsittely" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta-kuvankäsittely" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Lisäosien hallinta" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Kumoa" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Tee uudelleen" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Leikkaa" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopioi" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopioi yhdistettynä" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Liitä" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Liitä uuteen tasoon" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Liitä uuteen kuvaan" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Poista valinta" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Täytä valinta" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Käännä valinta" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Valitse kaikki" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Poista valinnat" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Avaa..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Tallenna nimellä..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Palauta oletus" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Aseta värien määrä" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paletti" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Poista valinta" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Poista valinta" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Avaa palettitiedosto" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettitiedostot (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Kaikki tiedostot" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Virhe" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Tallenna palettitiedosto" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-paletti (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP-paletti (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Tietoja" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Rajaa valintaan" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automaattinen rajaus" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Muuta kokoa..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Pohjan koko..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Käännä vaakatasossa" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Käännä pystytasossa" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Pyöritä 90° myötäpäivään" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Pyöritä 90° vastapäivään" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Pyöritä 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Yhdistä tasot" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Uusi taso" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Poista taso" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Monista taso" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Yhdistä taso alas" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Tuo tiedostosta..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Käännä / lähennä tasoa..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Siirrä tasoa ylös" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Siirrä tasoa alas" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Tason ominaisuudet..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Avaa kuvatiedosto" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Tuo tiedostosta" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Suurenna" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Pienennä" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Paras koko" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Tarkenna valintaan" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normaali koko" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Työkalupalkki" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pikseliristikko" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Viivoitin" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikseliä" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tuumaa" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Senttimetriä" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Koko näyttö" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Ikkuna" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Mitta-asteikko" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Työkalu" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Pikanäppäin" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normaali sekoitus" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Ylikirjoitus" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Reunojen pehmennys päällä" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Reunojen pehmennys pois päältä" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Taso" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopioi" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Pohjan koko" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Siirrä valittuja pikseleitä" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Kuva on suurempi kuin pohja" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Laajenna pohjaa" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Pidä pohjan koko" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Kuvaa ei voi liittää" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Leikepöytä ei sisällä kuvaa." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Korvaa" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Yhdiste (+) (Ctrl + Vasen hiiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Vähennä (-) (Ctrl + Oikea hiiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Oikea hiiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Leikkaus (Shift + Vasen hiiri)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Valintatila: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normaali" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Kerro" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Lisäävä" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Varjostus" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Valotus" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Heijastettu" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Hehku" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sulauttava" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Erottava" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negatiivi" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Kevennä" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Tummenna" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Näyttö" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Viimeistele pikselit" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Muuta kokoa" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} kuva ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Renderointi" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Työkalua ei ole valittu." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Tallentamaton kuva {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Tausta" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Uusi kuva" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Tiedostomuotoa ei tueta" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Avaa kuva" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Lupa evätty" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Tiedostoa ei voitu avata: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automaattinen taso" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Mustavalkoinen" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Kirkkaus / Kontrasti" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Kirkkaus" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrasti" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Käyrät" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Sävy / Värikylläisyys" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Sävy" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Kylläisyys" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Vaaleus" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Käännä värit" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Sävyala" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Porrasta" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Seepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Sävyjen säädöt" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Punainen" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Vihreä" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Sininen" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Kytketty" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Lisää kohinaa" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Kohina" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Voimakkuus" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Värikylläisyys" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Kattavuus" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Pullistuma" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Vääristä" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Määrä" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Siirtymä" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Pilviä" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderointi" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skaala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Voima" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Siemen" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Reunan tunnistus" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Tyyli" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kulma" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Korkokuva" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Pirstaloi" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Sumennus" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Pirstaleet" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Etäisyys" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Kierto" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Jäätynyt lasi" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gauss-sumennus" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Säde" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Valokuva" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Musteluonnos" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistinen" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Mustereunus" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Väritys" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julian joukko" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Kerroin" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Laatu" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoomaus" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrotin joukko" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediaani" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Prosenttipiste" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Liike-epäterävyys" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Keskitetty" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Öljymaalaus" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Siveltimen koko" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Karheus" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Ääriviiva" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Paksuus" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Kynäluonnos" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Kynän kärjen koko" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Värialue" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselöi" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Solun koko" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Käänteismuunnos" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Säteittäinen sumennus" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Punasilmän poistaja" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toleranssi" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Kylläisyysprosentti" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Vähennä kohinaa" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Voimakkuus" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reliefi" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Terävöitä" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Pehmennä" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Pehmeys" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Valaistus" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Lämpö" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tiiliheijastus" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tiilin koko" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Kierre" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Reunanpehmennys" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Epäkohdistus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Ensisijainen" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Toissijainen" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Läpinäkyvä" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Alkuperäinen" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Keskusta" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom-sumennus" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Siirtokartta" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Värin kirkkaus" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Punainen " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Sininen " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Palauta" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Vihje: Napsauta oikealla napilla poistaaksesi pisteitä." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Sisääntulon histogrammi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Sisääntulo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Ulostulo" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Ulostulon histogrammi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Valitse edustaväri" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Valitse taustaväri" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Valitse palettiväri" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klikkaa vaihtaaksesi ensi- ja toissijaisen värin välillä." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Paina palauttaksesi edusta- ja taustavärin" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klikkaa valitaksesi ensisijaisen värin." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klikkaa valitaksesi toissijaisen värin." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Vasemmalla hiirennäppäimellä valitset edustavärin. Oikealla näppäimellä " "valitset taustavärin. Keskinapilla valitset paletin värin." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Taso esillä" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Taso piilotettu" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Ympyrät" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Ristikot" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Roiske" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Neliöt" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Katkoviiva" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Nuoli" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Koko" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Pienennä nuolen kokoa" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Suurenna nuolen kokoa" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Pituus" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Siveltimen koko" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Pienennä sivellintä" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Suurenna sivellintä" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Piirtotyyli" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Reunan muoto" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Täytön muoto" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Täytön ja reunan muoto" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Muodon tyyppi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Avaa Viiva/Käyrä" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Sulje Viiva/Käyrä" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipsi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Pyöristetyt viivat" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Vaihda muodon tyyppi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Piste poistettu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Poistettu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Piste lisätty" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Lisätty" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Muokattu" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Viimeistelty" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Avaa Käyrät" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Sulje Käyrät" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Pyöristetty viiva" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Vähennä muodon kulmasädettä" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Kasvata muodon kulmasädettä" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kloonaus" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Napsauta oikealla asettaaksesi lähtöpisteen, vasemmalla piirrät." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Värinpoimija" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Näytteistys" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Yksittäinen pikseli" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 -alue" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 -alue" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 -alue" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 -alue" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Kuva" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Valinnan jälkeen" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Älä vaihda työkalua" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Vaihda edelliseen työkaluun" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Vaihda kynään" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Kynä" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipsivalinta" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Paina hiirellä ja siirrä hiirtä tehdäksesi elliptisen valinnan. Pidä Vaihto -" "näppäin pohjassa tehdäksesi ympyrämuotoisen valinnan." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Pyyhin" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Tulvatila" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Jatkuva" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globaali" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Vapaa muoto" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Väriliukuma" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineaari" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineaari (Peilattu)" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Timantti" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Säteittäinen" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kartio" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lassovalinta" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Napsauta ja siirrä hiirtä luodaksesi valittavan alueen reunan." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Viiva/Käyrä" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Taikasauva" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Napsauta valitaksesi samanvärisen alueen." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Liikuta valittua kuvan osaa vasen hiirenpainike pohjassa raahaamalla. Käännä " "valittua kuvan osaa oikea hiirenpainike pohjassa raahaamalla." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Siirrä valintaa" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Liikuta valinnan ääriviivoja vasen hiirenpainike pohjassa raahaamalla. " "Käännä valinnan ääriviivoja oikea hiirenpainike pohjassa raahaamalla." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Sivellin" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tyyppi" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Täyttö" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Napsauta ja siirrä hiirtä liikkuaksesi kuvalla." #: ../Pinta.Tools/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 "" "Hiiren vasemmalla piirrät vapaamuotoisia yhden pikselin levyisiä viivoja " "edustavärillä. Oikella näppäimellä taustavärin värisiä." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Väritä uudelleen" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Vasen napsautus toissijaisen värin korvaamiseksi ensisijaisella värillä. " "Käänteinen toiminto oikealla napsautuksella." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Suorakulmainen valinta" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Paina hiirellä ja siirrä hiirtä tehdäksesi nelikulmaisen valinnan. Pidä " "Vaihto -näppäin pohjassa tehdäksesi neliön muotoisen valinnan." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Suorakulmio" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Pyöristetty suorakulmio" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Teksti" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Teksti - Tee valmiiksi" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Kirjasin" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Lihavoitu" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursivoitu" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Alleviivattu" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Tasaa vasemmalle" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Keskitä" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Tasaa oikealle" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Tekstin tyyli" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normaali ja ääriviiva" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Täytä tausta" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ääriviivan paksuus" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Pienennä ääriviivaa" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Suurenna ääriviivaa" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Muuta paletin kokoa" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Paletin uusi koko:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Tallennetaanko muutokset kuvaan \"{0}\" ennen sulkemista?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Sulje _tallentamatta" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ota kuvankaappaus" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Viive ennen kuvankaappauksen ottamista (sekuntteja):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Kuvatiedostot" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Tallenna kuva" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ei tue kuvien tallentamista tässä muodossa." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Vain luku -tiedostoon ei voi tallentaa." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Kuva on liian iso" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO-tiedostot voivat olla korkeintaan 255x255 pikselin kokoisia" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Tason peittävyys" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Nimeä taso uudelleen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Piilota taso" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Näytä taso" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Tason ominaisuudet" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Käännä / lähennä tasoa" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta-yhteisön lisäosat - alustariippuvaiset" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta-yhteisön lisäosat - alustariippumattomat" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Tämän julkaisun osallistujat:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Aiemmat osallistujat:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Beluga https://launchpad.net/~beluga\n" " Cameron White https://launchpad.net/~cameronwhite91\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" " Kari Rantanen https://launchpad.net/~kari-rantanen\n" " Lauri Kohtala https://launchpad.net/~lauri-kohtala-f\n" " Tommi Saira https://launchpad.net/~tommisaira\n" " Urmas https://launchpad.net/~urmas-2006" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Käännöksen tehnyt:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Perustuu ohjelmaan Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Käyttää kuvakkeita kokoelmista:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Käyttää Monoa:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Tietoja Pintasta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versiotiedot" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versio" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lisenssi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Julkaistaan MIT X11 -lisenssin alaisena." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Tekijänoikeus" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta-tekijöiden" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Lisätiedot" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Ilmoita ongelmasta..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-laatu" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Laatu: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nimi:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Näkyvä" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Sekoitustila" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Peittävyys:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Leikepöytä" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Omavalintainen" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Esiasetus:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Leveys:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikseliä" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Korkeus:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Suunta:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Pysty" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Vaaka" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Tausta:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Valkoinen" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Taustaväri" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Nimi" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Polku" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Piilota" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Telakoitava" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Kelluva" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automaattinen piilotus" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Telakka" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Näytä viesti ja poistu." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Näytä ohjelmaversio." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "renderointiin käytettävät säikeet" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Käyttö: pinta [tiedostot]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Asetukset: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Tiedosto" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Muokkaa" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Näytä" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Kuva" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "T_asot" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Säädöt" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "T_ehosteet" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "A_dd-ins" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Ikkuna" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Työkaluikkunat" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Ohje" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Piirtopohja" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historia" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Tasot" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Kuvat" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Työkalut" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Reunan käyttäytyminen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Usea valinta:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Ota käyttöön" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Poista käytöstä" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Ei valintaa" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Saatavilla pakettivarastossa:" #: 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 "Tätä lisäosapekttia ei voi ladata puuttuvien riippuvuiden takia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Vaatii: {0} v{1}, löytyi v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Puuttuu: {0} v{1}" #: 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 "Pakettivaraston versio" #: 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 "Seuraavia lisäosan riippuvuuksia ei ollut saatavilla:" #: 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 "Kokoelma" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Kaikki pakettivarastot" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Hallitse pakettivarastoja..." #: 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 "Päivitetään varastoa" #: 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 "Lisäosia ei löytynyt" #: 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 "Muut" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Poista asennus" #: 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 "" "On lisäosia jotka tarvitsevat aiemman version joka tullaan poistamaan:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Valittuja lisäosia ei voi asentaa koska riippuvuiden kanssa on ristiriitoja." #: 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 "Asennetaan lisäosia" #: 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 "Poistetaan lisäosia" #: 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 "Lisätään pakettivarasto" #: 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 "Tämän toiminnon suorittaminen vaatii lisäosia." #: 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 "Pakettivarasto:" #: 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.InstallDialog.cs:126 msgid "Install" msgstr "Asenna" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Lisäosien varastohallinta" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Lisää uusi pakettivarasto" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Valitse rekisteröitävän pakettivaraston sijainti:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Rekisteröi pakettivarasto verkosta" #: 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 "Rekisteröi paikallinen pakettivarasto" #: 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 "(tarjoaa {0})" pinta-1.6/po/lv.po0000664000175000017500000017421112474707515015250 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Atsaukt" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Atkārtot" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Izgriezt" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopēt" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Ievietot" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Iekopēt jaunā slānī" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Ielīmēt jaunā attēlā" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Dzēst iezīmējumu" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Aizpildīt iezīmējumu" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertēt iezīmējumu" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Iezīmēt visu" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Atcelt visu iezīmēto" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Atvērt..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Saglabāt kā..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Iestatīt noklusētos parametrus" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Iestatīt krāsu daudzumu" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palete" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Dzēst iezīmējumu" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Noņemt iezīmējumu" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Atvērt paletes failu" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palešu faili (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Visi faili" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Kļūda" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Saglabāt paleti" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palete (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palete (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Par programmu" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Mainīt attēla izmēru..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Mainīt audekla izmēru..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Apmest horizontāli" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Apmest vertikāli" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Pagriezt par 90° pa labi" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Pagriezt par 90° pa kreisi" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Pagriezt 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Placināt" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Pievienot jaunu slāni" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Dzēst slāni" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dublēt slāni" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Apvienot ar zemāko slāni" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Ievietot no faila..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Pārvietot Slāni Uz Augšu" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Pārvietot Slāni uz Leju" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Slāņa īpašības" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Atvērt Attēla Failu" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Ievietot no faila" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Tuvināt" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Tālināt" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Labākais Izmērs" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Tuvināt līdz iezīmētajam" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normāla izmēra" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Rīkjosla" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pikseļu rūtis" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Līneāli" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikseļi" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Collas" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pilnekrāns" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Logs" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Lineāla Mērvienības" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Rīks" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Taustiņš" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Parastā Jaukšana" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Pārrakstīt" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Malu pludināšana Ieslēgta" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Malu pludināšana izslēgta" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Slānis" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopēt" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Audekla izmērs" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Pārvietot iezīmētos pikseļus" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Izvērst audeklu" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Nemainīt audekla izmēru" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normāls" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Kvēlošana" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pabeigtie piksleļi" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Mainīt attēla izmēru" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} attēls ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Renderēšanas Effekti" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nesglabāts attēls {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fons" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Jauna Bilde" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Atvērt attēlu" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nevar atvērt failu: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automātiskie Līmeņi" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Melnbalts" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Gaišums / Kontrasts" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Spilgtums" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrasts" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Līknes" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Tonis / Piesātinājums" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertēt krāsas" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Līmeņi" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Plakātēšana" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sēpija" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Pielāgot līmeņus" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Sarkans" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zaļš" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Zils" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Saistīts" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Pielikt Troksni" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Troksnis" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitāte" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Krasu piesātinājums" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pārklājums" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Izliekums" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Kropļojumi" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Daudzums" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Nobīde" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Mākoņi" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderēt" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Mērogs" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Spēks" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Sēt" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Malu Effekts" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizēt" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Leņķis" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Gofrēt" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmentēt" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Izpludināšana" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenti" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Attālums" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotācija" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Matstikls" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gausa izpludināšana" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Rādiuss" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Tintes skice" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Māksliniecisks" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Līnijas ar tinti" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Krāsošana" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Jūlija Fractālis" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Koeficients" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalitāte" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Tālummaiņa" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrota fraktālis" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediāna" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Procentile" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Virziena izpludināšana" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrēts" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Eļļas Glezna" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Otas izmērs" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Rupjums" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kontūra" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Biezums" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Skice ar zīmuli" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Zīmuļa tipa izmērs" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Krāsu apgabals" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselēt" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Šūnas izmērs" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polārā griešana" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiāla pludināšana" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Sarkano acu noņemšana" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Samazināt Troksni" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Stiprums" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reljefs" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Asināt" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Mīkstināt portretu" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mīkstums" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Apgaismonjums" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Siltums" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Flīžu atspūlgs" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Rūts izmērs" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Savīt" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Nogludināt" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "izfokusēt" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centra nobīde" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Mērogošanas pludināšana" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Pārnešanas karte" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Spilgtums" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256 ,256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Sarkans " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Zils " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Atstatīt" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Uzziņai: Labais klikšķis lai noņemtu kontrol punktus" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Ievadīt Histogrammu" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Ievade" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Izvade" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Izvadīt Histogrammu" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automātiski" #: ../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:106 msgid "Choose Primary Color" msgstr "Izvēlēties pirmo Krāsu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Izvēlēties Otro Krāsu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Izvēlēties Paletes Krāsu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Rinķi" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Režģis" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Šļaksts" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kvadrāti" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Otas Platums" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Samazināt Otas Izmēru" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Palielināt Otas Izmēru" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Iekrāsošanas veids" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Tikai ārlīnija" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Tikai pildīt" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Pildīt un ārlīnija" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonēšanas rīks" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Krāsas noteicējs" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Pēc izvēles:" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Nepārslēgt rīkus" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Pārslēgt uz iepriekšējo rīku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Pārslēgt uz zīmuli" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Zīmulis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elipses iezīmēšana" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Dzēšgumija" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Pārpludināšanas režīms" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Nepārtraukts" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globāls" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Brīvformas figūra" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Krāsu pāreja" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineāra krāsu pāreja" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineāra, atstarota krāsu pāreja" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Dimantveida krāsu pāreja" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiāla krāsu pāreja" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Koniskā krāsu pāreja" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasso Iezīmēšana" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Aptuvenās iezīmēšanas rīks" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klikšķini lai iezīmētu līdzīgas krāsas apgabalu" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Pārvietot iezīmēto" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Ota" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tips" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Krāsas Spainis" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Aplūkošana" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikšķini un velc lai aplūkotu attēlu" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Pārkrāsot" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Taisnstūrveida iezīmējums" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Taisnstūris" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Noapaļots taisnstrūris" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Teksts" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Fonts" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Treknraksts" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Slīpraksts" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Pasvītrots" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Līdzināt pa kreisi" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Līdzināt pēc vidus" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Līdzināt pa labi" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Teksta Stils" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normāla Ārlīnija" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ārlīnijas Platums" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Samazināt Ārlīnijas Izmēru" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Palielināt Ārlīnijas Izmēru" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Toņu daudzums" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Jaunās paletes toņu daudzums:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Vai saglabāt \"{0}\" pirms aizvēršanas?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Ja nesaglabāsiet, visas izmaiņas tiks neatgriezeniski zaudētas." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Uzņemt ekrānattēlu" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Laiks pirms uzņemt ekrān-šāviņu (sekundēs):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Attēla faili" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Saglabāt Attēla Failu" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta neatbalsta šo faila formātu." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nevar saglabāt tikai lasāmu failu" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Slāņa caurredzamība" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Pārsaukt slāni" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Paslēpt Slāni" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Parādīt Slāni" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Slāņa Opcijas" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Tulkoja:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Veidots uz Paint.NET bāzes" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Lietot dažas ikonas no:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Par Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versijas Informācija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licence" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Publicēts zem MIT X11 licences." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autortiesības" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "visi Pinta atbalstītāji" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Kvalitāte" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalitāte: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Vārds:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Redzams" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Jaukšana" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Necaurspīdīgums:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Platums:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikseļi" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Augstums:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Nosaukums" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ceļš" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Slēpt" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Panelī" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Atsevišķā logā" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Paslēpt automātiski" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Novietot panelī" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "Pavedienu daudzums ko izmantot renderēšanai" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fails" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Rediģēt" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Skats" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Attēls" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "S_lāņi" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Korekcij_as" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_kti" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Logs" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Rīku Logi" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Palīdzība" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "ParametraVārds" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Vēsture" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Slāņi" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Rīki" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Malu uzvedība" #: 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.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.6/po/br.po0000664000175000017500000020450212474707515015227 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-07-17 21:21+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Krouiñ ha kempenn skeudennoù ent aes" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Embanner skeudennoù" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta Embanner skeudennoù" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Ardoer an askouezhioù" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Dizober" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Adober" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Troc'hañ" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Eilañ" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Eilad toueziet" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Pegañ" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Pegañ war un dreuzfollenn nevez" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Pegañ war ur skeudenn nevez" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Dilemel an diuzad" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Leuniañ an diuzad" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Tuginañ an diuzad" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Diuzañ pep tra" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Diziuzañ pep tra" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Digeriñ..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Enrollañ evel..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Adderaouekaat" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Arventennañ niver al livioù" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Livaoueg" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Diverkañ an diuzad" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Diziuzañ" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Digeriñ ur restr livaoueg" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Restroù livaouegoù (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "An holl restroù" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fazi" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Enrollañ ar restr livaoueg" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Livaoueg mod Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Livaoueg mod GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Diwar-benn" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Adventañ ar skeudenn..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Adventañ ar steuenn..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Gwintañ a-blaen" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Gwintañ a-serzh" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "C'hwelañ dre 90° gant roud ar bizied" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "C'hwelañ dre 90° gant roud gin ar bizied" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "C'hwelañ dre 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Plataat" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Ouzhpennañ un dreuzfollenn nevez" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Dilemel an dreuzfollenn" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Eilañ an dreuzfollenn" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Toueziañ gant an dreuzfollenn a-zindan" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Enporzhiañ diouzh ur restr..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "C'hwelañ/Zoumaat ouzh an drezufollenn..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Treuzfollenn d'an nec'h" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Treuzfollenn d'an traoñ" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Perzhioù an dreuzfollenn..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Digeriñ ur restr skeudenn" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Enporzhiañ diouzh ur restr" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoum brasaat" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoum bihanaat" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Ment peurvat" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoumañ da framm an diuzad" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Ment reizh" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barrenn ostilhoù" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Kael ar pikselioù" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Reolennoù" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikselioù" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Meutadoù" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Kentimetroù" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Skrammad a-bezh" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Prenestr" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unanennoù ar reolenn" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Benveg" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Berradenn glavier" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Meskadur reizh" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Flastrañ" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Gweredekaat al lufrañ" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Diweredekaat al lufrañ" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Treuzfollenn" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "eilañ" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Adventañ ar steuenn" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Dilec'hiañ ar pikselioù bet diuzet" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Brasoc'h eo ar skeudenn eget ar steuenn" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Astenn ar steuenn" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Arabat kemm ment ar steuenn" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "N'haller ket pegañ ar skeudenn" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "N'eus skeudenn ebet e-barzh ar golver." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Amsaviñ" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unaniezh (+) (Crtl + klik a-gleik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Ezlakaat (-) (Klik a-zehou)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + klik a-zehou)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Kenskejañ (Pennlizh. + klik a-gleiz)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Rizh diuzañ : " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Reizh" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Liesaat" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Azdodat" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Teñvalaat al livioù" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Sklaeraat al livioù" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Damouezh" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Skleur" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Gourloañ" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diforc'h" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Nac'hañ" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Sklaeraat" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Teñvalaat" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Skramm" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Peurlipat ar pikselioù" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Adventañ ar skeudenn" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} skeudenn ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efed gant an deouez" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Benveg ebet bet diuzet." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Skeudenn dienroll {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Drekva" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Skeudenn nevez" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Digeriñ ur skeudenn" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Nac'het eo bet an aotre" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "N'hall ket digeriñ ar restr : {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Live emgefreek" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Du ha Gwenn" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Lintr/Dargemm" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Lintr" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Dargemm" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krommennoù" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Arliv/Peurvec'hiañ" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Tuginañ al livioù" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Liveoù" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Skritellaat" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Kengeidadur al liveoù" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Ruz" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Gwer" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Glas" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Ereet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Ouzhpennañ trouz" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Trouz" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Kreñvder" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Peurvec'hiañ liv" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Keitad" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bos" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Torrgammoù" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Kementad" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Linkañ" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Koumoul" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Deouez" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skeulaat" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Galloud" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Hadañ" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Dinoiñ ar riblennoù" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilaat" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kornad" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Stampiñ" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Darnaouiñ" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Ruzedoù" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Darnoù" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Pellder" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "C'hwelañ" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Gwerenn dilufr" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Ruzed mod Gausse" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Skin" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Luc'hskeudenn" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Brastres dre huz" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Arzek" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Trolinenn dre huz" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Livadur" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Brevennoù mod Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Parenn" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Perzhded" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoum" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Brevennoù mod Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Krenn" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Kantranner" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Ruzed dre fiñval" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Kreizet" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Livadur dre eoul" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Ment ar broust" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Diguñvder" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Trolinenn" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tevder" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Brastres gant ur c'hreion" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Ment min ar c'hreion" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Ledad livioù" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselaat" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Ment ar gellig" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Tuginadur bleinek" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Ruzed skinek" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Dilamadur an daoulagad ruz" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Aotrevarz" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Digreskiñ an trouz" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Kreñvder" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Torosennadur" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Lemmañ" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Kuñvaat ar poltred" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Kuñvder" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Goulaouiñ" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Tommder" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Disvannadur er marelloù" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Ment ar marelloù" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Gweañ" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Lufrañ" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Distiañ" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Linkad ar c'hreiz" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Ruzed dre zoumañ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Kartenn dreuzkas" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGG" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lintr" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Ruz " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Glas " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Adderaouekaat" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tun : Klikañ a-zehou da zilemel ar poentoù reoliñ." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Tellun enankañ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Enankad" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Ec'hankad" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Tellun ec'hankañ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Emgefreek" #: ../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:106 msgid "Choose Primary Color" msgstr "Dibab al liv kentael" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Dibab al liv eilvedel" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Dibab al livaoueg" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klikañ a-benn diuzañ al liv kentael pe al liv eilvedel." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Klikañ da adderaouekaat al livioù kentael hag eilvedel." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klikañ a-benn diuzañ al liv kentael." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klikañ a-benn diuzañ al liv eilvedel." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Klik kleiz da arventennañ al liv kentael. Klik dehou da arventennañ al liv " "eilvedel. Klik kreiz da zibab ul liv diwar al livaoueg." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Treuzfollenn diskouezet" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Treuzfollenn kuzhet" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Kelc'hioù" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Kael" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Strimpadenn" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Karrezioù" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Bir" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Ment" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Kresiñ ment ar bir" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Digreskiñ linkadur ar c'horn" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Kreskiñ linkadur ar c'horn" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Led" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Kreskiñ linkadur al led" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Digreskiñ linkadur al led" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Led ar broust" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Digreskiñ ment ar broust" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Kreskiñ ment ar broust" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Stil leuniañ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Lun an drolinenn" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Lun leuniañ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Lun leuniañ ha lun an drolinenn" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsenn" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Stampon klonañ" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Gwalenn da dapout ul liv" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Standilhonañ" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Piksel eeun" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Maez 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Maez 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Maez 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Maez 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Skeudenn" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Goude bezañ diuzet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Arabat kemmañ ar benveg" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Kemmañ d'ar benveg kent" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Kemmañ d'ar benveg Kreion" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Kreion" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Diuzañ dre an elipsenn" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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. Mirout Pennlizh. " "pouezet da zestrizhañ ouzh tresañ ur c'helc'h." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gomenn" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mod aloubiñ" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Kevelek" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Hollek" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Lun dre zorn" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Ilrezenn" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Ilrezenn linennek" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Ilrezenn linennek disvannet" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Ilrezenn linennek e doare diamant" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Ilrezenn skinek" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Ilrezenn kernennek" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Diuzañ gant al las-bann" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Diuzad dre ar walenn hudus" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klikañ a-benn diuzañ maezioù gant livioù damheñvel" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Klikañ a-gleiz ha riklañ an diuzad evit dilec'hiañ an endalc'had. Klikañ a-" "zehou ha riklañ an diuzad evit c'hwelañ an endalc'had diuzet." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Dilec'hiañ an diuzad" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Klikañ a-gleiz ha riklañ an diuzad evit dilec'hiañ trolinenn an diuzad. " "Klikañ a-zehou ha riklañ an diuzad evit c'hwelañ trolinenn an diuzad." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Broust livañ" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Rizh" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Sailh da livañ" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Dilec'hiañ" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikañ ha riklañ a-benn merdeiñ war ar skeudenn." #: ../Pinta.Tools/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 da dresañ ul lun gant linennoù o zevder ur piksel gant al liv " "kentael. Klik dehou da arverañ al liv eilvedel." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Adlivañ" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Diuzañ dre ur reizhkorn" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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 keizhkornek. Mirout Pennlizh. " "pouezet da zestrizhañ ouzh tresañ ur c'harrez." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Reizhkorn" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Reizhkorn rontaet" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Testenn" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Skrid - Peurechuiñ" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Nodrezh" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Tev" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Stouet" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Islinennet" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Marzekaat war an tu kleiz" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Marzekaat e-kreiz" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Marzekaat war an tu dehou" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Stil an destenn" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Reizh ha trolinenn" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Leuniañ an drekleur" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Tevder an drolinenn" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Moanaat tevder an drolinenn" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Tevaat tevder an drolinenn" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Admentañ al livaoueg" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Ment nevez al livaoueg :" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Enrollañ ar c'hemmoù graet d'ar skeudenn \"{0}\" kent serriñ ?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ober ur skrammad" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Pred a-raok ma vo graet ar skrammad (eilennoù) :" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Restroù skeudenn" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Enrollañ restr ar skeudenn" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne skor ket an enrollañ skeudennoù gant ar mentrezh restr-mañ." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "N'haller ket enrollañ ar skeudennoù e mod lenn nemetken." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Re vras eo ar skeudenn" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" "Ar restroù mod ICO n'hallont ket bezañ brasoc'h eget 255 x 255 piksel." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Demerez an dreuzfollenn" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Adenvel an dreuzfollenn" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Kuzhañ an dreuzfollenn" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Diskouez an dreuzfollenn" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Perzhioù an dreuzfollenn" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "C'hwelañ/Zoumaat ouzh an drezufollenn" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Tud o deus kemeret perzh en handelv-mañ :" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Tud o deus kemeret perzh a-raok :" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alan https://launchpad.net/~alan-m.\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Philippe AUCOIN https://launchpad.net/~philippe-aucoin\n" " Skolajidi Diwan https://launchpad.net/~gireg-konan" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Troet gant :" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Diazezet war al labour graet evit Paint.NET :" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Arver arlunioù zo digant :" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Enlusket gant Mono :" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "A-zivout Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Titouroù an handelv" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Handelv" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lañvaz" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Savet dindan Lañvaz MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "gant perzhiaded Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Munudoù" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Perzhded JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Perzhded : " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Anv :" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Hewelus" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mod kemmeskañ" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Demerez :" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Led :" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "a bikselioù" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Sav :" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titl" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Treug" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Kuzhañ" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Kaeadus" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "War neuñv" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Kuzhañ emgefreek" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Kae" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "niver a neudennoù da arverañ evit an deouez" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Restr" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Embann" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Gwelout" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Skeudenn" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Treuzfollenn" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Kengeidadurioù" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_doù" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Ouzhpena_dennoù" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Prenestr" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Prenestr an ostilhoù" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Skoazell" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Anv an dibarzh" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Steuenn" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Roll istor" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Treuzfollennoù" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Skeudennoù" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Binvioù" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Emzalc'h ar riblenn" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Diuzadur lies :\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Gweredekaat" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Diweredekaat" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Diuzad ebet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Hegerz en dastumlec'h :" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Hizivadenn hegerz" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" "N'eus ket bet tro da bellgargañ an askouezh-mañ rak amzalc'hioù a vank" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Goulennet : {0} v{1}, kavet v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Mankout a ra : {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Handelv staliet" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Handelv ar c'havlec'hiad" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Ment ar bellgargadenn" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "An amzalc'hioù amañ dindan, goulennet gant an askouezh-mañ n'int ket hegerz :" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Dilezet eo bet ar staliañ" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "N'eus ket bet kavet amzalc'hioù goulennet zo" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "C'hwitadenn war ar staliañ" #: 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 "Staliet" #: 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 "Hizivadennoù" #: 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 "Garidell" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "An holl zastumlec'hioù" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Ardeiñ an dastumlec'hioù..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} hizivadenn hegerz" msgstr[1] "{0} hizivadenn hegerz" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "oc'h hizivaat an dastumlec'h" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Staliañ pakad an askouezh" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pakadoù an askouezh" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "N'eus ket bet kavet askouezhioù" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Askouezh" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "All" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Distaliañ" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Distaliet e vo ar pakadoù amañ dindan :" #: 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 "" "Askouezhioù all ez eus a zo e dalc'h ar re gent. Distaliet e vint ivez :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "N'haller ket staliañ an askouezhioù diuzet en abeg da stourmoù etre " "amzalc'hioù." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Staliet e vo ar pakadoù amañ dindan :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (e kavlec'hiad an arveriad)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Ret eo deoc'h distaliañ ar pakadoù da heul :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "N'eus ket tro diskoulmañ an amzalc'hioù amañ dindan :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Fellout a ra deoc'h dilezel ar staliañ ?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "O staliañ an askouezhioù" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "C'hwitadenn war ar staliañ !" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Echuet eo bet ar staliañ gant evezhiadennoù." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "O tistaliañ an askouezhioù" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "C'hwitadenn war an distaliañ !" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Echuet eo bet an distaliañ gant evezhiadennoù." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "O varilhañ an dastumlec'h" #: 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 "Degouezhet ez eus bet un nemedenn : {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Muioc'h a ditouroù" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Staliañ ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Hizivaat" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Distaliañ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Ezhomm ez eus askouezhioù ouzhpenn a-benn seveniñ ar gwezhiadur." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Staliet e vo an askouezhioù amañ dindan :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "N'eus ket bet kavet hizivadennoù" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Azgrenaat" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Hizivaat pep tra" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Dastumlec'h :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Staliañ adalek ur restr" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Staliañ" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Ardoadur dastumlec'h an askouezhioù" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Ouzhpennañ askouezhioù nevez" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Diuzañ lec'h an dastumlec'h a fell deoc'h marilhañ :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Marilhañ un dastumlec'h enlinenn" #: 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 "Marilhañ un dastumlec'h lec'hel" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Treug :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Furchal..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Araokadur" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(pourchaset gant{0})" pinta-1.6/po/ro.po0000664000175000017500000020544012474707515015246 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:02+0000\n" "Last-Translator: Cameron White \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Administrator de module" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Anulează" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refă" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Taie" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiază" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copiază mixat" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Lipeşte" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Lipește într-un strat nou" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Lipește într-o imagine nouă" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Șterge selecția" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Umple selecția" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inversează selecția" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Selectează tot" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deselectează tot" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Deschide..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Salvează Ca..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Restaurează la valorile implicite" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Alege numărul de culori" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paletă" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Șterge selecția" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deselectează" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Deschide fișier paletă" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Fișiere paletă (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Toate fişierele" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Eroare" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Salvează fișier paletă" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paletă Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paletă GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Despre aplicație" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Decupează selecția" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Auto Decupare" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Redimensionare imagine..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionează Canvas" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Întoarce pe orizontală" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Răstoarnă pe verticală" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Roteşte 90° în sensul acelor de ceas" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Roteşte 90° contra acelor de ceas" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Roteşte cu 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Aplatizează" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Adaugă strat nou" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Şterge strat" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Clonează stratul" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Combină cu stratul inferior" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importă din fișier..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotire / Zoom strat..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Mută stratul mai sus" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Mută stratul mai jos" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Proprietăţile stratului..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Deschide fişier imagine" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importă din fişier" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Apropie" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Depărtează" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Cea mai bună încadrare" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Panoramează la selecție" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Mărime normală" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Bară de unelte" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grilă pixeli" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Rigle" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixeli" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Țoli" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Afişare pe tot ecranul" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fereastră" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unităţi de măsură riglă" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Unealtă" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Combinaţie de taste" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Contopire normală" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Suprascrie" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Finisare margini activată" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Finisare margini deactivată" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Strat" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copie" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionează pânza" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Mută pixelii selectați" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Imagine mai mare decât canvas" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Imaginea care trebuie lipită este mai mare decât spațiul de desen. Ce doriți " "să faceți?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Mărește spațiul de desen" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Nu schimba dimensiunea spațiului de desen" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Imaginea nu poate fi lipită" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Nu există nici o imagine în Clipboard" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Înlocuiește" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Uniune (+) (Ctrl + Click stânga)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclude (-) (Click dreapta)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Click dreapta)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersecție (Shift + Click stânga)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modul de selecție: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicare" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Sumare" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Culoare arsă" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Culoare evitată" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflectă" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "luminiscență" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Suprapunere" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferenţă" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negare" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Iluminare" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Închide culoarea" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Ecran" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Termină pixeli" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensionează imaginea" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} imagine ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efect de randare" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nici o unealtă selectată." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imagine nesalvată {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fundal" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Imagine nouă" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Deschide imagine" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permisiune respinsă" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nu am putut deschide fişierul: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Nivel automat" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Negru și alb" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Luminozitate / contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Luminozitate" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curbe" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Nuanță / Saturație" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inversează culorile" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveluri" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizează" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajustează niveluri" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Roșu" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Albastru" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Legat" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Adaugă zgomot" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Zgomot" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitate" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturație culoare" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Acoperire" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Umflare" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsionează" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Cantitate" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Decalaj" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nori" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Randează" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scalează" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Putere" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Sămânță" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detectează muchii" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizează" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Unghi" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Reliefare" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Neclarități" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmente" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distanță" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotație" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Sticlă înghețată" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Neclaritate gaussiană" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Rază" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografie" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Schiță în cerneală" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Cerneală contur" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colorare" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Calitate" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Mărire/Micşorare" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediană" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentilă" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Efect de estompare în mișcare" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrat" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pictură în ulei" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Mărime pensulă" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Asprime" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Evidențiază contururi" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Grosime" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Schiță în creion" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Mărime vârf pensulă" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Interval culoare" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelează" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Mărime celulă" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversie polară" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Neclaritate radială" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Îndepărtare efect de ochi roșii" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toleranţă" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reducere zgomot" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Putere" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Accentuează claritatea" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Portret înmuiat" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Finețe" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Iluminare" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Căldură" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Reflecție mozaic" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Mărime mozaic" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Răsucește" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Anticrenelare" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Defocusează" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centrare decalaj" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Efect de estompare de focalizare" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Hartă de transfer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminozitate" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Roșu " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Albastru " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Resetează" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Truc: Click dreapta ca să elimini puncte de control" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogramă de intrare" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Intrare" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Rezultat" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogramă de ieșire" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automat" #: ../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:106 msgid "Choose Primary Color" msgstr "Alege culoarea principală" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Alege culoarea secundară" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Alege culoarea din paletă" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Dați clic pentru a trece de la culoarea primară la cea secundară." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Click pentru a reseta culoarea principală și cea secundară." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Clic pentru selectarea culorii primare." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Clic pentru selectarea culorii secundare." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Clic stânga pentru culoarea primară. Clic dreapta pentru culoarea secundară. " "Clic mijloc pentru a selecta o culoare de pe paletă." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Afișare strat" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Ascundere strat" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cercuri" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grilă" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Stropi" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Pătrate" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Grosime pensulă" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Micşorează mărimea pensulei" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Mărește dimensiunea pensulei" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Stil de umplere" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Evidiențiere margini formă" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Umple formă" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Umple și conturează formă" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsă" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Ștampilă de clonare" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Control-clic pentru alegerea originii, clic stânga pentru desenare." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Selector de culoare" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Prelevare de probe" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Un Singur Pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Regiune 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Regiune 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Regiune 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Regiune 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imagine" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "După selecţie" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Nu schimba unealta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Schimbă la unealta precedentă" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Schimbă la creion" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Creion" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Selecție eliptică" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Click și trage pentru a desena o selecție eliptică. Ține apăsată tasta Shift " "pentru a constrânge selecția la forma de cerc." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gumă de șters" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mod de umplere" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Continuu" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Formă liberă" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradient liniar" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradient liniar oglindit" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Gradient liniar în diamant" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradient radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradient conic" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Selecție lasou" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Selectează cu bagheta magică" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Clic pentru a selecta regiunea de culoare similară." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Click stânga pe selecție și trage pentru a muta conținutul selecției. Click " "dreapta pe selecție și trage pentru a roti conținutul selecției." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mută selecția" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Click stânga pe selecție și trage pentru a muta conturul selecției. Click " "dreapta pe selecție și trage pentru a roti conturul selecției." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pensulă de pictură" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tip" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Găleată cu vopsea" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Mișcă" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Clic şi trage pentru a naviga în imagine." #: ../Pinta.Tools/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 "" "Click stânga pentru a desena linii arbitrare cu lățimea de un pixel folosind " "culoarea principală. Click dreapta pentru a folosi culoarea secundară." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolorează" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Selecție dreptunghiulară" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Click și trage pentru a desena o selecție rectangulară. Ține apăsată tasta " "Shift pentru a constrânge selecția la forma de pătrat." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Dreptunghi" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Dreptunghi rotunjit" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalizare" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Aldin" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Cursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Subliniat" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Aliniază la stânga" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Aliniază centrat" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Aliniază la dreapta" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Stilul textului" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal și contur" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Umple fundalul" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Lățimea conturului" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Micșorează lățimea conturului" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Mărește lățimea conturului" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Redimensionează paleta" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Noua mărime a paletei:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, 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/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Capturează ecran" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Întârziere înaintea capturii de ecran (secunde):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Fișiere imagine" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Salvează fișierul imagine" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nu susţine salvarea imaginii in acest tip de fişier" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Fișierul read-only nu poate fi salvat." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Imagine prea mare" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Fișierele cu extensia ICO nu pot fi mai mare de 255 x 255 pixeli." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacitatea stratului" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Redenumește stratul" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ascunde Strat" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Arată Strat" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Proprietățile stratului" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotire / Zoom Strat" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Au contribuit la această versiune:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Au contribuit la versiunile anterioare:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alex https://launchpad.net/~icidrop\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Ciprian https://launchpad.net/~c1pr1ancip\n" " Dr. Sky Lizard https://launchpad.net/~skylizard\n" " Elvis Alistar https://launchpad.net/~ealis2001\n" " Ion https://launchpad.net/~vaneam\n" " Istrate Sebastian https://launchpad.net/~sebyx87\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Nagy Ákos https://launchpad.net/~e-contact-pecska-ro\n" " Nicolae Crefelean https://launchpad.net/~kneekoo\n" " Radu Zoran https://launchpad.net/~radu-r2dev\n" " ciplogic https://launchpad.net/~ciprian-mustiata" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Tradus de:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Bazat pe munca la programul Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Sunt utilizate unele pictograme din:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Bazat pe Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Despre Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informaţii despre versiune" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versiune" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenţă" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Publicat sub licenţă MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "de contribuitorii Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Detalii" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Calitate JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Calitate: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nume:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Vizibil" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mod contopire" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacitate:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Lungime:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixeli" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Înălțime:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titlu" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cale" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ascunde" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Andocabil" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutitor" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Ascunde automat" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Strat de text" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "numărul firelor de execuţie utilizate pentru randare" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fișier" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editare" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vizualizare" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imagine" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Straturi" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Ajustări" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_cte" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "E_xtensii" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fereastră" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Ferestre cu unelte" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Ajutor" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "NumeOpțiune" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Spațiu de desen" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Istoric" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Straturi" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imagini" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Unelte" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportament la margine" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Selecție multiplă:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Activează" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Dezactivează" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Nici o selecție" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Disponibil în repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Actualizare disponibilă" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" "Această extensie nu poate fi încărcată deoarece nu au putut fi găsite " "dependințele" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Necesar: {0} v{1}, găsit v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Lipsește: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versiune instalată" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Versiune Repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Dimensiune download" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Următoarele dependințe necesare pentru această extensie nu sunt disponibile:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instalare anulată" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "O parte din modulele obligatorii nu au fost găsite" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Instalare nereușită" #: 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 "Instalat" #: 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 "Actualizări" #: 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 "Galerie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Toate sursele" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Management Surse..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} actualizare disponibilă" msgstr[1] "{0} actualizări disponibile" msgstr[2] "" "{0} actualizare disponibilă\r\n" "{0} actualizări disponibile" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Actualizare sursă" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalează pachet actualizare" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pachete cu actualizări" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nu a fost găsită nici o extensie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Extensie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Altele" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Dezinstalează" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Următoarele pachete vor fi dezinstalate:" #: 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 "" "Există alte extensii care depind de extensiile anteriaore care vor fi de " "asemenea dezinstalate:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Următoarele extensii nu pot fi instalate pentru că există conflicte în " "dependințe." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Următoarele pachete vor fi instalate:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (în directorul utilizatorului)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Următoarele pachete trebuie dezinstalate:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Următoarele dependențe nu au putut fi rezolvate:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Sigur doriți anularea instalării?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Instalează extensii" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Instalare eșuată!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Instalarea s-a terminat cu avertizări." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Dezinstalează extensii" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Dezinstalarea a eșuat!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Dezinstalarea s-a terminat cu avertizări." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Înregistrare sursă" #: 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 "A apărut o excepție: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Informații suplimentare" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instalează..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Actualizare" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Dezinstalează..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Sunt necesare extensii adiționale pentru a efectua această operație." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Următoarele extensii vor fi instalate:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Nu au fost găsite actualizări" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Reactualizare" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Actualizează toate" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Sursă:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instalează din fișier..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instalează" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Management surse extensii" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Adaugă sursă nouă" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Selectați locația sursei pe care doriți să o înregistrați:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Înregistrează o sursă online" #: 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 "Înregistrează o sursă locală" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Cale:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Navighează..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "În desfășurare" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(furnizat de către {0})" pinta-1.6/po/hy.po0000664000175000017500000015721212474707515015251 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Պատուհան" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Շերտ" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Vardan Gevorgyan https://launchpad.net/~vgevorgyan" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/uk.po0000664000175000017500000021403612474707515015246 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-07-20 22:01+0000\n" "Last-Translator: Maks Lyashuk aka Ma)(imuM \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Проста програма для створення та редагування зображень" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Редактор зображень" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Редактор зображень Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Менеджер доповнень" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Відмінити" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Відновити" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Вирізати" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Копіювати" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Вставити" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Вставити як новий шар" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Вставити як нове зображення" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Вилучити вибране" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Заповнити виділення" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Інвертувати виділення" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Виділити все" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Зняти виділення" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Відкрити…" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Зберегти як…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Початкові налаштування" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Встановіть число кольорів" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Палітра" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Видалити виділення" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Зняти виділення" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Відкрити палітру" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Файли палітр (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Всі файли" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Помилка" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Зберегти Палітру" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Палітра Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Палітра GIMP (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Новий..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Про програму" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Обрізати по виділеному" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Автоматичне кадрування" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Змінити розмір зображення..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Змінити розмір полотна..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Перевернути по горизонталі" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Перевернути по вертикалі" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Повернути на 90° за годинниковою стрілкою" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Повернути на 90° проти годинникової стрілки" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Повернути на 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Об'єднати" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Додати новий шар" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Видалити шар" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Копіювати шар" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Обєднати шар з попереднім" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Імпортувати з файлу ..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Повернути / Збільшити шар..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Перемістити шар вище" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Перемістити шар нижче" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Властивості шару..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Відкрити зображення" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Імпортувати з файлу" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Збільшити" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Зменшити" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Найкраще заповнення" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "По розміру виділення" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Нормальний розмір" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Панель інструментів" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Піксельна решітка" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Лінійки" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Пікселів" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Дюйми" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Сантиметри" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "На весь екран" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Вікно" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Одиниці виміру" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Зберегти все" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Закрити все" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Інструменти" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Гарячі клавіши" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Нормальне змішування" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Перезаписати" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Увімкнути згладжування" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Вимкнути згладжування" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Шар" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "копія" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Зміна розміру полотна" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Перемістити вибрані пікселі" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Зображення більше ніж полотно" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Зображення, що вставляється, перевищує розмір полотна. Що ви хочете зробити?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Розширити полотно" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Не міняти розмір полотна" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Зображення не може бути вставлене." #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Буфер обміну не містить зображення." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Замінити" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Поєднати (+) (Ctrl + лівий клік)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Від’єднати (-) (правий клік)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + правий клік)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Режим виділення " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Нормальний" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Множення" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Віддзеркалення" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Відблиск" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Накладання" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Різниця" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Екран" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "Відобразити шар горизонтально" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Відобразити шар вертикально" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Змінити розмір зображення" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Зображення {0}_({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Обробити ефекти" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Незбережених зображень {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Фон" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Нове зображення" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Відкрити зображення" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Не можу відкрити файл: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Автокорекція" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Чорно-біле" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Яскравість / контраст" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Яскравість" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Контрастність" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Криві" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Відтінок / Насиченість" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Інвертувати кольори" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Рівні" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Постеризація" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Сепія" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Корекція рівнів" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Червоний" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Зелений" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Синій" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Зв'язок" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Додати шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Інтенсивність" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Насиченість кольору" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Освітлення" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Опуклість" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Спотворення" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Кількість" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Зміщення" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Хмари" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Обробка" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Масштаб" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Потужність" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Зернистість" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Виділення краю" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Стилізація" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Кут" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Чеканка" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Фрагмент" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Розмитість" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Фрагменти" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Відстань" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Обертання" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Матове скло" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Розмивання по Гаусу" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Радіус" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Знімок" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Ескіз чорнилами" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Художній" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Обводка чорнилом" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Забарвлення" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Фрактал Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Фактор" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Якість" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Масштабування" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Множина Мандельброта" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Медіана" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Процент" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Розмивання рухом" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Рівняння на середину" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Картина маслом." #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Розмір пензля" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Грубість" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Контур" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Товщина" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Малюнок олівцем" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Розмір олівця" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Діапазон кольорів" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Пікселізація" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Розмір комірки" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Полярна інверсія" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Радіальне розмивання" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Використовуйте низьку якість для попереднього перегляду, зменшених зображень " "і малих кутів. Використовуйте високу якість для остаточного варіанту, " "великих зображень і великих кутів." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Прибирання ефекту червоних очей" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Допустиме відхилення" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Підказка: Для досягнення кращих результатів, спершу виділіть кожно око " "інструментами виділення." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Зменшити шум" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Ефективність" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Рельєф" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Різкість" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Пом'якшити портрет" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Пом'якшення" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Освітлення" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Теплота" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Мозаїка" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Розмір фрагментів мозаїки" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Скручування" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Згладжування" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Розфокусування" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Зміщення центру" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Збільшувальне розмивання" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Карта нормалей" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Освітленість" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Червоний " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Синій " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Скинути" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Підказка: Клік правою кнопкою миші видаляє контрольні точки." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Вхідна гістограма" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Вхід" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Вихід" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Вихідна гістограма" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "Виберіть основний колір" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Виберіть вторинний колір" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Оберіть палітру кольорів" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Клацніть, щоб перемкнутися між основним та додатковим кольором." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Клацніть, щоб вибрати основний колір." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Клацніть, щоб вибрати додатковий колір." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Шар відображено" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Шар приховано" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Кола" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Сітка" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Бризки" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Квадрати" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Товщина пензля." #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Зменшити розмір пензля" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Збільшити розмір пензля" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Стиль заповнення" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Обвести фігуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Залити фігуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Залити і обвести фігуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Еліпс" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Штамп клонування." #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+лівий клік мишкою для встановлення основи, лівий клік для малювання." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Вибір кольору" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Клацніть лівою клавішею миші для вибору основного кольору. Клацніть правою " "клавішею миші, щоб вибрати додатковий колір." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Вибірка" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Одиночний піксель" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Область 3 на 2" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Область 5 на 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Область 7 на 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Область 9 на 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Зображення" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Після вибору" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Не переключайте інструмент" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Переключитися до попереднього інструменту" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Переключитися до наступного інструменту" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Олівець" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Виділення еліпсом" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Гумка" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "Ліва кнопка миші стирає до прозорого, права стирає кольором фону. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Режим заливки" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Суміжні області" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Глобальна" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Довільна форма" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Натисніть ліву клавішу, щоб малювати основним кольром і праву, щоб " "додатковим." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Градієнт" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Клацніть і перетягуйте, щоб намалювати градієнт від основного кольору до до " "додаткового. Правий клік, щоб зробити навпаки." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Лінійний градієнт" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Лінійний відображений градієнт." #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Лінійний ромбовидний градієнт" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Радіальний градієнт" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Конічний градієнт" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Виділення лассом" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "За допомогою миші виділіть контур для вибору області." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Виділення чарівною паличкою" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Вибрати регіон з аналогічним кольром." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Переміщення виділеного" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Пензлик" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Тип" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Заливка" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Панорама" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Клацніть і перетягуйте для навігації по зображенню" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Перефарбування" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Прямокутне виділення" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Прямокутник" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Округлений прямокутник" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Текст" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Лівою клавішею помістіть курсор в потрібне місце і наберіть текст. Текст " "буде основним кольром." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Шрифт" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Напівжирний" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Курсив" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Підкреслений" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Рівняння ліворуч" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Рівняння на середину" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Рівняння праворуч" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Стиль Тексту" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Нормальний та контурний" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Залити тло" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Товщина контуру" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Зменшити товщину контуру" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Збільшити товщину контуру" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Лівий клік мишкою для збільшення. Правий клік мишкою для зменшення. " "Натисніть і рухайте мишкою, щоб масштабувати по виділеннню." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Змінити розмір палітри" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Новий розмір палітри" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Зберегти зміни в зображенні \"{0}\" перед закриттям?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Якщо ви не збережете, всі зміни будуть безповоротно втрачені." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Зробити Скріншот" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Зробити скріншот із затримкою (в секундах):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Файли зображень" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Зберегти зображення" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не підтримує збереження зображень в цьому форматі." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Неможливо зберегти файл, доступний тільки для читання" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Зображення завелике" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Файли ICO не можуть бути більші ніж 255х255 пікселів." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл з іменем \"{0}\" вже існує. Замінити його?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Файл вже існує в \"{1}\". Заміна призведе до перезапису його змісту." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Непрозорість шару" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Перейменувати шар" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Приховати шар" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Показати шар" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Властивості шару" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Повернути / Збільшити шар" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Maks Lyashuk aka Ma)(imuM https://launchpad.net/~probel\n" " Max_ym https://launchpad.net/~kontact-cat\n" " Nazariy Ritter https://launchpad.net/~nazariy-ritter\n" " UaHummer https://launchpad.net/~uahummer\n" " ma$terok https://launchpad.net/~m-shein\n" " Сергій Дубик https://launchpad.net/~dubyk-library" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Над перекладом працювали:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Працює на базі Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Використовує деякі іконки з:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Про Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Інформація про версію" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Версія" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Ліцензія" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Випущено за підтримки МТІ ліцензія X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Авторські права" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "розробники Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Деталі" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Якість JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Якість: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Ім’я:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Видимий" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Режим змішування" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Непрозорість:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Ширина:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "пікселів" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Висота:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Заголовок" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Шлях" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Приховати" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прилипаючі" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плаваючі" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Автоматично приховувати" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Зберігати пропорції" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Прив’язка:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "кількість потоків, що будуть використані при рендерінгу" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Файл" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Правка" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Вигляд" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Малюнок" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Шари" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Кольори" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Ефекти" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Вікно" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Вікна інструментів" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Допомога" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Назва опції" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Історія" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Шари" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Зображення" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Інструменти" #: Polar Inversion dialog msgid "Edge Behavior" 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.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 "Url:" #: 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.6/po/sr.po0000664000175000017500000022107012474707515015247 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. # Мирослав Николић , 2012. msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-06-09 07:02+0000\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian translators\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "Language: sr\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Управник додатака" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Опозови" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Поврати" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Исеци" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Умножи" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Умножи стопљено" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Убаци" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Убаци у нови слој" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Убаци у нову слику" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Обриши изабрано" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Попуни изабрано" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Обрни избор" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Изабери све" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Одзначи све" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Отвори..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Сачувај као..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Врати на основно" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Подеси број боја" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Палета" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Обриши изабрано" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Поништи избор" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Отвори датотеку палете" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Датотеке палете (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Све датотеке" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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" "Проверите да ли покушавате да отворите исправну палету ГИМП-а или Пеинт.НЕТ-" "а." #: ../Pinta.Core/Actions/EditActions.cs:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Грeшкa" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Сачувај датотеку палете" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Палета Пеинт.НЕТ-а (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Палета ГИМП-а (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Нова..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "О програму" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Исеци на изабрано" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Сам исеци" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Промени величину слике..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Промени величину платна..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Изврни водоравно" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Изврни усправно" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Заокрени за 90° на десно" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Заокрени за 90° на лево" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Заокрени за 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Изравнај" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Додај нови слој" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Обриши слој" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Удвостручи слој" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Стопи слој са доњим" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Увези из датотеке..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Заокрени / Зумирај слој..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Помери слој горе" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Помери слој доле" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Својства слоја..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Отворите датотеку слике" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Увези из датотеке" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Увећај" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Умањи" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Најбоље уклапање" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Изабрано у први план" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Нормална величина" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Трака алата" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Мрежа пиксела" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Лењири" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Тачкице" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Инчи" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Центиметри" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Преко целог екана" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Прозор" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Јединице лењира" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Сачувај све" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Затвори све" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Алатка" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Тастер пречице" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Обично стапање" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Препиши" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Умекшавање је укључено" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Умекшавање је искључено" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Слој" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "умножи" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Промените величину платна" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Преместите изабране тачкице" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Слика је већа од платна" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Убачена слика је већа од платна. Шта желите да урадите?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Рашири платно" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Не мењај величину платна" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Слика не може бити убачена" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Остава не садржи слику." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Замени" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Унија (+) (ктрл + леви клик)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Искључи (-) (десни клик)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Иксор (Ктрл + десни клик)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Пресеци (помак + леви клик)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Режим избора: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Нормално" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Помножи" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Додатно" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Затамњивање боје" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Осветљавање боје" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Одсјај" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Сјај" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Преклапање" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Разлика" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Негација" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Расветљено" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Потамњено" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Екран" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Иксор" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "Изврни слој водоравно" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Изврни слој усправно" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Промените величину слике" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} слика ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Дејство исцртавања" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Није изабран ниједан алат." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Несачувана слика {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Позадина" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Нова слика" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Отвори слику" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Приступ је одбијен" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Не могу да отворим датотеку: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Самонивелисање" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Црно-бело" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Осветљеност / Контраст" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Осветљеност" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Контраст" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Криве" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Нијанса / Засићеност" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Изврни боје" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Нивои" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Смањите број боја" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Црвеносмеђа" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Подешавање нивоа" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Црвена" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Зелена" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Плава" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Повезано" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Додај сметње" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Сметње" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Јакост" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Засићеност" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Покривеност" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Испупчи" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Искриви" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Количина" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Померај" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Облаци" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Исцртај" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Развлачење" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Снага" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Семе" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Откриј ивице" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Стилизирај" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Угао" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Избочине" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Парчићи" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Замућења" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Парчићи" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Удаљеност" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Окренутост" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Залеђено стакло" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Гаусно замућење" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Полупречник" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Фотографија" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Скица мастилом" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Уметнички" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Обрис мастила" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Обојеност" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Јулијин фрактал" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Фактор" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Квалитет" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Увеличајте" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Манделбротов фрактал" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Симетрала" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Проценат" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Замућење покрета" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Усредиштено" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Уљани цртеж" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Величина четкице" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Храпавост" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Обрис" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Дебљина" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Скица оловком" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Величина врха оловке" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Опсег боја" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Истачкај" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Величина ћелије" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Поларно преокретање" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Кружно замућење" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Користите мањи квалитет за прегледе, мале слике, и мале углове. Користите " "већи квалитет за крајњи квалитет, велике слике, и велике углове." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Уклони црвене очи" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Допуштеност" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Савет: За боље резултате, као прво користите алате за избор да изаберете " "прво једно па друго око." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Смањи сметње" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Јачина" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Рељеф" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Изоштри" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Умекшани портрет" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Мекоћа" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Осветљење" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Топлота" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Одсјај плочица" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Величина плочице" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Уврни" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Умекшавање ивица" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ван првог плана" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Усредсредишти помак" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Замућење увећања" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Мапа преноса" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "РГБ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Осветљеност" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Црвена " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Плава " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Поврати" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Савет: Кликните десним тастером да уклоните тачке управљања." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Улазни хистограм" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Улаз" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Излаз" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Излазни хистограм" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "Изаберите основну боју" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Изаберите споредну боју" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Изаберите боју палете" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Кликните да се пребаците између основне и споредне боје." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Кликните да повратите основну и споредну боју." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Кликните да изаберете основну боју." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Кликните да изаберете споредну боју." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Леви клик да поставите основну боју. Десни клик да поставите споредну боју. " "Средњи клик да да изаберете палету боја." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Приказани слој" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Скривени слој" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Кругови" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Мрежа" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Прскач" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Квадрати" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Ширина четкице" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Смањите величину четкице" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Повећајте величину четкице" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Стил испуњавања" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Облик контуре" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Облик испуњавања" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Облик испуњавања и контуре" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Елипса" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Клонирајте калуп" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ктрл + леви клик тастера да подесите порекло, кликните левим тастером да " "обојите." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Бирач боја" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Кликните левим тастером да подесите основну боју. Кликните десним тастером " "да подесите споредну боју." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Узорковање" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Једна тачкица" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 област" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 област" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 област" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 област" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Слика" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Након избора" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Не мењај алат" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Пребаци на претходни алат" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Пребаци на оловку" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Оловка" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Изаберите елипсу" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Кликните и превуците да исцртате елипсоидни избор. Држите помак да " "ограничите на круг." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Гумица" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Кликните левим тастером да обришете до провидности, кликните десним тастером " "да обришете до споредне боје. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Режим поплаве" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Непрекидно" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Опште" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Руком цртани облик" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Кликните левим тастером да цртате основном бојом, кликните десним тастером " "да цртате споредном бојом." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Прелијте" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Кликните и превуците да исцртате прелив од основне до споредне боје. " "Кликните десним тастером да преокренете." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Линијски прелив" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Линијски одбијени прелив" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Линијски дијамантски прелив" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Кружни прелив" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Купасти прелив" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Изаберите ласо" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Кликните и превуците да исцртате контуру за област избора." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Изаберите чаробним штапићем" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Кликните да изаберете област сличне боје." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Кликните левим тастером и превуците избор да померите изабрани садржај. " "Кликните десним тастером и превуците избор да заокренете изабрани садржај." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Преместите избор" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Кликните левим тастером и превуците избор да померите обрис избора. Кликните " "десним тастером и превуците избор да заокренете обрис избора." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Четкица" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Врста" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Кантица са бојом" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Померајте" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Кликните и превуците да идете до слике." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Поново обоји" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Изаберите квадрат" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Кликните и превуците да исцртате правоугаони избор. Држите помак да " "ограничите на квадрат." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Правоугаоник" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Заобљени правоугаоник" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Текст" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Текст — Доврши" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Кликните левим тастером да поставите курсор, затим упишите жељени текст. " "Боја текста је основна боја." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Слова" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Подебљано" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Искошено" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Подвучено" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Лево поравнање" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Поравнање по средини" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Десно поравнање" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Стил текста" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Обично и контура" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Позадина испуне" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ширина контуре" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Смањите величину контуре" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Повећајте величину контуре" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Кликните левим тастером да увећате. Кликните десним тастером да умањите. " "Кликните и превуците да поставите избор у први план." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Промени величину палете" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Нова величина палете:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Да сачувам измене на слици „{0}“ пре затварања?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Уколико не сачувате, све измене ће бити трајно изгубљене." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Сними екран" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Застој пре снимања екрана (у секундама):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Датотеке слика" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Сачувај датотеку слике" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Пинта не подржава чување слика у овом запису." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Не могу да сачувам датотеку само за читање." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Слика је превелика" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ИЦО датотеке не могу бити веће од 255 x 255 тачкица." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Датотека под називом „{0}“ већ постоји. Да ли желите да је замените?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Већ постоји датотека у „{1}“. Уколико је замените преписаћете њен садржај." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Провидност слоја" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Преименуј слој" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Сакриј слој" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Прикажи слој" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Својства слоја" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Заокрени / Зумирај слој" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Доприносиоци овом издању:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Претходни доприносиоци:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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/~lipek\n" " Никола Павловић https://launchpad.net/~nikola825" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Преводиоци:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Засновано на раду „Paint.NET“-а:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Користи неке иконице из:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Погони га Моно:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "О Пинти" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Подаци о издању" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Издање" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Дозвола" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Програм је издат под дозволом МИТ Икс11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Ауторска права" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "доприносиоци Пинте" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Појединости" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "ЈПЕГ квалитет" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Квалитет: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Назив:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Видљив" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Режим стапања" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Непровидност:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Ширина:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "тачкица" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Висина:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Наслов" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Путања" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Сакриј" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прикачив" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плутајуће" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Сам сакриј" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Задржи однос размере" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Усидри:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "број нити за исцртавање" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Датотека" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Уређивање" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Преглед" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Слика" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "Сл_ојеви" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Доте_ривања" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Дејст_ва" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Додаци" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Прозор" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Прозор алата" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "По_моћ" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Назив опције" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Платно" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Историјат" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Слојеви" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Слике" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Алати" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Понашање ивица" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Више избора:\n" "\n" #: 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 "Потребно је: {0} в{1}, нађох в{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Недостаје: {0} v{1}" #: 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] "Доступна је {0} доградња" msgstr[1] "Доступне су {0} доградње" msgstr[2] "Доступно је {0} доградњи" #: 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 "Дошло је до изузетка: {0}" #: 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.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 "(обезбеђује га {0})" pinta-1.6/po/hi.po0000664000175000017500000016233112474707515015227 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:02+0000\n" "Last-Translator: oranges \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "फिर करें" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "काटो" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "चमक" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "स्वचालित समतल" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "काला और सफेद" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "चमक / कंट्रास्ट" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "वक्र" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "रंग उलटें" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "स्तर" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "पोस्टरैज" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "सीपिया" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "लाल" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "हरा" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "नीला" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "जूड़ा हुआ" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "शोरगुल जोडें" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "शोर" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "विकृतियाँ" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "बादल" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "प्रस्तुत करना" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "किनारा पकड़" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "शैली के अनुरूप बनाये" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "एम्बोज़" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "टुकड़ा" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "टुकड़ा" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "गॉसियन फ़ीका" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "चित्र" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "स्याही प्रारूप" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "कलाकारी" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "जूलिया फ्ऱैक्टल" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "मेडियन" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "गति धुंधला" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "तेल चित्रकारी" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "बाहरी रूपरेखा" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "पेंसिल से बनाये" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "पीक्सेलते" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "लाल आँख हटाये" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "शोर घटाए" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "आराम" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "तेज करें" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "टाइल झलक" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "ध्यान हटाये" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "जूम धुंधला" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "आरजीबी" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "चमक" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(२५६, २५६)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "पुनः स्थापित करो" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "सलाह : संयम बिंदु हटाने के लिए दाहिने दबाये" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "इनपुट" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "आउटपुट" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "प्रमुख रंग चुनें" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "द्वितीयक रंग चुनें" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "प्रतिरूपण उपकरण" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "चतुर्भुज चुनें" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "चतुर्भुज" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Manish Sinha (मनीष सिन्हा) https://launchpad.net/~manishsinha\n" " oranges https://launchpad.net/~psharmagt421c" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/af.po0000664000175000017500000015760412474707515015224 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto Vlak" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Swart en Wit" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Helderheid / Kontras" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurves" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Vlakke" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Vlak Verstelling" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rooi" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Groen" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blou" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Gekoppel" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Wolke" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Oorplasing diagram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Ligsterkte" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rooi " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blou " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Herset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Wenk: Klik regs om die kontrole punte te verwyder" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Invoer Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Invoer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Uitset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Uitset Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Fritz https://launchpad.net/~fritzlubbe" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/it.po0000664000175000017500000020542112474707515015241 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:04+0000\n" "Last-Translator: Cameron White \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gestore Add-in" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Annulla" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Ripristina" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Taglia" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copia" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copia Fusa" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Incolla" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Incolla in un nuovo livello" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Incolla in una nuova immagine" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Elimina selezione" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Riempi selezione" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverti la selezione" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Seleziona tutto" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deseleziona tutto" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Apri..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Salva con nome..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Ripristina originale" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Imposta numero di colori" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Tavolozza" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Elimina la selezione" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deseleziona" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Apri Tavolozza" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "File Tavolozza (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Tutti i file" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Errore" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Salva Tavolozza" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Tavolozza Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Tavolozza GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Informazioni su Pinta" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Ritaglia la selezione" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Autoritaglio" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Ridimensiona Immagine..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Ridimensiona la superficie..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Ribalta orizzontalmente" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Ribalta verticalmente" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Ruota di 90° in senso orario" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Ruota di 90° in senso antiorario" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Ruota di 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Appiattisci" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Aggiungi nuovo livello" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Elimina livello" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplica livello" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Unisci al livello sottostante" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importa dal file..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Ruotare / Zoom Livello..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Sposta il livello in alto" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Sposta il livello in basso" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Proprietà Livello..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Apri immagine" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importa da file" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Ingrandisci" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Riduci" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Adatta alla pagina" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Ingrandisci alla selezione" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Dimensione normale" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra degli strumenti" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Griglia dei pixel" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Righello" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixel" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Pollici" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Schermo intero" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Finestra" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unità di misura" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Strumento" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Scorciatoia" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Mescola normale" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Sovrascrivi" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Attiva Antialiasing" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Disattiva Antialiasing" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Livello" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copia" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Ridimensiona dimensioni" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Sposta i pixel selezionati" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Immagine più grande della dimensione della superficie" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Espandi la superificie" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Non cambiare la dimensione della superficie" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "L'immagine non può essere incollata" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Gli appunti non contengono un'immagine." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Sostituisci" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unisci (+) (Control + Tasto Sinistro)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Escludi (-) (Tasto Destro)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Control + Tasto Destro)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersezione (Maiusc + Tasto Sinistro)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Modo di Selezione: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normale" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Moltiplica" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additivo" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Brucia colore" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Slava colore" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Rifletti" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Luminosità" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sovrapposizione" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Differenza" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Inversione" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Schiarisci" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Scurisci" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Schermo" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finisci pixel" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Ridimensiona immagine" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} immagine ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Effetti di rendering" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nessuno strumento selezionato." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Immagine non salvata {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Sfondo" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nuova immagine" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Apri immagine" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permesso negato" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossibile aprire il file: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Livelli automatici" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Bianco e nero" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Luminosità / Contrasto" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Luminosità" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrasto" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curve" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Tonalità / Saturazione" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverti i colori" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Livelli" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizza" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Seppia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Regolazione livelli" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rosso" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verde" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blu" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Collegato" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Aggiungi disturbo" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Disturbo" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensità" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturazione colore" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Copertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Rigonfiamento" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsione" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Quantità" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Scostamento" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nuvole" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderizza" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Potenza" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Seme" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Rileva bordi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizza" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angolo" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Rilievo" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Frammentazione" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Sfocature" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Frammenti" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distanza" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotazione" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Vetro ghiacciato" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Sfocatura Gaussiana" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Raggio" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Schizzo di inchiostro" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistici" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Bordo ad inchiostro." #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colorazione" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Frattale Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Fattore" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualità" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Ingrandimento" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Frattale Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentile" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Sfocatura movimento" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrato" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pittura ad olio" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Dimensione pennello" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Ruvidezza" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorno" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Spessore" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Schizzo a matita" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Dimensioni della punta della matita" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Intervallo di colore" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Mosaico" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Dimensione cella" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversione polare" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Sfocatura radiale" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Rimozione occhi rossi" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolleranza" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Riduci disturbo" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Forza" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Rilievo" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Nitidezza" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Ammorbidire il ritratto" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Morbidezza" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Illuminazione" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Calore" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Riflessione di piastrelle" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Dimensione della piastrella" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Twist" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Anti-Aliasing" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Sfoca" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centra Offset" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Sfocatura zoom" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mappa di trasferimento" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosità" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rosso " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blu " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Azzera" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" "Suggerimento: fai Click con il tasto destro per rimuovere i punti di " "controllo." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Istogramma di partenza" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Risultato" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Istogramma dell'output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Scegli il Colore Primario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Scegli il Colore Secondario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Scegli Tavolozza dei Colori" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Clicca per ruotare tra il colore primario e quello secondario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Clicca per selezionare i colori primario e secondario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Clicca per selezionare il colore primario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Clicca per selezionare il colore secondario" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Click sinistro per settare il colore primario. Click destro per settare il " "colore secondario. Click centrale per scegliere la paletta dei colori" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Livello Mostrato" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Livello Nascosto" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cerchi" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Griglia" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Schizzo" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Quadrati" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Dimensione pennello" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Diminuisci la dimensione del pennello" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Aumenta la dimensione del pennello" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Stile di riempimento" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Solo contorno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Forma piena" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Contorno e forma piena" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellisse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Timbro clone" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Selettore colore" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Campionamento" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Singolo punto" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Regione di 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Regione di 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Regione di 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Regione di 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Immagine" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Dopo la selezione" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Non cambiare strumento" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Passa allo strumento precedente" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Passa alla matita" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Matita" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Selezione ellittica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Premi e trascina per disegnare una sezione ellittica. Tieni premuto Maiusc " "per forzare un cerchio." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gomma" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Modo riempimento" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contiguo" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globale" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma a mano libera" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Sfumatura" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Sfumatura lineare" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Sfumatura lineare riflessa" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Sfumatura a diamante lineare" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Sfumatura radiale" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Sfumatura conica" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Selezione libera" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Seleziona la bacchetta magica" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Fare click in una regione di colore simile." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Muovi selezione" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Premi il tasto sinistro e trascina la selezione per traslare il contorno " "della selezione. Premi il tasto destro e trascina la selezioneper ruotare il " "contorno della selezione." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pennello" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipo" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Secchiello" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Clicca e trascina per muoverti nell'immagine." #: ../Pinta.Tools/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 per disegnare a mano libera linee di un punto di larghezza " "col colore primario. Tasto destro per usare il colore secondario." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Ricolora" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Selezione rettangolare" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Premi e trascina per disegnare una selezione rettangolare. Tieni premuto " "Maiusc per forzare un quadrato." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rettangolo" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rettangolo arrotondato" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Testo" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Carattere" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Grassetto" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Corsivo" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Sottolineato" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Allinea a sinistra" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Allinea al centro" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Allinea a destra" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Stile di testo" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normale e contornato" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Riempi Sfondo" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Larghezza contorno" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Diminuire dimensione contorno" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Aumentare dimensione contorno" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ridimensiona Tavolozza" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nuova dimensione Tavolozza:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Salvare i cambiamenti all'immagine \"{0}\" prima di chiudere?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Cattura Schermata" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Ritardo prima di catturare lo schermo (secondi):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "File di immagini" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Salva immagine" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta non supporta il salvataggio in questo formato di file." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Impossibile salvare file di sola lettura." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Immagine troppo grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacità del livello" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Rinomina livello" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Nascondi livello" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Mostra livello" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Proprietà del livello" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Ruotare / Zoom Livello" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Collaboratori a questa versione:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Collaboratori precedenti:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\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" " Federico Mameli https://launchpad.net/~piratapopo\n" " Guybrush88 https://launchpad.net/~guybrush\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Kabir94 https://launchpad.net/~kabirsala\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" " andrea venturi https://launchpad.net/~be17068\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" " sgargel https://launchpad.net/~sgargel\n" " simone.sandri https://launchpad.net/~lexluxsox\n" " tommaso scappini https://launchpad.net/~tommasoscappini" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Tradotto da:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basato sul lavoro di Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Utilizzando delle icone da:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "A proposito di Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informazioni sulla versione" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versione" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenza" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Rilasciato sotto la licenza MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "dai collaboratori di Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Dettagli" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualità JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualità: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nome:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visibile" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Modalità fusione" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacità:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Larghezza:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altezza:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titolo" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Percorso" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Nascondi" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Agganciabile" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Fluttuante" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Nascondi automaticamente" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Aggancia" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "numero di processi usati per la renderizzazione" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Modifica" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Visualizza" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Immagine" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Livelli" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Regolazioni" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Effetti" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Finestra" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Finestre Strumenti" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Guida utente" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Opzioni Nome" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Superficie" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Cronologia" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Livelli" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Immagini" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Strumenti" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportamento dei bordi" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Selezione multipla:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Attiva" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Disattiva" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Nessuna selezione" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Disponibile nel repository:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Aggiornamento disponibile" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" "Questo add-in non può essere caricato a causa di una o più dipendenza " "mancante" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Richiesto: {0} v{1}, trovato v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Mancante: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Versione installata" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Versione repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Dimensione del download" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Le seguenti dipendenze richieste da questo add-in non sono disponibili:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installazione annullata" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Qualche add-in richiesto non è stato trovato" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installazione fallita" #: 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 "Installato" #: 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 "Aggiornamenti" #: 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 "Galleria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Tutti i repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Gestisci repository..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} aggiornamento disponibile" msgstr[1] "{0} aggiornamenti disponibili" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Aggiornamento repository" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Installa pacchetto add-in" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Pacchetti add-in" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nessun add-in trovato" #: 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 "Altro" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Disinstalla" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "I seguenti pacchetti verranno disinstallati:" #: 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 "" "Ci sono altri add-in che dipendono da uno precedente e che verranno " "disinstallati:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "I seguenti add-in non possono essere installati perché ci sono conflitti " "nelle dipendenze." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "I seguenti pacchetti verranno installati:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (nella cartella utente)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "È necessario disinstallare i seguenti pacchetti:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Impossibile risolvere le seguenti dipendenze:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Sicuri di voler annullare l'installazione?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Installazione Add-in" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Installazione fallita!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "L'installazione è terminata con degli avvisi." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Disinstalla Add-in" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "La disinstallazione è fallita!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "La disinstallazione è terminata con degli avvisi." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registrazione 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 "Eccezione occorsa: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Maggiori informazioni" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installa..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Aggiorna" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Disinstalla..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" "Sono necessarie estensioni aggiuntive per eseguire questa operazione." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "I seguenti add-in saranno installati:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Aggiornamenti non trovati" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Aggiorna" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Aggiorna Tutto" #: 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 "Installa da file..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installa" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gestione repository degli add-in" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Aggiungi un nuovo repository" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Scegli la posizione del repository che vuoi registrare:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registra un repository on-line" #: 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 repository locale" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Percorso:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Sfoglia..." #: 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 "(fornito da {0})" pinta-1.6/po/Makefile0000664000175000017500000003304212474707543015724 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.6 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/PintaProject/Pinta/install-sh # Automake >= 1.8 provides $(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)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = af ar ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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 \ ../Pinta.Core/Actions/AddinActions.cs \ ../Pinta.Core/Actions/EditActions.cs \ ../Pinta.Core/Actions/FileActions.cs \ ../Pinta.Core/Actions/HelpActions.cs \ ../Pinta.Core/Actions/ImageActions.cs \ ../Pinta.Core/Actions/LayerActions.cs \ ../Pinta.Core/Actions/ViewActions.cs \ ../Pinta.Core/Actions/WindowActions.cs \ ../Pinta.Core/Classes/BaseTool.cs \ ../Pinta.Core/Classes/Document.cs \ ../Pinta.Core/Classes/DocumentWorkspace.cs \ ../Pinta.Core/Classes/SelectionModeHandler.cs \ ../Pinta.Core/Effects/UserBlendOps.cs \ ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs \ ../Pinta.Core/HistoryItems/InvertHistoryItem.cs \ ../Pinta.Core/HistoryItems/PasteHistoryItem.cs \ ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs \ ../Pinta.Core/ImageFormats/FormatDescriptor.cs \ ../Pinta.Core/Managers/EffectsManager.cs \ ../Pinta.Core/Managers/LivePreviewManager.cs \ ../Pinta.Core/Managers/ToolManager.cs \ ../Pinta.Core/Managers/WorkspaceManager.cs \ ../Pinta.Effects/Adjustments/AutoLevelEffect.cs \ ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs \ ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs \ ../Pinta.Effects/Adjustments/CurvesEffect.cs \ ../Pinta.Effects/Adjustments/HueSaturationEffect.cs \ ../Pinta.Effects/Adjustments/InvertColorsEffect.cs \ ../Pinta.Effects/Adjustments/LevelsEffect.cs \ ../Pinta.Effects/Adjustments/PosterizeEffect.cs \ ../Pinta.Effects/Adjustments/SepiaEffect.cs \ ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs \ ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs \ ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs \ ../Pinta.Effects/Effects/AddNoiseEffect.cs \ ../Pinta.Effects/Effects/BulgeEffect.cs \ ../Pinta.Effects/Effects/CloudsEffect.cs \ ../Pinta.Effects/Effects/EdgeDetectEffect.cs \ ../Pinta.Effects/Effects/EmbossEffect.cs \ ../Pinta.Effects/Effects/FragmentEffect.cs \ ../Pinta.Effects/Effects/FrostedGlassEffect.cs \ ../Pinta.Effects/Effects/GaussianBlurEffect.cs \ ../Pinta.Effects/Effects/GlowEffect.cs \ ../Pinta.Effects/Effects/InkSketchEffect.cs \ ../Pinta.Effects/Effects/JuliaFractalEffect.cs \ ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs \ ../Pinta.Effects/Effects/MedianEffect.cs \ ../Pinta.Effects/Effects/MotionBlurEffect.cs \ ../Pinta.Effects/Effects/OilPaintingEffect.cs \ ../Pinta.Effects/Effects/OutlineEffect.cs \ ../Pinta.Effects/Effects/PencilSketchEffect.cs \ ../Pinta.Effects/Effects/PixelateEffect.cs \ ../Pinta.Effects/Effects/PolarInversionEffect.cs \ ../Pinta.Effects/Effects/RadialBlurEffect.cs \ ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs \ ../Pinta.Effects/Effects/ReduceNoiseEffect.cs \ ../Pinta.Effects/Effects/ReliefEffect.cs \ ../Pinta.Effects/Effects/SharpenEffect.cs \ ../Pinta.Effects/Effects/SoftenPortraitEffect.cs \ ../Pinta.Effects/Effects/TileEffect.cs \ ../Pinta.Effects/Effects/TwistEffect.cs \ ../Pinta.Effects/Effects/UnfocusEffect.cs \ ../Pinta.Effects/Effects/WarpEffect.cs \ ../Pinta.Effects/Effects/ZoomBlurEffect.cs \ ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs \ ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs \ ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs \ ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs \ ../Pinta.Tools/Brushes/CircleBrush.cs \ ../Pinta.Tools/Brushes/GridBrush.cs \ ../Pinta.Tools/Brushes/PlainBrush.cs \ ../Pinta.Tools/Brushes/SplatterBrush.cs \ ../Pinta.Tools/Brushes/SquaresBrush.cs \ ../Pinta.Tools/Dashes/DashPatternBox.cs \ ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs \ ../Pinta.Tools/Tools/BaseBrushTool.cs \ ../Pinta.Tools/Tools/CloneStampTool.cs \ ../Pinta.Tools/Tools/ColorPickerTool.cs \ ../Pinta.Tools/Tools/EllipseSelectTool.cs \ ../Pinta.Tools/Tools/EllipseTool.cs \ ../Pinta.Tools/Tools/EraserTool.cs \ ../Pinta.Tools/Tools/FloodTool.cs \ ../Pinta.Tools/Tools/FreeformShapeTool.cs \ ../Pinta.Tools/Tools/GradientTool.cs \ ../Pinta.Tools/Tools/LassoSelectTool.cs \ ../Pinta.Tools/Tools/LineCurveTool.cs \ ../Pinta.Tools/Tools/MagicWandTool.cs \ ../Pinta.Tools/Tools/MoveSelectedTool.cs \ ../Pinta.Tools/Tools/MoveSelectionTool.cs \ ../Pinta.Tools/Tools/PaintBrushTool.cs \ ../Pinta.Tools/Tools/PaintBucketTool.cs \ ../Pinta.Tools/Tools/PanTool.cs \ ../Pinta.Tools/Tools/PencilTool.cs \ ../Pinta.Tools/Tools/RecolorTool.cs \ ../Pinta.Tools/Tools/RectangleSelectTool.cs \ ../Pinta.Tools/Tools/RectangleTool.cs \ ../Pinta.Tools/Tools/RoundedRectangleTool.cs \ ../Pinta.Tools/Tools/SelectShapeTool.cs \ ../Pinta.Tools/Tools/ShapeTool.cs \ ../Pinta.Tools/Tools/TextTool.cs \ ../Pinta.Tools/Tools/ZoomTool.cs \ ../Pinta/Actions/Edit/ResizePaletteAction.cs \ ../Pinta/Actions/File/CloseDocumentAction.cs \ ../Pinta/Actions/File/NewScreenshotAction.cs \ ../Pinta/Actions/File/OpenDocumentAction.cs \ ../Pinta/Actions/File/SaveDocumentImplementationAction.cs \ ../Pinta/Actions/Layers/LayerPropertiesAction.cs \ ../Pinta/Actions/Layers/RotateZoomLayerAction.cs \ ../Pinta/AddinSetupService.cs \ ../Pinta/Dialogs/AboutDialog.cs \ ../Pinta/Dialogs/AboutPintaTabPage.cs \ ../Pinta/Dialogs/ErrorDialog.cs \ ../Pinta/Dialogs/JpegCompressionDialog.cs \ ../Pinta/Dialogs/LayerPropertiesDialog.cs \ ../Pinta/Dialogs/NewImageDialog.cs \ ../Pinta/Dialogs/ResizeCanvasDialog.cs \ ../Pinta/Dialogs/ResizeImageDialog.cs \ ../Pinta/Dialogs/VersionInformationTabPage.cs \ ../Pinta/DockLibrary/DockItem.cs \ ../Pinta/DockLibrary/DockItemContainer.cs \ ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs \ ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs \ ../Pinta/Main.cs \ ../Pinta/MainWindow.cs \ ../Pinta/Options.cs \ ../Pinta/Pads/CanvasPad.cs \ ../Pinta/Pads/ColorPalettePad.cs \ ../Pinta/Pads/HistoryPad.cs \ ../Pinta/Pads/LayersPad.cs \ ../Pinta/Pads/OpenImagesPad.cs \ ../Pinta/Pads/ToolBoxPad.cs CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat AM_DEFAULT_VERBOSITY = 1 INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-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.6/po/sv.po0000664000175000017500000017750312474707515015266 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-25 05:29+0000\n" "Last-Translator: Cameron White \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Tilläggshanterare" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Ångra" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Gör om" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Klipp ut" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiera" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Klistra in" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Klistra in i nytt lager" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Klistra in i ny bild" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Ta bort markering" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fyll markering" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertera markering" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Markera allt" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Avmarkera allt" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Öppna..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Spara som..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Återställ till standard" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Ställ in antal färger" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palett" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Sudda ut markering" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Avmarkera" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Öppna palettfil" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettfiler (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Alla filer" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fel" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Spara palettfil" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-palett (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP-palett (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Om" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Ändra storlek på bilden..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Ändra storlek på rityta..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Vänd horisontellt" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Vänd vertikalt" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotera 90° medurs" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotera 90° moturs" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotera 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Tillplatta" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Lägg till nytt lager" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Radera lager" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicera lager" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Sammanfoga lager nedåt" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importera från fil..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotera / Zooma in lager" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Flytta lager uppåt" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Flytta lager nedåt" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Lagerinställningar..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Öppna bildfil" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importera från fil" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zooma in" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zooma ut" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Bästa passning" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zooma till markering" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal storlek" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Verktygsrad" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Bildpunktsrutnät" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linjaler" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Bildpunkter" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tum" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Helskärm" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fönster" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Linjalenheter" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Verktyg" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Genvägstangent" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal blandning" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Skriv över" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Kantutjämning på" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Kantutjämning av" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lager" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiera" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Ändra storlek på rityta" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Flytta markerade bildpunkter" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Förstora ritytan" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ändra inte storleken på ritytan" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Bild kan inte klistras in" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Urklipp innehåller inte en bild." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Ersätt" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exkludera (-) (Högerklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Högerklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplicera" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Spegla" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glöd" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Överlägg" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Skillnad" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Ljusare" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Mörkare" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Skärm" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Avsluta bildpunkter" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Ändra bildstorlek" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0}-bild ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Renderingseffekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Inget verktyg valt." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Osparad bild {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Bakgrund" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Ny bild" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Öppna bild" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Åtkomst nekad" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Kunde inte öppna filen: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Autonivå" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Svartvitt" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Ljusstyrka / kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Ljusstyrka" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurvor" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Nyans / mättnad" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertera färger" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivåer" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterisera" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Nivåjustering" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Röd" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grön" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blå" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Länkad" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Lägg till brus" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Brus" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Färgmättnad" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Täckning" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bukta" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Förvräng" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Mängd" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Kompensation" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Moln" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Rendera" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Styrka" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Seeda" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Kantupptäckt" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilisera" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Vinkel" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Ciselera" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Oskärpa" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Avstånd" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frostat glas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussisk oskärpa" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radie" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Bläckskiss" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Konstnärlig" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Bläckkontur" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Färgläggning" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalitet" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zooma" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Rörelseoskärpa" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrerad" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oljemålning" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penselstorlek" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grovhet" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Konturera" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tjocklek" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Blyertsskiss" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Pennspetsstorlek" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Färgområde" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelera" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cellstorlek" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polär inversion" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiell oskärpa" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Ta bort röda ögon" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerans" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reducera brus" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Styrka" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Gör relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Gör skarpare" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Mjuka upp porträtt" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mjukhet" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Ljussättning" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Värme" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Kakelreflektion" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Kakelstorlek" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Vrid" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Kantutjämning" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ofokusera" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centrera kompensation" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoomoskärpa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Överföringskarta" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminositet" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Röd " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blå " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Återställ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tips: Högerklicka för att ta bort kontrollpunkter." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Inmatningshistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Inmatning" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Utmatning" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Utmatningshistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Välj primär färg" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Välj sekundär färg" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Välj palettfärg" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klicka för att byta mellan primär och sekundär färg." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klicka för att välja primär färg." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klicka för att välja sekundär färg." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Vänsterklicka för att ange primär färg. Högerklicka för att ange sekundär " "färg. Mittenklicka för att välja palettfärg." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Lager synligt" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Lager dolt" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cirklar" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Rutnät" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Splatter" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Rutor" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Penselbredd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Minska penselstorlek" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Öka penselstorlek" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fyllningsstil" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Konturera form" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fyll form" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fyll och konturera form" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonstämpel" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Färghämtare" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Bild" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Efter val" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Växla inte verktyg" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Växla till föregående verktyg" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Växla till pennverktyget" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Penna" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipsmarkering" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Suddgummi" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Flödesläge" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Sammanhängande" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Fri form" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linjär gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linjär reflekterad gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linjär diamantgradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiell gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konisk gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lassomarkering" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Trollspömarkering" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klicka för att markera ett område med liknande färg." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytta markering" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pensel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Typ" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Färghink" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Panorera" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klicka och dra för att navigera bilden." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Omfärga" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rektangelmarkering" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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 rektangulär markering (högerklicka för " "sekundär färg). Håll ned Shift för att göra en kvadrat." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rektangel" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rundad rektangel" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Typsnitt" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Fet" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Understruken" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Vänsterjustera" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Centrera" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Högerjustera" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Text stil" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal och Konturlinje" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fyll bakgrund" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Bredd på konturlinje" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Minska konturlinje" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Öka konturlinje" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Ändra palettstorlek" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Ny palettstorlek:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Spara ändringarna i bilden \"{0}\" innan du avslutar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Ta en skärmbild" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Fördröjning före en skärmbild tas (sekunder):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Bildfiler" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Spara bildfil" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta stöder inte sparande av bilder i detta filformat." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Kan inte spara skrivskyddad fil." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Bild är för stor" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO-filer kan inte vara större än 255 x 255 pixlar." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Lageropacitet" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Döp om lager" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Dölj lager" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Visa lager" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Lageregenskaper" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotera / zooma lager" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Bidragsgivare till denna utgåva:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Föregående bidragsgivare:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Daniel Nylander https://launchpad.net/~yeager\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\n" " jstfaking https://launchpad.net/~jstfaking" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Översatt av:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Baserat på arbetet med Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Använder en del ikoner från:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Om Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versionsinfo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licens" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Släppt under MIT X11 License." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Upphovsrätt" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "av Pinta-bidragsgivare" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Detaljer" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalitet: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Namn:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Synlig" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blandningsläge" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacitet:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Bredd:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "bildpunkter" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Höjd:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Sökväg" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Dölj" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockningsbar" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flytande" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Autodölj" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Docka" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "antal trådar att använda för rendering" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Arkiv" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "R_edigera" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Visa" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "B_ild" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Lager" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Justeringar" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Effekter" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fönster" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Verktygsfönster" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Hjälp" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Alternativnamn" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historik" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lager" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Bilder" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Verktyg" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kantbeteende" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Flera markeringar:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Aktivera" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Inaktivera" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Ingen markering" #: 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 "Uppdatering tillgänglig" #: 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 "Krävs: {0} v{1}, found v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Saknar: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Installerad version" #: 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 "Nedladdningsstorlek" #: 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 "Installationen avbröts" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Några av de nödvändiga tilläggen kunde inte hittas" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installationen misslyckades" #: 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 "Installerad" #: 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 "Uppdateringar" #: 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 "Galleri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Alla förråd" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Hantera förråd..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} uppdatering tillgänglig" msgstr[1] "{0} uppdateringar tillgängliga" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Uppdaterar förråd" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Installera tilläggspaket" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Tilläggspaket" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Inga tillägg hittades" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Tillägg" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Övrigt" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Avinstallera" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Följande paket kommer att avinstalleras:" #: 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 "Följande paket kommer att installeras:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (i användarkatalog)" #: 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 "Är du säker på att du vill avbryta installationen?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Installerar tillägg" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Installationen misslyckades!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Installationen färdigställdes med varningar." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Avinstallerar tillägg" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Avinstallationen misslyckades!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Avinstallationen färdigställdes med varningar." #: 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 "Undantag inträffade: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Mer information" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installera..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Uppdatera" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Avinstallera..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Ytterligare tillägg krävs för att genomföra denna åtgärd." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Följande tillägg kommer att installeras:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Inga uppdateringar hittades" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Uppdatera" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Uppdatera alla" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Förråd:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Installera från fil..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installera" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Hanterare för tilläggsförråd" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Lägg till nytt förråd" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Välj platsen för förrådet som du vill registrera:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registrera ett förråd på nätet" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "Webbadress:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Registrera ett lokalt förråd" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Sökväg:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Bläddra..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Förlopp" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(tillhandahålls av {0})" pinta-1.6/po/sq.po0000664000175000017500000015731712474707515015262 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-05-19 03:17+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Bardh e Zi" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverto ngjyrat" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivelet" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "e kuqe" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "e gjelbër" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blu" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "e Kuqe " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blu " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Lulzim https://launchpad.net/~lulzimbilali" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/nn.po0000664000175000017500000016271212474707515015245 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Flytt valgte piksler" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Vanleg" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glød" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatisk nivå" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Svart/kvit" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Lysstyrke / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurver" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Fargetone / Metning" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Snu om fargane" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivå" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterisering" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Bruntone (sepia)" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Nivå tilpassing" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Raud" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grøn" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blå" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Kopla" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Støy" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Skyer" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Rendre" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Oppdag kantar" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylize" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Utydeligjer" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "frosta glas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Bilete" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Kunstnarleg" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oljemåleri" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Blyantskisse" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikseller" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Fjern raude auge" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Toleranse" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduser støy" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Gjer skarpare" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Endre fokus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Overføringskart" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lysstyrke" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Raud " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blå " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Tilbakestill" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tips: Høgreklikk for å fjerna kontrolpunkt." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogram inndata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Inndata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Utdata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogram utdata" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatisk" #: ../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:106 msgid "Choose Primary Color" msgstr "Velg primærfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Velg sekundærfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Velg palettfarge" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonestempel" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+ventre museklikk for å setje utgangspunkt, venstre museklikk for " "å teikne." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Fargeveljar" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Etter utval" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ikkje byt verktøy" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Byt til det forje verktøyet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Byt til blyant-verktøyet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Blyant" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipseutval" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Viskelær" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Flodmodus" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Samanhengande" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globalt" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Fargeovergang" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineær gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineær gradient med refleksjon" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Diamantformet gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kjegleformet gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magisk utvalsstav" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klikk for å velje utval av samme farge" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flytt utvalet" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Målarpensel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Malingsbøtte" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Panorér" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikk og dra for å navigere i bildet." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Endre farge" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rektangelutval" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rektangel" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Avrunda firkant" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Skrifttype" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Feit" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Understreka" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Venstrejuster" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Senterjuster" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Høyrejuster" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Tekststil" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal og uthevet" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/en_GB.po0000664000175000017500000020411612474707515015577 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-27 21:54+0000\n" "Last-Translator: Anthony Harrington \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Easily create and edit images" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Image Editor" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Add-in Manager" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Undo" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Redo" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cut" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copy" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copy Merged" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Paste" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Delete Selection" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fill Selection" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invert Selection" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Select All" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deselect All" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Open..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Save As..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reset to Default" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Set Number of Colours" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palette" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Erase Selection" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deselect" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Open Palette File" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "All files" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Save Palette File" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "About" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Resize Image..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Flip Horizontally" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Flip Vertically" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Anti-Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotate 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Flatten" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Add New Layer" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Delete Layer" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Import from File..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Move Layer Up" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Move Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Layer Properties..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Open Image File" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Import From File" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom In" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom Out" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Best Fit" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal Size" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Toolbar" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixel Grid" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Rulers" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inches" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetres" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fullscreen" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Window" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Ruler Units" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Tool" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Shortcut key" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal Blending" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overwrite" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiasing On" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Layer" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copy" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Resize Canvas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expand canvas" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Replace" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Union (+) (Ctrl + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclude (-) (Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersect (Shift + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Selection Mode: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiply" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additive" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Colour Burn" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Colour Dodge" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflect" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glow" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Overlay" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Difference" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negation" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Lighten" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Darken" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Screen" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Flip Image Horizontally" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Flip Image Vertically" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Flip Layer Horizontally" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Flip Layer Vertically" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Resize Image" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Rendering Effect" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "No tool selected." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Background" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "New Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Unsupported file format" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Open Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permission denied" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto Level" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Black and White" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brightness" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curves" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Hue" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Lightness" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invert Colours" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Levels" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterise" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Red" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Green" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blue" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Linked" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Add Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensity" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Colour Saturation" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Coverage" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bulge" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distort" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Amount" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Offset" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Clouds" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Render" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scale" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Power" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Seed" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Edge Detect" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylise" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Emboss" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Blurs" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distance" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frosted Glass" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Photo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Ink Sketch" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Ink Outline" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colouring" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia Fractal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Quality" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentile" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Motion Blur" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centred" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oil Painting" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Brush Size" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Coarseness" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Outline" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Thickness" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Colour Range" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelate" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cell Size" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polar Inversion" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radial Blur" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Red Eye Removal" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Saturation Percentage" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduce Noise" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Strength" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Sharpen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Soften Portrait" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Softness" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Lighting" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Warmth" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tile Reflection" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tile Size" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Twist" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Unfocus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Clamp" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Wrap" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primary" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secondary" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparent" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centre Offset" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom Blur" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transfer Map" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosity" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Red " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blue " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Reset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Input Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Output Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Choose Primary Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Choose Secondary Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Choose Palette Colour" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Click to switch between primary and secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Click to reset primary and secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Click to select primary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Click to select secondary colour." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Left click to set primary colour. Right click to set secondary colour. " "Middle click to choose palette colour." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Layer Shown" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Layer Hidden" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Circles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grid" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Splatter" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Squares" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "The Dash" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Arrow" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Decrease arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Increase arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Decrease angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Increase angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Length" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Decrease length offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Increase length offset" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Brush width" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Decrease brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Increase brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fill Style" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fill Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Open Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Closed Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Rounded Line Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Changed Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Point Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Point Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modified" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalised" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Open Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Closed Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Rounded Line Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Decrease shape's corner radius" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Increase shape's corner radius" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Clone Stamp" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Colour Picker" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Sampling" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Single Pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Image" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "After select" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Do not switch tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pencil" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipse Select" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Left click to draw a shape with the primary colour.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalise the shape." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Eraser" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Flood Mode" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contiguous" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Free-form Shape" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linear Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Conical Gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasso Select" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Line/Curve" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Click to select region of similar colour." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Paintbrush" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolour" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Left click to replace the secondary colour with the primary colour. Right " "click to reverse." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rectangle Select" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalise" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Bold" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Italic" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Underline" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Left Align" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Centre Align" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Right Align" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Text Style" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal and Outline" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fill Background" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Outline width" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Decrease outline size" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Increase outline size" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Resize Palette" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "New palette size:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Close _without saving" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Take Screenshot" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Image files" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Save Image File" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Image too large" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 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/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Layer Opacity" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Rename Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Hide Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Show Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Layer Properties" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta Community Addins - Platform-Specific" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta Community Addins - Cross-Platform" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contributors to this release:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Previous contributors:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Anthony Harrington https://launchpad.net/~untaintableangel\n" " Anthony Scarth https://launchpad.net/~maroubal2\n" " Biffaboy https://launchpad.net/~curtisbull\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Logan Rosen https://launchpad.net/~logan\n" " Rafael Neri https://launchpad.net/~rafepel\n" " Thomas Kluyver https://launchpad.net/~takluyver\n" " fossfreedom https://launchpad.net/~fossfreedom\n" " nsx98 https://launchpad.net/~nsx98\n" " saperr.pmi@gmail.com https://launchpad.net/~saperr-pmi" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Translated by:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Using some icons from:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Powered by Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "About Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Version Info" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licence" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 Licence." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Report Bug...." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Quality: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Name:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blend Mode" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacity:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Clipboard" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Custom" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Preset:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Width:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Height:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientation:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Portrait" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Landscape" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Background:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "White" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Background Colour" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Hide" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Auto Hide" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Show this message and exit." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Display the application version." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Usage: pinta [files]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Options: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edit" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_View" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Image" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Layers" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Adjustments" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effe_cts" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "A_dd-ins" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Window" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Tool Windows" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Help" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Canvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "History" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Layers" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Images" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Tools" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Edge Behaviour" #: 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.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.6/po/hu.po0000664000175000017500000020427312474707515015245 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:02+0000\n" "Last-Translator: Tömő Norbert \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Készíts és szerkessz képeket könnyedén" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Képszerkesztő" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta képszerkesztő" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Kiegészítők kezelése" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Visszavonás" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Újra" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Kivágás" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Másolás" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Másolat beolvasztva" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Beillesztés" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Beillesztés új rétegre" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Beillesztés új képként" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Kiválasztás törlése" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Kijelölés kitöltése" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Kijelölés megfordítása" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Összes kijelölése" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Kijelölés megszüntetése" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Megnyitás…" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Mentés másként…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Visszaállítás alapértelmezettre" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Színek számának beállítása" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paletta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Kijelölés törlése" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Kijelölés megszüntetése" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Paletta fájl megnyitása" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletta fájlok (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Minden fájl" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Hiba" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Paletta fájl mentése" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paletta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paletta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Névjegy" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Kép átméretezése…" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Rajzvászon átméretezése…" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Vízszintes tükrözés" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Függőleges tükrözés" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Elforgatás 90°-kal az óramutató irányában" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Elforgatás 90°-kal az óramutató irányával ellentétesen" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Elforgatás 180°-kal" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Rétegek egybeolvasztása" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Új réteg létrehozása" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Réteg törlése" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Réteg duplikálása" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Réteg beolvasztása az alatta lévőbe" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importálás fájlból…" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Réteg forgatása/nagyítása…" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Réteg feljebb mozgatása" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Réteg lejjebb mozgatása" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Réteg tulajdonságai…" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Kép megnyitása" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importálás fájlból" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Nagyítás" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Kicsinyítés" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Legjobb illeszkedés" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Nagyítás a kijelölésre" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normál méret" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Eszköztár" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Képpontrács" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Vonalzók" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Képpontok" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Hüvelyk" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centiméter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Teljes képernyő" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Ablak" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Vonalzó mértékegysége" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Eszköz" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Gyorsbillenytű" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normál átfedés" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Felülírás" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "AA élsímítás be" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "AA élsímítás ki" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Réteg" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "másolás" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Rajzvászon átméretezése" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "A kijelölt képpontok mozgatása" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "A kép nagyobb, mint a vászon" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Rajzvászon kiterjesztése" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ne változtassa a rajzvászon méretét" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "A kép nem illeszthető be" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "A vágólap nem tartalmaz képet." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Csere" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Egyesít (+) (Ctrl + Bal Kattintás)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Leválaszt (-) (Jobb kattintás)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Jobb kattintás)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Metszet (Shift + Bal kattintás)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Kiválasztási mód: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normál" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Többszörözés" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additív" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Színégetés" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Színkikerülés" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Visszaverődés" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Ragyogás" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Rávetítés" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Különbség" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Tagadás" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Világosítás" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Sötétítés" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Kivetítés" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Befejező képpontok" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Kép átméretezése" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} kép ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Effektus renderelése" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nincs kiválasztot eszköz" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nem mentett kép {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Háttér" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Új kép" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Kép megnyitása" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Engedély megtagadva" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nem sikerült a fájl megnyitása: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatikus szintek" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Fekete-fehér" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Fényerő / Kontraszt" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Fényerő" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontraszt" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Görbék" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Színezet / Telítettség" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Színek invertálása" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Szintek" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Poszterizálás" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Szépia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Szintbeállítás" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Vörös" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zöld" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Kék" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Kapcsolva" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Zaj hozzáadása" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Zaj" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenzitás" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Színtelítettséget" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Terjedelem" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Kidudorodás" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Torzítás" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Mennyiség" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Eltolás" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Felhők" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderelés" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Méretarány" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Teljesítmény" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Kezdőérték" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Élek észlelése" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizálás" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Szög" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Domborítás" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Töredék" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Elmosások" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Töredékek" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Távolság" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Elforgatás" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Fagyos üveg" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gauss-elmosás" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Sugár" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fénykép" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Tinta vázlat" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Művészi" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Tinta körvonala" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Színezés" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-fraktál" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Tényező" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Minőség" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Nagyító" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fraktál" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Medián" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Százalékos" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Bemozdulás" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Középen" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olajfestmény" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Ecsetméret" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Durvaság" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Körvonal" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Vastagság" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Ceruzavázlat" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Ceruzahegy-méret" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Színtartomány" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelesítés" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cellaméret" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Poláris inverzió" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Körkörös elmosás" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Vörös szem eltávolítása" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tűrés" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Zaj csökkentése" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Szilárdság" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Dombormű" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Élesítés" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Portré lágyítása" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Lágyság" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Megvilágítás" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Fraktál hőfok" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Mozaik tükröződés" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Csempeméret" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Elcsavarás" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Élsimítás" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Életlenít" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Középpont eltolása" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Nagyítással elmosás" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Átviteli térkép" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Fényesség" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Vörös " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Kék " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Visszaállítás" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tipp: jobb-klikk a kontrollpontok eltávolításához" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Bemeneti hisztogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Bemenet" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Kimenet" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Kimeneti hisztogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatikus" #: ../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:106 msgid "Choose Primary Color" msgstr "Elsődleges szín kiválasztása" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Másodlagos szín kiválasztása" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Színpaletta kiválasztása" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Váltás az elsődleges és másodlagos szín között." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" "Kattints, hogy az elsődleges és másodlagos színeket alapértékekre állísd" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Elsődleges szín kiválasztása" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Másodlagos szín kiválasztása" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Bal kattintás az elsődleges színhez. Jobb kattintás a másodlagos színhez, " "középső a színskála megjelenítéséhez." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Réteg megjelenítése" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Réteg elrejtése" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Körecset" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Rács" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Folt ecset" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Négyzetecset" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Ecsetvastagság" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Csökkenti az ecset méretét" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Növeli az ecset méretét" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Kitöltési stílus" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Alakzat körvonala" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Alakzat kitöltése" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Alakzat kitöltése és körvonala" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipszis" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klónozó bélyegző" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Színválasztó" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Mintavételezés" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Egy képpont" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3x3-as terület" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5x5-ös terület" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7x7-es terület" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9x9-es terület" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Kép" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Kijelölés után" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne váltson eszközt" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Váltás az előző eszközre" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Váltás ceruza eszközre" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Ceruza" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipszis-kijelölés" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Kattints és húzd az egeret az elliptikus kijelöléshez. Tartsd nyomva a shift-" "et a kör alapú kijelöléshez." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Radír" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Elöntés" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Egybefüggő" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Általános" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Szabad alakzat" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Színátmenet" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineáris színátmenet" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineáris tükrözött színátmenet" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Lineáris rombusz színátmenet" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Sugárirányú színátmenet" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kúpos színátmenet" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasszó kijelölés" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Vonal/ív" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Kijelölés varázspálcával" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Kattintson a hasonló színű terület kiválasztásához." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Kijelölés áthelyezése" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Ecset" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Típus" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Festékes vödör" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Kéz eszköz" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Kattintson és húzza a kép navigálásához." #: ../Pinta.Tools/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 klikk rajzolás egy-pixeles vonalakkal szabad-kézzel az elsődleges " "színnel. Jobb klikk a másodlagos színnel." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Átszinező" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Téglalap-kijelölés" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Téglalap" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Lekerekített téglalap" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Szöveg" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Betűtípus" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Félkövér" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Dőlt" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Aláhúzás" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Balra igazítás" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Középre igazítás" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Jobbra igazítás" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Szöveg stílus" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normál és körvonal" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Háttér kitöltése" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Körvonal vastagság" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Csökkenti a körvonal méretét" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Növeli a körvonal méretét" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Paletta átméretezése" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Új palettaméret:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Menti a(z) „{0}” képen végzett változtatásokat?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Képernyőkép készítése" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Várakozás a képernyőmentés előtt (mp):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Képfájlok" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Kép fájl mentése" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "A Pinta nem támogatja ezt a fájlformátumot." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nem menthető a fájl. Csak olvasható." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "A kép túl nagy" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Az ICO fájlok nem lehetnek nagyobbak 255x255 képpontnál." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Rétegátlátszóság" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Réteg átnevezése" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Réteg elrejtése" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Réteg megjelenítése" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Réteg tulajdonságai" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Réteg forgatása/nagyítása" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Jelen kiadás hozzájárulói:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Előzetes hozzájárulók:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Gabor Kelemen https://launchpad.net/~kelemeng\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Mechanick https://launchpad.net/~info-mechanick\n" " Nagy Ákos https://launchpad.net/~e-contact-pecska-ro\n" " Richard Somlói https://launchpad.net/~ricsipontaz\n" " Robert Roth https://launchpad.net/~evfool\n" " Tömő Norbert https://launchpad.net/~tomo-norbert\n" " Vizion-HUN https://launchpad.net/~vizler-k\n" " zoltanlazar https://launchpad.net/~pupileater" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Fordította:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Az alkalmazás a Paint.NET projekten alapul:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Néhány ikon forrása:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pinta névjegye" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Verzióinformáció" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Verzió" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenc" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Kiadva a MIT X11 licenc alatt." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Szerzői jog" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "– Pinta közreműködők" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Részletek" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG minőség" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Minőség: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Név:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Láthatóság" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Keverék mód" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Áttetszőség:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Szélesség:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "képpontok" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Magasság:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Cím" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Elérési út" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Elrejtés" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokkolható" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Lebegő" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatikus elrejtés" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dokkolás" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "a leképezésre használt szállak száma" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fájl" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Szerkesztés" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Nézet" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Kép" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Rétegek" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Korrekciók" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Effektusok" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Ablak" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Eszközablakok" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Súgó" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OpcióNév" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Előzmények" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Rétegek" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Képek" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Eszközök" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Szélek viselkedése" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Válasszon többet:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Engedélyezés" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Tiltás" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Nincs kijelölés" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Elérhető e tárolóból:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Frissítés elérhető" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Ez a kiegészítő nem tölthető be a hiányzó függőségek miatt" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Szükséges: {0} v{1}, megtalálva: v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Hiányzik: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Telepített verzió" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Tárolóban lévő verzió" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Letöltendő méret" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "A kiegészítő által igényelt alábbi függőségek nem érhetők el:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Telepítés megszakítva" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Néhány szükséges bővítmény nem található" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "A telepítés meghiúsult" #: 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 "Telepítve" #: 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 "Frissítések" #: 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 "Galéria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Minden tároló" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Tárolók kezelése…" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} frissítés érhető el" msgstr[1] "{0} frissítés érhető el" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Tároló frissítése" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Kiegészítőcsomag telepítése" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Kiegészítőcsomagok" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Nem találhatók kiegészítők" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Kiegészítő" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Egyéb" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Eltávolítás" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "A következő csomagok kerülnek eltávolításra:" #: 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 "" "Más kiegészítők függenek az előzőktől, ezek szintén eltávolításra kerülnek:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "A kijelölt kiegészítők nem telepíthetők függőségi konfliktusok miatt." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "A következő csomagok kerülnek telepítésre:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (a felhasználói könyvtárban)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "A következő csomagokat kell eltávolítani:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "A következő függőségek nem oldhatók fel:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Biztosan meg kívánja szakítani a telepítést?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Kiegészítők telepítése" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "A telepítés meghiúsult!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "A telepítés figyelmeztetésekkel sikeresen befejeződött." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Kiegészítők eltávolítása" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Az eltávolítás meghiúsult!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Az eltávolítás figyelmeztetésekkel sikeresen befejeződött." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Tároló regisztrálása" #: 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 "Kivétel történt: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "További információk" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Telepítés…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Frissítés" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Eltávolítás…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "További kiegészítők szükségesek a művelet elvégzéséhez." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "A következő kiegészítők lesznek telepítve:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Nincsenek frissítések" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Frissítés" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Összes frissítése" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Tároló:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Telepítés fájlból…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Telepítés" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Kiegészítőtároló kezelése" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Új tároló felvétele" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Válassza ki a regisztrálni kívánt tároló helyét:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Online tároló regisztrálása" #: 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 "Helyi tároló regisztrálása" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Elérési út:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Tallózás…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Előrehaladás" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(biztosítja: {0})" pinta-1.6/po/eu.po0000664000175000017500000020516512474707515015243 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-25 14:53+0000\n" "Last-Translator: Adolfo Jayme \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Sortu eta editatu irudiak modu errazean" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Irudi-editorea" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta irudi-editorea" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gehigarrien kudeatzailea" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desegin" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Berregin" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Moztu" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiatu" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopiatu batutakoa" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Itsatsi" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Itsatsi geruza berrian" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Itsatsi irudi berrian" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Ezabatu hautapena" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Bete hautapena" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Alderantzikatu hautapena" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Hautatu dena" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Desautatu dena" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Ireki..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Gorde honela..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Berrezarri lehenetsia" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Ezarri kolore-kopurua" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Ezabatu hautapena" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Desautatu" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Ireki paleta-fitxategia" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paleta-fitxategiak (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Fitxategi guztiak" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Errorea" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Gorde paleta-fitxategia" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Honi buruz" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Moztu hautapenera" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatikoki moztu" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Aldatu irudiaren tamaina..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Aldatu mihisearen tamaina..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Irauli horizontalki" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Irauli bertikalki" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Biratu 90º eskuinetara" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Biratu 90º ezkerretara" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Biratu 180º" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Berdindu" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Gehitu geruza berria" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Ezabatu geruza" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Bikoiztu geruza" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Batu geruza beherantz" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Inportatu fitxategitik..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Biratu / Zoom geruzara..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Mugitu geruza gora" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Mugitu geruza behera" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Geruzaren propietateak..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Ireki irudi-fitxategia" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Inportatu fitxategitik" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Handiagotu" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Txikiagotu" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Egokiena" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zooma hautapenera" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Tamaina normala" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Tresna-barra" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixel-sareta" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Erregelak" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixelak" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Hazbeteak" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Zentimetroak" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pantaila osoa" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Leihoa" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Erregelen unitateak" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "% {0}" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Tresna" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Laster-tekla" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Nahaste normala" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Gainidatzi" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiasing-a aktibatua" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiasing-a desaktibatua" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Geruza" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiatu" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Aldatu oihalaren tamaina" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Mugitu hautatutako pixelak" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Irudia mihisea baino handiagoa da" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Hedatu mihisea" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ez aldatu mihisearen tamaina" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Irudia ezin izan da itsatsi" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Arbelak ez dauka irudirik." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Ordeztu" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Batuketa (+) (ctrl + ezkerreko klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Kenketa (-) (eskuineko klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (ctrl + eskuineko klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersect (shift + ezkerreko klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Hautatze-modua: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normala" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Biderkatu" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Batuketa" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Kolorea zuritu" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Kolorea belztu" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Islatu" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Dirdira" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Gainezarri" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferentzia" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negatiboa" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Argitu" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Ilundu" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Pantaila" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Amaitu pixelak" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Aldatu irudiaren tamaina" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} irudia ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Errendatze-efektua" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Ez da tresnarik hautatu." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Gorde gabeko irudia ({0})" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Atzeko planoa" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Irudi berria" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Fitxategi-formatua ez da onartzen" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Ireki irudia" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Baimena ukatu da" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Ezin izan da fitxategia ireki: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Maila automatikoa" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Zuri-beltza" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Distira / kontrastea" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Distira" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrastea" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurbak" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Ñabardura / asetasuna" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Argitasuna" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Alderantzikatu koloreak" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Mailak" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizatu" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Mailen doikuntza" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Gorria" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Berdea" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Urdina" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Lotua" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Gehitu zarata" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Zarata" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intentsitatea" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Kolore-asetasuna" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Estaldura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Konkortu" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distortsioa" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Kantitatea" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Desplazamendua" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Hodeiak" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Errendatu" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Eskala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Energia" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Hazia" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Ertz-detekzioa" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizatu" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angelua" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Bozeldu" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Zatikatu" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Lausotzeak" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Zatiak" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distantzia" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Biraketa" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Beira izoztua" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gauss-en lausotzea" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Erradioa" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Argazkia" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Tinta-zirriborroa" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistikoa" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Tinta-ingerada" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Koloratzailea" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-ren fraktala" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktorea" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kalitatea" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zooma" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-en fraktala" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Ehunekoa" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Mugimendu-lausotzea" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Zentratua" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olioz pintatu" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Brotxaren tamaina" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Ale-tamaina" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Eskema sortu" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Lodiera" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Arkatz-zirriborroa" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Arkatz-puntaren tamaina" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Kolore-barrutia" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelatu" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Gelaxkaren tamaina" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Alderantzikatze polarra" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Lausotze erradiala" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Begi gorriak kentzea" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerantzia" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Murriztu zarata" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Sendotasuna" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Erliebea" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Zorroztu" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Erretratu leuna" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Leuntasuna" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Argiztapena" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Berotasuna" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Mosaiko-islapena" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Mosaiko-tamaina" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Bihurritu" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias-a" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desenfokatu" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Gardena" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Erdiko desplazamendua" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom-lausotzea" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transferentzia-mapa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Argitasuna" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Gorria " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Urdina " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Berrezarri" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" "Iradokizuna: Egin klik eskuineko botoiarekin kontrol-puntuak kentzeko." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Sarrerako histograma" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Sarrera" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Irteera" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Irteerako histograma" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatikoa" #: ../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:106 msgid "Choose Primary Color" msgstr "Hautatu kolore nagusia" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Hautatu bigarren mailako kolorea" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Hautatu paletako kolorea" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" "Egin klik kolore nagusiaren eta bigarren kolorearen artean txandakatzeko." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Egin klik kolore nagusia eta bigarren mailako berrezartzeko." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Egin klik kolore nagusia hautatzeko." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Egin klik bigarren mailako kolorea hautatzeko." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Ezkerreko klik-a kolore nagusia ezartzeko. Eskuineko klik-a bigarren mailako " "kolorea ezartzeko. Erdiko klik-a paletako kolorea hautatzeko." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Erakutsitako geruza" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Ezkutuko geruza" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Zirkuluak" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Sareta" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Zipriztinak" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Laukiak" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Marra" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Gezia" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Tamaina" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Txikitu gezi-tamaina" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Handitu gezi-tamaina" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Txikitu angelu-desplazamendua" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Handitu angelu-desplazamendua" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Luzera" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Txikitu luzera-desplazamendua" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Handitu luzera-desplazamendua" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Brotxaren zabalera" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Handitu brotxaren tamaina" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Txikitu brotxaren tamaina" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Betegarriaren estiloa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Ingerada" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Betegarria" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Betegarria eta ingerada" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Forma-mota" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Lerro/kurba irekien seriea" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Lerro/kurba itxien seriea" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsea" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Lerro biribilduen seriea" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Aldatu forma-mota" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Puntua ezabatu da" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Ezabatua" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Puntua gehitu da" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Gehitua" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Aldatua" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Amaitua" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Kurba-forma irekia" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Kurba-forma itxia" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Lerro-forma borobildua" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonatze-zigilua" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-ezkerreko klik jatorria ezartzeko, ezkerreko klik margotzeko." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Kolore-hautatzailea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Lagintzea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Pixel bakarra" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 eskualdea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 eskualdea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 eskualdea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 eskualdea" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Irudia" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Hautaketaren ondoren" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ez aldatu tresnaz" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Aldatu aurreko tresnara" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Aldatu Arkatza tresnara" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Arkatza" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elipse-formako hautapena" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Klik eta arrastatu hautapen eliptiko bat marrazteko. Mantendu Shift sakatuta " "zirkulu bat erabiltzeko." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Borragoma" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Betegarri-modua" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Albokoa" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globala" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma librea" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradientea" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Gradiente lineala" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Gradiente lineal isladatua" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Diamante-formako gradiente lineala" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Gradiente erradiala" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Gradiente konikoa" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lakio bidezko hautapena" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Egin klik eta arrastatu hautapen-arearen ertza marrazteko." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Lerroa/kurba" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Makila magikoaren bidezko hautapena" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Egin klik antzeko kolorea duen eskualdea hautatzeko" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Ezkerreko klik-a eta arrastatu hautapena, hautatutako edukia mugitzeko. " "Eskuineko klik-a eta arrastatu hautapena, hautatutako edukia biratzeko." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mugitu hautapena" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Ezkerreko klik-a eta arrastatu hautapena, hautapenaren kanpoko marra " "mugitzeko. Eskuineko klik-a eta arrastatu hautapena, hautapenaren kanpoko " "marra biratzeko." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pintzela" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Mota" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Margo-ontzia" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Desplazamendua" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Egin klik eta arrastatu irudian mugitzeko." #: ../Pinta.Tools/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-a pixel bateko zabalerako lerroekin forma libreak marrazteko " "kolore nagusiarekin. Eskuineko klik-a bigarren mailako kolorea erabiltzeko." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Koloreztatu berriro" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Laukizuzen bidezko hautapena" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Klik eta arrastatu hautapen laukizuzen bat marrazteko. Mantendu Shift " "sakatuta lauki bat erabiltzeko." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Laukizuzena" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Laukizuzen biribildua" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Testua" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Testua - Amaitu" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Letra-tipoa" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Lodia" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Etzana" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Azpimarratua" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Ezkerrean lerrokatua" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Erdian lerrokatua" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Eskuinean lerrokatua" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Testu-estiloa" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normala eta ingerada" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Bete atzeko planoa" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ingerada-zabalera" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Txikitu ingeradaren tamaina" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Handitu ingeradaren tamaina" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Aldatu paletaren tamaina" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Paletaren tamaina berria:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Gorde \"{0}\" irudiaren aldaketak itxi baino lehen?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Gordetzen ez baduzu, aldaketa guztiak betiko galduko dira." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Itxi _gorde gabe" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Hartu pantaila-argazkia" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Pantaila-argazkia hartzeko atzerapena (segundoak):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Irudi-fitxategiak" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Gorde irudi-fitxategia" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" "Pintak ez du onartzen fitxategi-formatu horretako irudiak gordetzerik." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Ezin da gorde irakurtzeko soilik den fitxategia." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Irudi handiegia" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO fitxategiek ezin dute 255 x 255 pixel baino handiagoak izan." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Geruzaren opakutasuna" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Aldatu geruzaren izena" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ezkutatu geruza" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Erakutsi geruza" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Geruza-propietateak" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Biratu / Zoom geruzara" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Bertsio honen garatzaileak:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Aurreko garatzaileak:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\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" " Ibai Oihanguren Sala https://launchpad.net/~ibai-oihanguren\n" " Jonathan Pobst https://launchpad.net/~jpobst" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Itzulpena:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Paint.NETen lanean oinarritua:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Zenbait ikono hemendik datoz:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Mono bidez garatua:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pintari buruz" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Bertsio-informazioa" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Bertsioa" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lizentzia" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "MIT X11 lizentziapean argitaratua." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pintaren garatzaileak" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Xehetasunak" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kalitatea" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kalitatea: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Izena:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Ikusgaia" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Nahaste-modua" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opakutasuna:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Arbela" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Pertsonalizatua" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Aurre-ezarpena:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Zabalera:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Altuera:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientazioa:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Bertikala" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Horizontala" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Izenburua" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Bidea" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ezkutatu" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Atrakagarria" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Mugikorra" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatikoki ezkutatu" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Atrakea" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Erakutsi mezu hau eta irten" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Bistaratu aplikazioaren bertsioa" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "errendatzerako erabiliko den hari-kopurua" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Erabilera: pinta [fitxategiak]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Aukerak: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fitxategia" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Editatu" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Ikusi" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "I_rudia" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Geruzak" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Doikuntzak" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efe_ktuak" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Gehigarriak" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "Lei_hoa" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Tresna-leihoak" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Laguntza" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Oihala" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historia" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Geruzak" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Irudiak" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Tresnak" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Ertz-portaera" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Hautespen anitza:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Gaitu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Desgaitu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Ez dago hautapenik" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Eskuragarri biltegian:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Eskuragarri dago eguneraketa bat" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Gehigarri hau ezin izan da kargatu mendekotasunak falta zaizkiolako" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Beharrezkoa: {0} {1} bertsioa, {2} bertsioa aurkitu da" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Falta da: {0} {1} bertsioa" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Instalatutako bertsioa" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Biltegiko bertsioa" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Deskarga-tamaina" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Gehigarri honek behar dituen hurrengo mendekotasunak ezin dira atzitu:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Instalazioa bertan behera utzi da" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Ez dira beharrezko gehigarri batzuk aurkitu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Instalazioak huts egin du" #: 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 "Instalatua" #: 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 "Eguneraketak" #: 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 "Biltegi guztiak" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Kudeatu biltegiak..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "Eguneraketa {0} eskuragarri" msgstr[1] "{0} eguneraketa eskuragarri" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Biltegia eguneratzen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Instalatu gehigarrien paketea" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Gehigarrien paketeak" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Ez da gehigarririk aurkitu" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Gehigarria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Besterik" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Desinstalatu" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Honako paketeak desinstalatuko dira:" #: 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 "" "Aurrekoen mendekoak diren beste gehigarri batzuk daude, horiek ere " "desinstalatuko dira:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Hautatutako gehigarriak ezin izan dira desinstalatu mendekotasun-gatazkak " "daudelako." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Honako paketeak instalatuko dira:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (erabiltzailearen direktorioan)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Honako paketeak desinstalatu egin behar dira:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Honako mendekotasunak ezin dira ebatzi:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Seguru zaude instalazioa bertan behera utzi nahi duzula?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Gehigarriak instalatzen" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Instalazioak huts egin du!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Instalazioa abisuekin burutu da." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Gehigarriak desinstalatzen" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Desinstalazioak huts egin du!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Desinstalazioa abisuekin burutu da." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Biltegia erregistratzen" #: 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 "Salbuespena gertatu da: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Informazio gehiago" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Instalatu..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Eguneraketa" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Desinstalatu..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Luzapen gehiago behar dira eragiketa hau lantzeko." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Honako gehigarriak instalatuko dira:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Ez da eguneraketarik aurkitu" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Freskatu" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Eguneratu dena" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Biltegia:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Instalatu fitxategitik ..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Instalatu" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gehigarri-biltegien kudeaketa" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Gehitu biltegi berria" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Hautatu erregistratu nahi duzun biltegiaren kokalekua:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Erregistratu lineako biltegia" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:82 msgid "Url:" msgstr "URLa:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:103 msgid "Register a local repository" msgstr "Erregistratu biltegi lokala" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Bidea:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Arakatu..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Aurrerapena" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "({0}-(e)k hornitua)" pinta-1.6/po/en_CA.po0000664000175000017500000020316212474707515015572 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-23 04:03+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Easily create and edit images" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Image Editor" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta Image Editor" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Add-in Manager" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Undo" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Redo" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cut" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copy" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copy Merged" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Paste" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Paste Into New Layer" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Paste Into New Image" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Delete Selection" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fill Selection" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invert Selection" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Select All" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deselect All" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Open..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Save As..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reset to Default" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Set Number of Colors" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palette" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Erase Selection" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deselect" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Open Palette File" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palette files (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "All files" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Save Palette File" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palette (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palette (*.gpl)" #: ../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: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:67 msgid "Print" msgstr "Print" #: ../Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Exit" #: ../Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "New" #: ../Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Open" #: ../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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "About" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Resize Image..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Resize Canvas..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Flip Horizontal" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Flip Vertical" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotate 90° Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotate 90° Counter-Clockwise" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotate 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Flatten" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Add New Layer" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Delete Layer" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicate Layer" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Merge Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Import from File..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotate / Zoom Layer..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Move Layer Up" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Move Layer Down" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Layer Properties..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Open Image File" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Import From File" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom In" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom Out" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Best Fit" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoom to Selection" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normal Size" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Toolbar" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixel Grid" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Rulers" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inches" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimeters" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fullscreen" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Window" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Ruler Units" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Tool" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Shortcut key" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normal Blending" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overwrite" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiasing On" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiasing Off" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Layer" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copy" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Resize Canvas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Move Selected Pixels" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Image larger than canvas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expand canvas" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Don't change canvas size" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Image cannot be pasted" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "The clipboard does not contain an image." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Replace" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Union (+) (Ctrl + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclude (-) (Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersect (Shift + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Selection Mode: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiply" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additive" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Color Burn" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Color Dodge" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflect" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glow" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Overlay" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Difference" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negation" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Lighten" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Darken" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Screen" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finish Pixels" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Resize Image" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} image ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Rendering Effect" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "No tool selected." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Unsaved Image {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Background" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "New Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Unsupported file format" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Open Image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permission denied" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Could not open file: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto Level" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Black and White" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brightness / Contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brightness" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curves" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Hue / Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Hue" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Lightness" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invert Colors" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Levels" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterize" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Levels Adjustment" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Red" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Green" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blue" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Linked" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Add Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Noise" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensity" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Color Saturation" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Coverage" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bulge" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distort" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Amount" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Offset" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Clouds" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Render" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Scale" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Power" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Seed" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Edge Detect" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stylize" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Emboss" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Blurs" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distance" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Frosted Glass" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussian Blur" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Photo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Ink Sketch" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Ink Outline" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Coloring" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia Fractal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Quality" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot Fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentile" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Motion Blur" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centred" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oil Painting" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Brush Size" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Coarseness" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Outline" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Thickness" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Pencil Sketch" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Pencil Tip Size" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Color Range" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelate" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Cell Size" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polar Inversion" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radial Blur" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Red-Eye Removal" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Saturation Percentage" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduce Noise" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Strength" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Sharpen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Soften Portrait" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Softness" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Lighting" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Warmth" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tile Reflection" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tile Size" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Twist" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Unfocus" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Clamp" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Wrap" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primary" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secondary" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparent" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Center Offset" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoom Blur" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transfer Map" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosity" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Red " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blue " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Reset" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Right-click to remove control points." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Input Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Output" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Output Histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Choose Primary Color" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Choose Secondary Color" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Choose Palette Color" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Click to switch between primary and secondary color." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Click to reset primary and secondary color." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Click to select primary color." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Click to select secondary color." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Layer Shown" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Layer Hidden" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Circles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grid" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Splatter" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Squares" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Dash" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Arrow" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Window Size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Decrease arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Increase arrow size" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Decrease angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Increase angle offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Length" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Decrease length offset" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Increase length offset" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Brush width" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Decrease brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Increase brush size" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fill Style" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fill Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fill and Outline Shape" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Open Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Closed Line/Curve Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Rounded Line Series" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Changed Shape Type" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Point Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Deleted" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Point Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Added" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modified" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalized" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Open Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Closed Curve Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Rounded Line Shape" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Decrease shape's corner radius" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Increase shape's corner radius" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Clone Stamp" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-left click to set origin, left click to paint." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Color Picker" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Sampling" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Single Pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 Region" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Image" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "After select" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Do not switch tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Switch to previous tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Switch to Pencil tool" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Pencil" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellipse Select" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Left click to draw a shape with the primary colour.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Eraser" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Flood Mode" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contiguous" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Freeform Shape" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linear Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linear Reflected Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linear Diamond Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radial Gradient" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Conical Gradient" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lasso Select" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Line/Curve" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Magic Wand Select" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Click to select region of similar color." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Move Selection" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Paintbrush" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Paint Bucket" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pan" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Click and drag to navigate image." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolor" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Left click to replace the secondary colour with the primary colour. Right " "click to reverse." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rectangle Select" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 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/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rounded Rectangle" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalize" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Bold" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Italic" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Underline" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Left Align" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Center Align" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Right Align" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Text Style" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal and Outline" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Fill Background" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Outline width" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Decrease outline size" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Increase outline size" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Resize Palette" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "New palette size:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Save the changes to image \"{0}\" before closing?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Close _without saving" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Take Screenshot" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Delay before taking a screenshot (seconds):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Image files" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Save Image File" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta does not support saving images in this file format." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Cannot save read only file." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Image too large" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 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/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Layer Opacity" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Rename Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Hide Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Show Layer" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Layer Properties" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotate / Zoom Layer" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Pinta Community Addins - Platform-Specific" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Pinta Community Addins - Cross-Platform" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Contributors to this release:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Previous contributors:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Patrick Dreier https://launchpad.net/~patrick-dreier\n" " Rafael Neri https://launchpad.net/~rafepel" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Translated by:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Based on the work of Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Using some icons from:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Powered by Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "About Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Version Info" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "License" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Released under the MIT X11 License." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "by Pinta contributors" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Report Bug...." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG Quality" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Quality: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Name:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Blend Mode" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacity:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Clipboard" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Custom" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Preset:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Width:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Height:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientation:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Portrait" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Landscape" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Background:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "White" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Background Colour" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Title" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Path" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Hide" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Floating" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Auto Hide" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Show this message and exit." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Display the application version." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "number of threads to use for rendering" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Usage: pinta [files]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Options: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_File" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edit" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_View" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Image" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Layers" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Adjustments" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effe_cts" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "A_dd-ins" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Window" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Tool Windows" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Help" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Canvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "History" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Layers" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Images" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Tools" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Edge Behavior" #: 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.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.6/po/bs.po0000664000175000017500000017320212474707515015232 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2012-09-09 07:24+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Poništi" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Ponovi" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Isijeci" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiraj" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Zalijepi" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Zalepi u novi sloj" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Nalijepi u novu sliku" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Obriši izbor" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Popuni odabrano" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Obrni izbor" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Izaberi sve" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Poništi izbor" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Otvori..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Sačuvaj kao..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Resetuj na podrazumevano" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Postavi broj boja" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Izbriši selekciju" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Poništi izbor" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Otvori datoteku palete" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Sve datoteke" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Greška" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Sačuvaj Datoteku Palete" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Isjeci selekciju" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatsko izrezivanje" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Promjeni veličinu slike..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Promjeni veličinu platna" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Prevrni horizontalno" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Prevrni vertikalno" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotiraj 90° u pravcu kazaljke na satu" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotiraj 90° suprotno od pravca kazaljke na satu" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotiraj 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Spljošti" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Dodaj novi sloj" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Izbriši sloj" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dupliciraj sloj" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Spoji sloj sa slojem ispod" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Uvezi iz datoteke..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Rotiraj / Uvećaj sloj..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Pomjeri sloj nagore" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Pomjeri sloj nadolje" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Svojstva sloja..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Otvori datoteku slike" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Uvezi iz datoteke" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Uvećaj" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Umanji" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Najbolje uklapanje" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Uvećaj na označeno" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normalna Veličina" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Alatna traka" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pikselna mreža" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Lenjiri" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pikseli" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inči" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pun ekran" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Prozor" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Jedinice lenjira" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Alat" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Prečica" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normalno mješanje" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Prepiši preko" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Ivice meke" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Ivice tvrde" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Sloj" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopija" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Promjeni veličinu platna" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Pomjeri odabrane piksele" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Proširi platno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ne mijenjaj veličinu platna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normalno" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Sjaj" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Završi piksele" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Promijeni veličinu slike" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efekat renderovanja" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nesačuvana slika {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Pozadina" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova slika" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Otvori sliku" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Ne moguće otvoriti datoteku: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto nivoi" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Crno-bijelo" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Osvetljenost/kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Svjetlina" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krivulje" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Nijansa / Zasićenje" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Izvrni boje" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivoi" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Napravi plakat" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Podešavanje nivoa" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Crveno" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zeleno" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Plavo" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Povezano" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Dodaj Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenzitet" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Zasićenje boje" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Podrška" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Ispupčenje" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorzija" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Iznos" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Pomak" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Oblaci" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Generisanje" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Razmjer" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Eksponent" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Rasejanje" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Otkrivanje ivice" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilizuj" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ugao" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Ugraviraj" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Dio" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Zamućenja" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Dijelovi" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Rastojanje" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotacija" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Zamrznuto staklo" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gausno zamućenje" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Poluprečnik" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografija" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Skica mastilom" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Umjetnički" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Obris mastila" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Bojanje" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktal julija" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvaliteta" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Uvećaj" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrotov fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Medijan" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Procenat" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Zamućenje pokreta" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrirano" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Bojiti uljem" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Veličina četke" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grubost" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Kontura" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Debljina" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Skica olovkom" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Veličina savjeta za olovku" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Opseg boja" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pikselizacija" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Veličina ćelije" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polarna inverzija" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Kružno zamućenje" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Uklanjanje crvenih očiju" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancija" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Smanji šum" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Jačina" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reljef" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Izoštri" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Omekšaj portret" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mekoća" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Osvjetljenje" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Toplina" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Odsjaj Pločica" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Veličina polja" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Uvrni" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Umekšavanje ivica" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Defokusiraj" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centar pomaka" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zamućenje uveličanja" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Mapa prenosa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Osvjetljenje" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Crveno " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Plavo " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Resetuj" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Pomoć: Desni klik da uništite kontrolne tačke" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Ulazni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Ulaz" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Izlaz" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Izlazni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatski" #: ../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:106 msgid "Choose Primary Color" msgstr "Odaberi primarnu boju" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Odaberi sekundarnu boju" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Odaberi boju palete" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Kružnice" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Mreža" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Nasumično" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kvadrati" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Širina četkice" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Smanji širinu četkice" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Povećaj veličinu četkice" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Stil popune" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Oblik okvira" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Popuni oblik" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Popuni i uokviri" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kloniraj pečat" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ktrl-levi klik da podeside poreklo, levi klik za bojenje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Birač boja" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Posle odabira" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne menjaj alatku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Vrati na prethodnu alatku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Promeni na Olovku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Olovka" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Izaberi elipsu" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gumica" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mod poplave" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Nastavi" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globalno" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Slobodni oblik" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linearni gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linearni reflektovani gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linearni Dijamantski Gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Kružni gradijent" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Konusni gradijent" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Laso Odabir" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klikni i vuci da nacrtaš okvir za oblast odabira." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Biranje čarobnim štapićem" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klikni za odabiranje rejona sličnom bojom." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Premjesti izbor" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Četka" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Vrsta" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Kantica sa bojom" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Paniraj" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikni i vuci da navigiraš sliku." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Ponovo oboji" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Izbor kvadrata" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Pravougaonik" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zaobljen pravougaonik" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Font" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Podebljano" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kurziv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podvučeno" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Lijevo poravnanje" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Postrojiti u centar" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Desno poravnanje" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Stil teksta" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Narmalno i skica" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Ispuni pozadinu" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Širina obrisa" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Smanji veličinu obrisa" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Povećaj veličinu obrisa" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Promjeni veličinu palete" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nova veličina palete" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Sačuvati promjene koje su napravljene slici {0} prije zatvaranja?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Ukoliko ne sačuvate, sve promjene će biti trajno izgubljene" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Snimak ekrana" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Kašnjenje prije slikanja zaslona (u sekundama):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Datoteka slike" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Sačuvaj datoteku slike" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podržava čuvanje slika u ovom formatu." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Ne može se sačuvati slika koja se može samo čitati." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Prozirnost sloja" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Preimenuj sloj" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Sakrij sloj" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Prikaži sloj" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Svojstva sloja" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Rotiraj / Uvećaj sloj" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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/~sivanovic12345" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Prevod od strane:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Rađeno na osnovi Paint.NET-a:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Koristi neke ikonice sa:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O Pinti" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informacije o verziji" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Verzija" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licenca" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Objavljeno pod MIT X11 Licencom." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autorsko pravo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "od pomagača Pinte" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kvalitet" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvaliteta: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Naziv:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Vidljivo" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mod mješavine" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Providnost:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Širina:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pikseli" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Visina:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naziv" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Putanja" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Sakrij" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Prikačiv" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plutajuće" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatsko sakrivanje" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dok" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "koliko niti će se koristiti za renderovanje" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "Datoteka" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Izmijeni..." #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Prikaz" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Slika" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Slojevi" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Postavke" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Efekti" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Prozor" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Prozori alatki" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Pomoć" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "ImeOpcije" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Istorija" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Slojevi" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Slike" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Alati" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Ponašanje ivica" #: 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.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.6/po/POTFILES.in0000664000175000017500000001302012474706675016040 0ustar00cameroncameron00000000000000xdg/pinta.desktop.in Pinta.Core/Actions/AddinActions.cs Pinta.Core/Actions/EditActions.cs Pinta.Core/Actions/FileActions.cs Pinta.Core/Actions/HelpActions.cs Pinta.Core/Actions/ImageActions.cs Pinta.Core/Actions/LayerActions.cs Pinta.Core/Actions/ViewActions.cs Pinta.Core/Actions/WindowActions.cs Pinta.Core/Classes/BaseTool.cs Pinta.Core/Classes/Document.cs Pinta.Core/Classes/DocumentWorkspace.cs Pinta.Core/Classes/SelectionModeHandler.cs Pinta.Core/Effects/UserBlendOps.cs Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs Pinta.Core/HistoryItems/InvertHistoryItem.cs Pinta.Core/HistoryItems/PasteHistoryItem.cs Pinta.Core/HistoryItems/ResizeHistoryItem.cs Pinta.Core/ImageFormats/FormatDescriptor.cs Pinta.Core/Managers/EffectsManager.cs Pinta.Core/Managers/LivePreviewManager.cs Pinta.Core/Managers/ToolManager.cs Pinta.Core/Managers/WorkspaceManager.cs Pinta.Effects/Adjustments/AutoLevelEffect.cs Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs Pinta.Effects/Adjustments/BrightnessContrastEffect.cs Pinta.Effects/Adjustments/CurvesEffect.cs Pinta.Effects/Adjustments/HueSaturationEffect.cs Pinta.Effects/Adjustments/InvertColorsEffect.cs Pinta.Effects/Adjustments/LevelsEffect.cs Pinta.Effects/Adjustments/PosterizeEffect.cs Pinta.Effects/Adjustments/SepiaEffect.cs Pinta.Effects/Dialogs/Effects.CurvesDialog.cs Pinta.Effects/Dialogs/Effects.LevelsDialog.cs Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs Pinta.Effects/Effects/AddNoiseEffect.cs Pinta.Effects/Effects/BulgeEffect.cs Pinta.Effects/Effects/CloudsEffect.cs Pinta.Effects/Effects/EdgeDetectEffect.cs Pinta.Effects/Effects/EmbossEffect.cs Pinta.Effects/Effects/FragmentEffect.cs Pinta.Effects/Effects/FrostedGlassEffect.cs Pinta.Effects/Effects/GaussianBlurEffect.cs Pinta.Effects/Effects/GlowEffect.cs Pinta.Effects/Effects/InkSketchEffect.cs Pinta.Effects/Effects/JuliaFractalEffect.cs Pinta.Effects/Effects/MandelbrotFractalEffect.cs Pinta.Effects/Effects/MedianEffect.cs Pinta.Effects/Effects/MotionBlurEffect.cs Pinta.Effects/Effects/OilPaintingEffect.cs Pinta.Effects/Effects/OutlineEffect.cs Pinta.Effects/Effects/PencilSketchEffect.cs Pinta.Effects/Effects/PixelateEffect.cs Pinta.Effects/Effects/PolarInversionEffect.cs Pinta.Effects/Effects/RadialBlurEffect.cs Pinta.Effects/Effects/RedEyeRemoveEffect.cs Pinta.Effects/Effects/ReduceNoiseEffect.cs Pinta.Effects/Effects/ReliefEffect.cs Pinta.Effects/Effects/SharpenEffect.cs Pinta.Effects/Effects/SoftenPortraitEffect.cs Pinta.Effects/Effects/TileEffect.cs Pinta.Effects/Effects/TwistEffect.cs Pinta.Effects/Effects/UnfocusEffect.cs Pinta.Effects/Effects/WarpEffect.cs Pinta.Effects/Effects/ZoomBlurEffect.cs Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs Pinta.Tools/Brushes/CircleBrush.cs Pinta.Tools/Brushes/GridBrush.cs Pinta.Tools/Brushes/PlainBrush.cs Pinta.Tools/Brushes/SplatterBrush.cs Pinta.Tools/Brushes/SquaresBrush.cs Pinta.Tools/Dashes/DashPatternBox.cs Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs Pinta.Tools/Tools/BaseBrushTool.cs Pinta.Tools/Tools/CloneStampTool.cs Pinta.Tools/Tools/ColorPickerTool.cs Pinta.Tools/Tools/EllipseSelectTool.cs Pinta.Tools/Tools/EllipseTool.cs Pinta.Tools/Tools/EraserTool.cs Pinta.Tools/Tools/FloodTool.cs Pinta.Tools/Tools/FreeformShapeTool.cs Pinta.Tools/Tools/GradientTool.cs Pinta.Tools/Tools/LassoSelectTool.cs Pinta.Tools/Tools/LineCurveTool.cs Pinta.Tools/Tools/MagicWandTool.cs Pinta.Tools/Tools/MoveSelectedTool.cs Pinta.Tools/Tools/MoveSelectionTool.cs Pinta.Tools/Tools/PaintBrushTool.cs Pinta.Tools/Tools/PaintBucketTool.cs Pinta.Tools/Tools/PanTool.cs Pinta.Tools/Tools/PencilTool.cs Pinta.Tools/Tools/RecolorTool.cs Pinta.Tools/Tools/RectangleSelectTool.cs Pinta.Tools/Tools/RectangleTool.cs Pinta.Tools/Tools/RoundedRectangleTool.cs Pinta.Tools/Tools/SelectShapeTool.cs Pinta.Tools/Tools/ShapeTool.cs Pinta.Tools/Tools/TextTool.cs Pinta.Tools/Tools/ZoomTool.cs Pinta/Actions/Edit/ResizePaletteAction.cs Pinta/Actions/File/CloseDocumentAction.cs Pinta/Actions/File/NewScreenshotAction.cs Pinta/Actions/File/OpenDocumentAction.cs Pinta/Actions/File/SaveDocumentImplementationAction.cs Pinta/Actions/Layers/LayerPropertiesAction.cs Pinta/Actions/Layers/RotateZoomLayerAction.cs Pinta/AddinSetupService.cs Pinta/Dialogs/AboutDialog.cs Pinta/Dialogs/AboutPintaTabPage.cs Pinta/Dialogs/ErrorDialog.cs Pinta/Dialogs/JpegCompressionDialog.cs Pinta/Dialogs/LayerPropertiesDialog.cs Pinta/Dialogs/NewImageDialog.cs Pinta/Dialogs/ResizeCanvasDialog.cs Pinta/Dialogs/ResizeImageDialog.cs Pinta/Dialogs/VersionInformationTabPage.cs Pinta/DockLibrary/DockItem.cs Pinta/DockLibrary/DockItemContainer.cs Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs Pinta/gtk-gui/Pinta.ResizeImageDialog.cs Pinta/Main.cs Pinta/MainWindow.cs Pinta/Options.cs Pinta/Pads/CanvasPad.cs Pinta/Pads/ColorPalettePad.cs Pinta/Pads/HistoryPad.cs Pinta/Pads/LayersPad.cs Pinta/Pads/OpenImagesPad.cs Pinta/Pads/ToolBoxPad.cs pinta-1.6/po/zh_CN.po0000664000175000017500000017702312474707515015634 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-24 00:37+0000\n" "Last-Translator: colindemian \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "轻松创建和编辑图像" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "图片编辑器" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta 图片编辑器" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "插件管理器" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "撤销" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "重做" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "剪切" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "复制" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "合并复制" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "粘贴" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "粘贴到新图层" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "粘贴为新图像" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "删除选区" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "填充选区" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "反向选择" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "全选" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "全部不选" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "打开..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "另存为..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "重置到默认" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "设置颜色数量" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "调色板" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "擦除选区" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "取消选择" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "打开调色板文件" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "调色板文件 (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "全部文件" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "错误" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "保存调色板文件" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET 调色板 (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP 调色板 (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新建..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "关于" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "裁剪到选择部分" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "自动裁剪" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "改变图像大小..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "改变画布大小..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "水平翻转" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "垂直翻转" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "顺时针旋转90°" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "逆时针旋转90°" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "旋转180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "平面化" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "添加新图层" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "删除图层" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "复制图层" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "向下合并图层" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "从文件导入..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "旋转 / 缩放层" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "升高图层" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "降低图层" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "图层属性..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "打开图像文件" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "从文件导入" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "放大" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "缩小" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "最适大小" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "缩放至选择部分" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "普通大小" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "工具栏" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "像素网格" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "标尺" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "像素" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "英寸" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "厘米" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "全屏" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "窗口" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "尺度单位" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "保存全部" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "关闭全部" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "工具" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "快捷键" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "一般混合" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "覆盖" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "开启抗锯齿" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "关闭抗锯齿" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "图层" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "复制" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "改变画布大小" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "移动选择的像素" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "图像比画布大" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "被粘贴的图片大于画布大小,您希望怎么做?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "扩大画布" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "不要扩大画布" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "不能粘贴图像" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "剪切板中没有图像" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "替换" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "合并 (+) (Ctrl + 左键)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "排除 (-) (右键)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "异或 (Ctrl +右键)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "交错 (Shift + 左键)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " 选取模式: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "一般" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "正片叠加" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "附加项" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "颜色加深" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "颜色减淡" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "反射" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "发光" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "重叠" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "差别" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "负片" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "加亮" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "减暗" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "屏幕" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "异或" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "水平翻转图层" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "垂直翻转图层" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "改变图像大小" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 图像 ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "渲染效果" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "没有选择工具。" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "未保存的图像 {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "背景" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "新建图像" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "不支持的文件格式" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "打开图像" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "权限不够" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "无法打开文件:{0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "自动调整色阶" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "黑白" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "亮度 / 对比度" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "亮度" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "对比度" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "曲线" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "色相 / 饱和度" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "色调" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "饱和度" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "亮度" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "反色" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "色阶" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "海报效果" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "复古褐色" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "色阶调整" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "红色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "绿色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "蓝色" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "已链接" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "添加噪声" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "噪声" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "亮度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "颜色饱和度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "覆盖范围" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "凸起" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "扭曲" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "数量" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "偏移量" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "云团" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "渲染" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "缩放" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "强度" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "种子" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "边缘探测" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "风格化" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "角度" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "浮雕" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "碎片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "模糊" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "碎片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "距离" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "旋转" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "磨砂玻璃" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "高斯模糊" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "半径" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "照片" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "水墨素描" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "艺术效果" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "墨迹轮廓" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "着色" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "朱莉娅分形" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "系数" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "品质" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "缩放" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "曼德勃罗分形" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "中值" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "百分比" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "运动模糊" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "居中对齐" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "油画" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "笔刷尺寸" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "粗糙度" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "轮廓" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "线宽" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "铅笔画" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "铅笔头大小" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "颜色范围" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "像素化" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "格子大小" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "极性反转" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "辐射模糊" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "使用低质量以用来预览或生成小图片、小角度图像,使用高质量以生成最终图片或大图片、大角度图像。" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "去除红眼" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "允许偏差量" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "提示:为了获得最好的效果,先使用选择工具选择每只眼睛。" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "减少噪声" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "强度" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "醒目" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "锐化" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "软化肖像" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "柔和" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "光线" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "暖度" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "瓷砖效果" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "方块大小" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "扭曲" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "抗锯齿" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "失去焦点" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "中心偏移" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "缩放模糊" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "转换图" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "发光度" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "Copy text \t (256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "红色 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "蓝色 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "重置" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "提示:右击以移除控制点。" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "输入直方图" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Input" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "输入或输出" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "输出直方图" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "选取主颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "选取副颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "选取调色板颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "点击切换主副颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "点击重置主副颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "点击选择主颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "点击选择副颜色" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "左键点击选择主颜色,右键点击选择副颜色,中键点击选择调色板颜色" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "显示图层" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "隐藏图层" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "圆圈" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "网格" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "泼洒" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "方格" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "箭头" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "尺寸" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "减小箭头尺寸" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "增大箭头尺寸" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "减小角度偏移" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "增大角度偏移" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "长度" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "减小长度偏移" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "增大长度偏移" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "笔刷宽度" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "减小笔刷尺寸" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "增大笔刷尺寸" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "填充形式" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "边框" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "填充" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "填充和边框" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "椭圆" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "已删除" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "已添加" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "已修改" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "仿制图章" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "按住 Ctrl 键点击设置源点,然后点击进行涂抹。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "颜色拾取器" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "左击设置主颜色,右击设置副颜色。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "取样" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "单个像素" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 区域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 区域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 区域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 区域" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "图像" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "选择后" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "不要切换工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "切换到上一个工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "切换到铅笔工具" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "铅笔" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "椭圆形选择" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "点击并拖动绘制椭圆选区。按住 Shift 强制画圆形区域。" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "橡皮擦" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "左键点击擦除为透明色,右键点击擦除为副颜色 " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "填充模式" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "区域" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "整个区域" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "自由形狀" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "左击使用主颜色绘制,右击使用副颜色绘制。" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "渐变" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "点击拖动以绘制一个从主颜色到副颜色的渐变。右击逆转颜色。" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "线性渐变" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "双线性渐变" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "菱形渐变" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "辐射渐变" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "锥形渐变" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "套索选择" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "点击拖动以绘制选取的轮廓" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "魔术棒选择" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "点击选取相似颜色的区域。" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "左键点击并拖动选择移动选中区域的内容。右键点击并拖动选择及旋转选中区域的内容。" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "移动选区" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "左键点击并拖动选择移动选中区域的轮廓。右键点击并拖动选择及旋转选中区域的轮廓。" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "画笔" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "类型" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "油漆桶" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "移动" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "点击拖动以操纵图像。" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "重新着色" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "矩形选择" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "单击并拖动绘制矩形选区。按住 Shift 键强制为正方形。" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "矩形" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "圆角矩形。" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "文字" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "左击放置光标,然后键入所需的文本。文本颜色为主颜色。" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "字体" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "粗体" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "斜体" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "下划线" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "左对齐" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "居中对齐" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "右对齐" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "文本样式" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "正常与大纲" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "填充背景" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "描边宽度" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "减少描边宽度" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "增加描边宽度" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "左击放大,右击缩小。点击并拖动以缩放选区。" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "改变调色板大小" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "调色板大小:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "关闭前保存对图像“{0}”的修改?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "如果您不保存,所有修改 将会永久丢失。" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "屏幕截图" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "截图前延迟(秒):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "图像文件" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "保存图像文件" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta 不支持保存图像为这种格式。" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "不能保存只读文件" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "图像太大" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO 不能大于 255 x 255 像素。" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "名为“{0}”的文件已经存在。您想要覆盖吗?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "文件在“{1}”中已存在。替换将会覆盖它的内容。" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "图层透明度" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "重命名图层" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "隐藏图层" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "显示图层" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "图层属性" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "旋转 / 缩放层" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "这一版本的贡献者:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "以前的贡献者:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Hello World! https://launchpad.net/~liuwanfang86\n" " Wylmer Wang https://launchpad.net/~wantinghard\n" " Xhacker Liu https://launchpad.net/~xhacker\n" " ZhengJianhui https://launchpad.net/~zheng1733\n" " colindemian https://launchpad.net/~dengmengpc\n" " qinghao https://launchpad.net/~qinghao1\n" " 邵开来 https://launchpad.net/~kailai.shao" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "翻译者:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "基于 Paint.NET 的工作:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "从此位置使用了一些图标:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "基于 Mono 构建:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "关于 Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "版本信息" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "版本" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "许可" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "以 MIT X11 许可证发行" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "版权" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "由 Pinta 贡献者" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "详细信息" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 质量" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "质量: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "名称:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "可见" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "混合模式" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "透明度:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "宽度:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "像素" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "高度:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "标题" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "路径" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "隐藏" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "可停靠" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "浮动" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "自动隐藏" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "保持宽高比" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "锚点:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "渲染使用的线程数" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "文件(_F)" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "编辑(_E)" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "视图(_V)" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "图像(_I)" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "图层(_L)" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "调整(_A)" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "效果(_C)" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "插件(_D)" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "窗口(_W)" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "工具窗口" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "帮助(_H)" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "选项名" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "画布" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "历史" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "图层" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "图像" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "工具" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "边缘行为" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "多选:\n" "\n" #: 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 "需要:{0} v{1},但找到 v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "缺少:{0} v{1}" #: 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] "{0} 个更新可用" #: 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 "发生了异常:{0}" #: 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 "卸载(_U)..." #: 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.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 "(由 {0} 提供)" pinta-1.6/po/ja.po0000664000175000017500000020715012474707515015220 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-11-24 03:35+0000\n" "Last-Translator: ub \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "簡単に画像を作成したり編集を行います" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "画像エディター" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta 画像エディター" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "アドイン・マネージャー" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "元に戻す" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "やり直し" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "切り取り" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "コピー" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "クリップボードにコピー" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "貼り付け" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "新規レイヤーに貼り付け" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "新規イメージに貼り付け" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "選択範囲を消去" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "選択範囲を塗りつぶす" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "選択範囲を反転" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "すべて選択" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "選択を解除" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "開く..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "名前を付けて保存..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "標準設定に戻す" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "色数を指定" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "パレット" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "選択範囲を消去" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "選択解除" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "パレットファイルを開く" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "パレットファイル(*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "すべてのファイル" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "エラー" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "パレットの保存" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET パレット (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP パレット (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "新規..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "このソフトウェアについて" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "選択範囲のクロップ" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "自動クロップ" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "画像サイズの変更..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "キャンバスサイズの変更..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "水平方向に反転" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "垂直方向に反転" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "90度回転 (時計回り)" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "90度回転 (反時計回り)" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "180度回転" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "フラット化" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "新規レイヤーを追加" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "レイヤーを削除" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "レイヤーを複製" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "レイヤーを統合" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "ファイルからインポート..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "レイヤーの回転/ズーム..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "レイヤーを上に移動" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "レイヤーを下に移動" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "レイヤー・プロパティ" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "イメージファイルを開く" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "ファイルからインポート" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "拡大" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "縮小" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "最適なサイズ" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "選択範囲に合わせる" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "標準のサイズ" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "ツールバー" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "グリッド" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "ルーラー" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "ピクセル" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "インチ" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "センチメートル" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "全画面表示" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "ウィンドウ" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "ルーラーの単位" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "すべて保存" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "すべて閉じる" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "ツール" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "ショートカット" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "ノーマルブレンド" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "上書き" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "アンチエイリアスの有効" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "アンチエイリアスの無効" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "レイヤー" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "コピー" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "キャンバスサイズの変更" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "選択した領域の画像を移動" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "画像がキャンバスより大きいです" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "ペーストした画像がキャンバスより大きいです。どうしますか?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "キャンバスを広げる" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "キャンバスサイズは変えない" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "画像を貼り付けできません" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "クリップボードに画像がありません" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "置換(Replace)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "統合 (+) (Ctrl + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "減算 (-) (Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "反転 (Ctrl + Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "重なり抽出 (Shift + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " 選択モード: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "通常" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "乗算" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "覆い焼き(リニア)" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "焼き込み(カラー)" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "覆い焼き(カラー)" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "反射" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "グロー" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "オーバーレイ" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "差の絶対値" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "否定" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "比較(明)" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "比較(暗)" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "スクリーン" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "レイヤーを水平方向に反転" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "レイヤーを垂直方向に反転" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "画像サイズの変更" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} 画像 ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "効果のレンダリング" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "ツールが選択されていません。" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "未保存の画像 {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "背景色" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "新規イメージ" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "イメージを開く" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "権限がありません" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "ファイルを開けません: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "自動レベル" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "白黒" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "明かるさ/コントラスト" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "輝度" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "コントラスト" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "曲線" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "色あい/彩やかさ" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "色の反転" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "レベル" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "ポスタリゼーション" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "セピア" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "レベル補正" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "赤" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "緑" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "青" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "リンク済み" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "ノイズの追加" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "ノイズ" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "輝度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "彩度" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "範囲" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "ふくらみ" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "デフォルメ" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "量" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "オフセット" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "雲" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "レンダリング" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "スケール" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "強さ" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "乱数シード" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "エッジの強調" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "様式" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "角度" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "エンボス" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "断片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "ぼかし" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "断片" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "距離" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "回転" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "すりガラス" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "ガウスぼかし" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "半径" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "写真" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "インクスケッチ" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "アート" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "インクのアウトライン" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "色の設定" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "フラクタル (Julia)" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "係数" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "品質" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "ズーム" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "フラクタル" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "中央値" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "パーセント" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "動作ぼかし" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "中央揃え" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "油絵" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "ブラシのサイズ" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "粗さ" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "アウトライン" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "太さ" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "鉛筆" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "鉛筆の先端のサイズ" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "色の範囲" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "モザイク" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "セルのサイズ" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "極性反転" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "放射状のぼかし" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "プレビューは低品質(小さいイメージ、小さい角度)を使い、最終的な出力は高品質(大きなイメージ、大きな角度)にする。" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "赤目修正" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "許容範囲" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "ヒント: まず目の部分を選択ツールで選択するとうまくいきます。" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "ノイズの除去" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "強度" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "レリーフ" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "シャープ" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "ポートレイトのぼかし" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "ソフトネス" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "照明" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "暖色度" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "タイル反射" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "タイルのサイズ" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "ねじれ" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "アンチエイリアス" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "フォーカスなし" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "中央オフセット" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "ズームのぼかし" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "転送マップ" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "明度" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "赤 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "青 " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "リセット" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "右クリックで制御点を消去" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "入力ヒストグラム" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "入力" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "出力" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "出力ヒストグラム" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "プライマリ色を選択" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "セカンダリ色を選択" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "パレットカラーを選択" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "クリックでプライマリ色とセカンダリ色の入れ替え。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "クリックでプライマリ色とセカンダリ色のリセット。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "クリックでプライマリーの選択。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "クリックでセカンダリ色の選択。" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "左クリックでプライマリ色をセット、右クリックでセカンダリ色をセット、中クリックでパレットカラーの選択。" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "レイヤー表示" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "レイヤー非表示" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "円" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "グリッド" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "スプラッター" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "四角形" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "線種" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "矢印" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "サイズ" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "矢印を小さく" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "矢印を大きく" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "オフセット角度を小さく" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "オフセット角度を大きく" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "長さ" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "ブラシサイズ" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "ブラシサイズを小さくします" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "ブラシサイズを大きくします" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "塗りつぶしスタイル" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "輪郭を描く" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "塗りつぶす" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "塗りつぶして輪郭を描く" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "楕円" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "削除しました" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "追加しました" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "複製スタンプ" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+左クリックで画像を取得、左クリックで描画。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "色の取得" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "左クリックでプライマリ色、右クリックでセカンダリ色を選択。" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "色の選択" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "ひとつのピクセル" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 範囲" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 範囲" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 範囲" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 範囲" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "画像" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "色取得後の動作" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "なにもしない" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "以前のツールに切り替える" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "鉛筆ツールに切り替える" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "鉛筆" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "楕円選択" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "クリックとドラッグで楕円の領域、Shiftキーを押し続けて円。" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "消しゴム" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "左クリックで消去、右クリックでセカンダリ色。 " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "適用モード" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "連続部分" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "グローバル" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "フリーフォーム" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "左クリックでプライマリ色で描画、右クリックでセカンダリ色。" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "グラデーション" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "クリックとドラッグでプライマリ色からセカンダリ色へのグラデーション、右クリックで逆。" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "線形グラデーション" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "反射形グラデーション" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "菱形グラデーション" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "放射状グラデーション" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "円錐形グラデーション" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "なげなわ選択" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "クリック - ドラッグで境界線を描いて選択範囲を作成します。" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "直線/曲線" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "魔法の杖" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "クリックした箇所の類似色領域を選択範囲にします。" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "左クリックとドラッグで選択した領域の移動、右クリックとドラッグで領域の回転。" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "選択範囲を移動" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "左クリックとドラッグで選択範囲の移動、右クリックとドラッグで選択範囲の回転。" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "ペイントブラシ" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "種類" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "ペイント缶" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "パン" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "クリックとドラッグで画像を移動します。" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "塗り直し" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "四角形選択" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "クリックとドラッグで四角形を描画、Shiftキーを押し続けて正方形。" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "四角形" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "角丸四角形" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "テキスト" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "テキスト-終了" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "左クリックして文字を入力します。文字はプライマリ色。" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "フォント" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "太文字" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "斜体" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "下線" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "左揃え" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "中央揃え" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "右揃え" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "スタイル" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "アウトライン付き" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "背景を塗りつぶす" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "アウトライン幅" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "アウトラインを小さく" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "アウトラインを大きく" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "左クリックでズームイン、右クリックでズームアウト、クリックとドラッグで選択した範囲にズームイン。" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "パレットサイズの変更" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "新しいパレットサイズ:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "閉じる前に変更を \"{0}\" に保存しますか?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "保存しない場合、すべての変更が失われます。" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "スクリーンショットの取得" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "スクリーンショットを撮るまでの遅延時間(秒):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "イメージファイル" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "イメージファイルの保存" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pintaはこの画像形式での保存をサポートしていません" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "読み取り専用ファイルは保存できません。" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "画像が大きすぎます" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICOファイルは255 x 255ピクセルまでです" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "同名のファイル \"{0}\" があります。置き換えますか?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "同名のファイル \"{1}\" があります。ファイルが上書きされます。" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "レイヤーの不透明度" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "レイヤー名を変更" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "レイヤーを非表示" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "レイヤーを表示" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "レイヤーのプロパティ" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "レイヤーの回転/ズーム" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "このリリースの貢献者:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "これまでの貢献者:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " YannUbuntu https://launchpad.net/~yannubuntu\n" " Yuki Kodama https://launchpad.net/~kuy\n" " Yutaka Aiko https://launchpad.net/~ubon\n" " ub https://launchpad.net/~xenolith0bytetestcomgreen\n" " ytetsu https://launchpad.net/~ytetsu" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "翻訳:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Paint.NET プロジェクト:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "一部のアイコン:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Powered by Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Pinta について" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "バージョン情報" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "バージョン" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "ライセンス" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "MIT X11 ライセンスの元で公開されました。" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "著作権" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta 貢献者" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "詳細" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG 画質" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "画質 " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "名前:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "表示" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "ブレンドモード" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "不透明度:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "幅:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "ピクセル" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "高さ:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "タイトル" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "パス名" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "非表示" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "ドックに格納可能" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "フローティング" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "自動的に隠す" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "縦横比を保持する" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "アンカー:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "レンダリングに使用するスレッド数" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "ファイル(_F)" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "編集(_E)" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "表示(_V)" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "画像(_I)" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "レイヤ(_L)" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "調整(_A)" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "効果(_C)" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "アドイン(_d)" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "ウィンドウ(_W)" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "ツールウィンドウ" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "ヘルプ(_H)" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "オプション名" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "キャンバス" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "履歴" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "レイヤー" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "画像" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "ツール" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "境界処理" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "複数選択:\n" "\n" #: 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 "{0} v{1} が必要です。v{2} が見つかりました" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "{0} v{1} がありません" #: 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] "{0} 個のアップデートがあります" #: 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 "例外が発生しました: {0}" #: 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 "アンインストール(_U)..." #: 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.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 "URL:" #: 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 "(provided by {0})" pinta-1.6/po/POTFILES0000664000175000017500000001454112474707543015437 0ustar00cameroncameron00000000000000 ../xdg/pinta.desktop.in \ ../Pinta.Core/Actions/AddinActions.cs \ ../Pinta.Core/Actions/EditActions.cs \ ../Pinta.Core/Actions/FileActions.cs \ ../Pinta.Core/Actions/HelpActions.cs \ ../Pinta.Core/Actions/ImageActions.cs \ ../Pinta.Core/Actions/LayerActions.cs \ ../Pinta.Core/Actions/ViewActions.cs \ ../Pinta.Core/Actions/WindowActions.cs \ ../Pinta.Core/Classes/BaseTool.cs \ ../Pinta.Core/Classes/Document.cs \ ../Pinta.Core/Classes/DocumentWorkspace.cs \ ../Pinta.Core/Classes/SelectionModeHandler.cs \ ../Pinta.Core/Effects/UserBlendOps.cs \ ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs \ ../Pinta.Core/HistoryItems/InvertHistoryItem.cs \ ../Pinta.Core/HistoryItems/PasteHistoryItem.cs \ ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs \ ../Pinta.Core/ImageFormats/FormatDescriptor.cs \ ../Pinta.Core/Managers/EffectsManager.cs \ ../Pinta.Core/Managers/LivePreviewManager.cs \ ../Pinta.Core/Managers/ToolManager.cs \ ../Pinta.Core/Managers/WorkspaceManager.cs \ ../Pinta.Effects/Adjustments/AutoLevelEffect.cs \ ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs \ ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs \ ../Pinta.Effects/Adjustments/CurvesEffect.cs \ ../Pinta.Effects/Adjustments/HueSaturationEffect.cs \ ../Pinta.Effects/Adjustments/InvertColorsEffect.cs \ ../Pinta.Effects/Adjustments/LevelsEffect.cs \ ../Pinta.Effects/Adjustments/PosterizeEffect.cs \ ../Pinta.Effects/Adjustments/SepiaEffect.cs \ ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs \ ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs \ ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs \ ../Pinta.Effects/Effects/AddNoiseEffect.cs \ ../Pinta.Effects/Effects/BulgeEffect.cs \ ../Pinta.Effects/Effects/CloudsEffect.cs \ ../Pinta.Effects/Effects/EdgeDetectEffect.cs \ ../Pinta.Effects/Effects/EmbossEffect.cs \ ../Pinta.Effects/Effects/FragmentEffect.cs \ ../Pinta.Effects/Effects/FrostedGlassEffect.cs \ ../Pinta.Effects/Effects/GaussianBlurEffect.cs \ ../Pinta.Effects/Effects/GlowEffect.cs \ ../Pinta.Effects/Effects/InkSketchEffect.cs \ ../Pinta.Effects/Effects/JuliaFractalEffect.cs \ ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs \ ../Pinta.Effects/Effects/MedianEffect.cs \ ../Pinta.Effects/Effects/MotionBlurEffect.cs \ ../Pinta.Effects/Effects/OilPaintingEffect.cs \ ../Pinta.Effects/Effects/OutlineEffect.cs \ ../Pinta.Effects/Effects/PencilSketchEffect.cs \ ../Pinta.Effects/Effects/PixelateEffect.cs \ ../Pinta.Effects/Effects/PolarInversionEffect.cs \ ../Pinta.Effects/Effects/RadialBlurEffect.cs \ ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs \ ../Pinta.Effects/Effects/ReduceNoiseEffect.cs \ ../Pinta.Effects/Effects/ReliefEffect.cs \ ../Pinta.Effects/Effects/SharpenEffect.cs \ ../Pinta.Effects/Effects/SoftenPortraitEffect.cs \ ../Pinta.Effects/Effects/TileEffect.cs \ ../Pinta.Effects/Effects/TwistEffect.cs \ ../Pinta.Effects/Effects/UnfocusEffect.cs \ ../Pinta.Effects/Effects/WarpEffect.cs \ ../Pinta.Effects/Effects/ZoomBlurEffect.cs \ ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs \ ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs \ ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs \ ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs \ ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs \ ../Pinta.Tools/Brushes/CircleBrush.cs \ ../Pinta.Tools/Brushes/GridBrush.cs \ ../Pinta.Tools/Brushes/PlainBrush.cs \ ../Pinta.Tools/Brushes/SplatterBrush.cs \ ../Pinta.Tools/Brushes/SquaresBrush.cs \ ../Pinta.Tools/Dashes/DashPatternBox.cs \ ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs \ ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs \ ../Pinta.Tools/Tools/BaseBrushTool.cs \ ../Pinta.Tools/Tools/CloneStampTool.cs \ ../Pinta.Tools/Tools/ColorPickerTool.cs \ ../Pinta.Tools/Tools/EllipseSelectTool.cs \ ../Pinta.Tools/Tools/EllipseTool.cs \ ../Pinta.Tools/Tools/EraserTool.cs \ ../Pinta.Tools/Tools/FloodTool.cs \ ../Pinta.Tools/Tools/FreeformShapeTool.cs \ ../Pinta.Tools/Tools/GradientTool.cs \ ../Pinta.Tools/Tools/LassoSelectTool.cs \ ../Pinta.Tools/Tools/LineCurveTool.cs \ ../Pinta.Tools/Tools/MagicWandTool.cs \ ../Pinta.Tools/Tools/MoveSelectedTool.cs \ ../Pinta.Tools/Tools/MoveSelectionTool.cs \ ../Pinta.Tools/Tools/PaintBrushTool.cs \ ../Pinta.Tools/Tools/PaintBucketTool.cs \ ../Pinta.Tools/Tools/PanTool.cs \ ../Pinta.Tools/Tools/PencilTool.cs \ ../Pinta.Tools/Tools/RecolorTool.cs \ ../Pinta.Tools/Tools/RectangleSelectTool.cs \ ../Pinta.Tools/Tools/RectangleTool.cs \ ../Pinta.Tools/Tools/RoundedRectangleTool.cs \ ../Pinta.Tools/Tools/SelectShapeTool.cs \ ../Pinta.Tools/Tools/ShapeTool.cs \ ../Pinta.Tools/Tools/TextTool.cs \ ../Pinta.Tools/Tools/ZoomTool.cs \ ../Pinta/Actions/Edit/ResizePaletteAction.cs \ ../Pinta/Actions/File/CloseDocumentAction.cs \ ../Pinta/Actions/File/NewScreenshotAction.cs \ ../Pinta/Actions/File/OpenDocumentAction.cs \ ../Pinta/Actions/File/SaveDocumentImplementationAction.cs \ ../Pinta/Actions/Layers/LayerPropertiesAction.cs \ ../Pinta/Actions/Layers/RotateZoomLayerAction.cs \ ../Pinta/AddinSetupService.cs \ ../Pinta/Dialogs/AboutDialog.cs \ ../Pinta/Dialogs/AboutPintaTabPage.cs \ ../Pinta/Dialogs/ErrorDialog.cs \ ../Pinta/Dialogs/JpegCompressionDialog.cs \ ../Pinta/Dialogs/LayerPropertiesDialog.cs \ ../Pinta/Dialogs/NewImageDialog.cs \ ../Pinta/Dialogs/ResizeCanvasDialog.cs \ ../Pinta/Dialogs/ResizeImageDialog.cs \ ../Pinta/Dialogs/VersionInformationTabPage.cs \ ../Pinta/DockLibrary/DockItem.cs \ ../Pinta/DockLibrary/DockItemContainer.cs \ ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs \ ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs \ ../Pinta/Main.cs \ ../Pinta/MainWindow.cs \ ../Pinta/Options.cs \ ../Pinta/Pads/CanvasPad.cs \ ../Pinta/Pads/ColorPalettePad.cs \ ../Pinta/Pads/HistoryPad.cs \ ../Pinta/Pads/LayersPad.cs \ ../Pinta/Pads/OpenImagesPad.cs \ ../Pinta/Pads/ToolBoxPad.cs pinta-1.6/po/messages.pot0000664000175000017500000015653712474706675016643 0ustar00cameroncameron00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/de.po0000664000175000017500000021325412474707515015220 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-25 14:54+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Bilder einfach erstellen und bearbeiten" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Bildbearbeitung" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta-Bildbearbeitung" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Erweiterungsverwaltung" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Rückgängig" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Wiederherstellen" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Ausschneiden" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopieren" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Zusammengefügt kopieren" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Einfügen" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "In neue Ebene einfügen" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "In neues Bild einfügen" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Auswahl aufheben" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Auswahl füllen" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Auswahl umkehren" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Alles auswählen" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Auswahl aufheben" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Öffnen …" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Speichern unter …" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Vorgaben wiederherstellen" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Anzahl der Farben" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palette" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Auswahl aufheben" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Auswahl aufheben" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Farbpalette öffnen" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Farbpaletten (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Alle Dateien" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fehler" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Farbpalette speichern" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET-Farbpalette (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP-Farbpalette (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Über" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Auf Auswahl zuschneiden" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Automatisches Zuschneiden" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Bildgröße ändern …" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Größe der Zeichenfläche ändern …" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Horizontal spiegeln" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Senkrecht spiegeln" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Um 90° im Uhrzeigersinn drehen" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Um 90° gegen den Uhrzeigersinn drehen" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Um 180° drehen" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Auf eine Ebene reduzieren" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Neue Ebene hinzufügen" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Ebene löschen" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Ebene verdoppeln" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Ebene mit darunterliegenden zusammenfassen" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Aus Datei importieren …" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Ebene drehen/Größe ändern …" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Ebene nach oben" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Ebene nach unten" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Ebeneneigenschaften …" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Bilddatei öffnen" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Aus Datei importieren" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Vergrößern" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Verkleinern" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Einpassen" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Größe an Auswahl anpassen" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normale Größe" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Werkzeugleiste" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixelgitter" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Lineale" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixel" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Zoll" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Zentimeter" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Vollbild" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fenster" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Maßeinheiten" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Werkzeug" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Tastenkürzel" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normaler Übergang" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Überschreiben" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Kantenglättung an" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Kantenglättung aus" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Ebene" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "Kopieren" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Größe der Zeichenfläche ändern" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Ausgewählte Pixel bewegen" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Bild größer als die Zeichenfläche" #: ../Pinta.Core/Classes/Document.cs:861 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 Zeichenfläche. Wie möchten Sie " "vorgehen?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Zeichenfläche erweitern" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Größe der Zeichenfläche nicht ändern" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Bild kann nicht eingefügt werden" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Die Zwischenablage enthält kein Bild." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Ersetzen" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Verschmelzung (+) (Strg + Linksklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Ausschluss (-) (Rechtsklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "XOR (Strg + Rechtsklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Überschneidung (Umschalt + Linksklick)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Auswahlmodus: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplizieren" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Addieren" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Nachbelichten" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Abwedeln" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Spiegeln" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glühen" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Überlagern" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Differenzmenge" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negieren" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Aufhellen" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Abdunkeln" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Bildschirm" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "XOR" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pixel fertigstellen" #: ../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 senkrecht spiegeln" #: ../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 senkrecht spiegeln" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Bildgröße ändern" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0}-Bild ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Rendereffekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Kein Werkzeug ausgewählt." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Nicht gespeichertes Bild {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Hintergrund" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Neues Bild" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Nicht unterstütztes Dateiformat" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Bild öffnen" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Zugriff verweigert" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Datei konnte nicht geöffnet werden: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatische Tonwertkorrektur" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Schwarz/Weiß" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Helligkeit/Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Helligkeit" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Gradationskurven" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Farbton/Sättigung" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Farbton" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Sättigung" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Helligkeit" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Farben umkehren" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Tonwertkorrektur" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Tonwerttrennung" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ebenenabgleich" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rot" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grün" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blau" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Verknüpft" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Rauschen hinzufügen" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Rauschen" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensität" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Farbsättigung" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Deckkraft" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Verbeulen" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Verzerren" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Menge" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Versatz" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Wolken" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Rendern" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Skalieren" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Stärke" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Startwert" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Kanten erkennen" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stilisieren" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Winkel" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Prägen" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Unschärfe" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmente" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Abstand" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Gefrorenes Glas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaußscher Weichzeichner" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Tintenskizze" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Künstlerisch" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Tintenkontur" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Färbung" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-Fraktal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualität" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Lupe" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot-Fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Prozent" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Bewegungsunschärfe" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Zentriert" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Ölgemälde" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Pinselgröße" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grobkörnigkeit" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Umriss" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Dicke" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Bleistiftskizze" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Stiftdicke" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Farbbereich" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Verpixeln" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Zellgröße" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polare Umkehrung" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiale Unschärfe" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Rotaugenreduktion" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Fehlergrenze" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Sättigungsprozentwert" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Tipp: Beste Ergebnisse erzielt man, wenn zuvor jedes Auge mittels " "Auswahlwerkzeugen ausgewählt wurde." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Rauschen verringern" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Stärke" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Schärfen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Portrait weichzeichnen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Weichheit" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Beleuchtung" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Wärme" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Kachelspiegelung" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Kachelgröße" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Verdrehen" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Kantenglättung" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Defokussieren" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Klammern" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Umbrechen" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Vordergrundfarbe" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Hintergrundfarbe" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Durchsichtig" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Mittelpunkt" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Vergrößerungsunschärfe" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Karte übertragen" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Leuchtkraft" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rot " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blau " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Zurücksetzen" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tipp: Rechtsklick zum Entfernen von Steuerpunkten." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Eingabe-Histogramm" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Eingabe" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Ausgabe" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Ausgabe-Histogramm" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatisch" #: ../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:106 msgid "Choose Primary Color" msgstr "Vordergrundfarbe auswählen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Hintergrundfarbe auswählen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Palettenfarbe wählen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" "Anklicken, um zwischen der Vordergrundfarbe und Hintergrundfarbe " "umzuschalten." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" "Hier klicken, um die Vordergrundfarbe und Hintergrundfarbe zurückzusetzen." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Anklicken, um die Vordergrundfarbe festzulegen." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Anklicken, um die Hintergrundfarbe festzulegen." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Linksklick, um die Vordergrundfarbe festzulegen. Rechtsklick, um die " "Hintergrundfarbe festzulegen. Mittelklick, um die Palettenfarbe festzulegen." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Ebene wird angezeigt" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Ebene ist versteckt" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Kreise" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Gitter" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Spritzer" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Quadrate" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Strich" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Pfeil" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Größe" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Pfeilgröße verringern" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Pfeilgröße erhöhen" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Winkelverschiebung verringern" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Winkelverschiebung vergrößern" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Länge" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Längsverschiebung verringern" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Längsverschiebung vergrößern" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Pinselbreite" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Pinselbreite verringern" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Pinselbreite vergrößern" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Füllstil" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Nur Umrandung" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Nur Füllung" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Umrandung und Füllung" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Formtyp" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Offene Linien-/Kurvenserie" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Geschlossene Linien-/Kurvenserie" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Abgerundete Linienserie" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Formtyp ändern" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Punkt gelöscht" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Gelöscht" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Punkt hinzugefügt" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Hinzugefügt" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Geändert" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Abgeschlossen" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Offene Kurvenform" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Geschlossene Kurvenform" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Abgerundete Linienform" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Eckenradius verkleinern" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Eckenradius vergrößern" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Stempel klonen" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Strg + Linksklick, um einen Ausgangspunkt festzulegen, Linksklick zum Malen." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Farbpipette" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Abtastgröße" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Einzelnes Pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 × 3-Bereich" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 × 5-Bereich" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 × 7-Bereich" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 × 9-Bereich" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Bild" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Nach Auswahl" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Werkzeug nicht wechseln" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Zum vorherigen Werkzeug wechseln" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Zum Stift wechseln" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Bleistift" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Elliptische Auswahl" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Klicken und ziehen, um einen elliptischen Bereich auszuwählen. Umschalttaste " "gedrückt halten, wählt einen Kreis aus." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Linksklick, um eine Form in der Vordergrundfarbe zu zeichnen.\n" "Linksklick auf eine Form, um einen Steuerpunkt hinzuzufügen.\n" "Linksklick auf einen Steuerpunkt, um ihn mit der Maus zu bewegen. \n" "Rechtsklick auf einen Steuerpunkt und die Maus bewegen, um die Spannung zu " "ändern.\n" "Umschalttaste gedrückt halten, um die Winkel einzurasten.\n" "Pfeiltasten benutzen, um den ausgewählten Steuerpunkt zu verschieben.\n" "Strg + linke/rechte Pfeiltaste benutzen, um den nächsten Steuerpunkt in der " "Reihe auszuwählen.\n" "Entf drücken, um den ausgewählten Steuerpunkt zu löschen.\n" "Leertaste drücken, um einen neuen Steuerpunkt an der aktuellen Mausposition " "hinzuzufügen.\n" "Strg halten und Leertaste drücken, um einen Steuerpunkt an der selben " "Position zu erstellen.\n" "Strg gedrückt halten und Linksklick, um eine neue Form an der selben " "Position zu erstellen.\n" "Strg gedrückt halten und außerhalb des Bildes klicken, um eine neue Form " "direkt am Rand zu beginnen.\n" "Eingabetaste drücken, um die Form abzuschließen." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Radiergummi" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Linksklick, um Zur Durchsichtigkeit zu radieren; Rechtsklick, um zur " "Hintergrundfarbe zu radieren. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Füllmodus" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Zusammenhängend" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Freihandform" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Farbverlauf" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Linearer Verlauf" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Linearer gespiegelter Verlauf" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Linearer rautenförmiger Verlauf" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radialer Verlauf" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kegelförmiger Verlauf" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Freie Auswahl" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klicken und ziehen, um einen Bereich auszuwählen" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Linie/Kurve" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Zauberstab" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Nach Farbe auswählen" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Linksklick und ziehen, um den ausgewählten Bildinhalt zu verschieben. " "Rechtsklick und ziehen, um den ausgewählten Bildinhalt zu drehen." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Auswahl verschieben" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Linksklick und ziehen, um den Auswahlumriss zu verschieben. Rechtsklick und " "ziehen, um den Auswahlumriss zu drehen." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pinsel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Typ" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Farbeimer" #: ../Pinta.Tools/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 Vordergrundfarbe zu füllen. Rechtsklick " "zum Füllen mit der Hintergrundfarbe." #: ../Pinta.Tools/Tools/PanTool.cs:37 msgid "Pan" msgstr "Ausschnitt verschieben" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klicken und ziehen, um den sichtbaren Bildbereich zu verschieben." #: ../Pinta.Tools/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 Freihandform mit 1 Pixel breiter Linie mit der " "Vordergrundfarbe zu zeichnen. Rechtsklick, um mit der Hintergrundfarbe zu " "zeichnen." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Einfärben" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Linksklick, um die Hintergrundfarbe mit der Vordergrundfarbe zu tauschen. " "Rechtsklick, zum Rückgängig machen." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rechteckige Auswahl" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Klicken und ziehen, um einen rechteckigen Bereich auszuwählen. Umschalttaste " "gedrückt halten, wählt ein Quadrat aus." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rechteck" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Abgerundetes Rechteck" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalisieren" #: ../Pinta.Tools/Tools/TextTool.cs:101 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 Vordergrundfarbe." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Schriftart" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Fett" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kursiv" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Unterstrichen" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Linksbündig" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Zentriert" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Rechtsbündig" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Textstil" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal und Kontur" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Hintergrund ausfüllen" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Konturbreite" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Konturbreite verringern" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Konturbreite erhöhen" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Linksklick zum Vergrößern. Rechtsklick zum Verkleinern. Klicken und Ziehen " "vergrößert auf den ausgewählten Bereich." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Neue Palettengröße festlegen" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Neue Palettengröße:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Änderungen an Bilddatei »{0}« vor dem Schließen speichern?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Wenn Sie nicht speichern, gehen alle Änderungen dauerhaft verloren." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Schließen, _ohne zu speichern" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Bildschirmfoto aufnehmen" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Verzögerung vor Aufnahme eines Bildschirmfotos (Sekunden):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Bilddateien" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Bilddatei speichern" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 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." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Schreibgeschützte Datei konnte nicht gespeichert werden." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Bild ist zu groß" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO-Dateien können nicht größer als 255 × 255 Pixel sein." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Ebenendeckkraft" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Ebene umbenennen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Ebene verbergen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Ebene anzeigen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Ebeneneigenschaften" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Drehen / Layer vergrößern" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Ergänzungen der Pinta-Gemeinschafft - Plattformspeziell" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Ergänzungen der Pinta-Gemeinschafft - Plattformübergreifend" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Beitragende in dieser Version:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Ehemalig Beitragende:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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 Rupp https://launchpad.net/~grissi\n" " Christian Schulz https://launchpad.net/~make-panic\n" " Daniel Winzen https://launchpad.net/~q-d\n" " Dennis Baudys https://launchpad.net/~thecondordb\n" " Ettore Atalan https://launchpad.net/~atalanttore\n" " Francisco Camenforte Torres https://launchpad.net/~fct\n" " Gerd M Hofmann https://launchpad.net/~gmhofmann\n" " Ghenrik https://launchpad.net/~ghenrik-deactivatedaccount\n" " Gregor Santner https://launchpad.net/~gregi94\n" " Hanh Pham https://launchpad.net/~joel-nohnn\n" " Hendrik Knackstedt https://launchpad.net/~hennekn\n" " Jannis Christ https://launchpad.net/~fliegenfalle\n" " Jaël Noah Herzog https://launchpad.net/~jaelherzog\n" " Johannes Rössel https://launchpad.net/~joey-muhkuhsaft\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Kristin S. https://launchpad.net/~kiristiba\n" " Marco Rolappe https://launchpad.net/~mrolappe\n" " Mathias Fussenegger https://launchpad.net/~f-mathias\n" " Matthias Mailänder https://launchpad.net/~mailaender\n" " Phillip Sz https://launchpad.net/~phillip-sz\n" " Richard Liebig https://launchpad.net/~systheron-deactivatedaccount\n" " Tobias Bannert https://launchpad.net/~toba\n" " ziggystar https://launchpad.net/~ziggystar-gmx" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Übersetzt von:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basiert auf der Arbeit von Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Einige Symbole benutzt von:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "In Mono geschrieben:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Über Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versionsinfo" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Lizenz" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Veröffentlicht unter der MIT X11-Lizenz" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta-Mitwirkende" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Einzelheiten" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Fehler melden …" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-Qualität" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualität: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Name:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Sichtbar" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mischmodus" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Deckkraft:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Zwischenablage" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Angepasst" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Voreinstellung:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Breite:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "Pixel" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Höhe:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Ausrichtung:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Hochformat" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Querformat" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Hintergrund:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Weiß" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Hintergrundfarbe" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pfad" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Ausblenden" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockbar" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Schwebend" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatisch ausblenden" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Diese Nachricht anzeigen und beenden." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Programmversion anzeigen" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "Anzahl Threads, die zur Bildberechnung benutzt werden" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Verwendung: pinta [Dateien]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Optionen: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Datei" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "Bearbeite_n" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Ansicht" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Bild" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Ebenen" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "A_npassungen" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effe_kte" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Er_weiterungen" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fenster" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Werkzeugfenster" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Hilfe" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptionsName" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Zeichenfläche" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Verlauf" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Ebenen" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Bilder" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Werkzeuge" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kantenverhalten" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Mehrfachauswahl:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Aktivieren" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Deaktivieren" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Keine Auswahl" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "In den Paketquelle verfügbar:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Aktualisierung verfügbar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "" "Diese Erweiterung kann mangels fehlender Abhängigkeiten nicht geladen werden" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Erforderlich ist: {0} v{1}, gefunden wurde v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Es fehlt: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Installierte Version" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Paketquellenversion" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Download-Größe" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Die folgenden, durch diese Erweiterung benötigten Abhängigkeiten, sind nicht " "verfügbar:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installation abgebrochen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Einige der benötigten Erweiterungen wurden nicht gefunden" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installation gescheitert" #: 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 "Installiert" #: 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 "Aktualisierungen" #: 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 "Galerie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Alle Paketquellen" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Paketquellen verwalten …" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} Aktualisierung verfügbar" msgstr[1] "{0} Aktualisierungen verfügbar" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Paketquelle aktualisieren" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Erweiterung installieren" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Erweiterungspakete" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Es wurden keine Erweiterungen gefunden" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Erweiterung" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Andere" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Deinstallieren" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Die folgenden Pakete werden entfernt:" #: 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 "" "Auf Grund nicht erfüllbarer gemeinsamer Abhängigkeiten werden die folgenden " "Erweiterungen ebenso deinstalliert:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Wegen Abhängigkeitskonflikten konnten die ausgewählten Erweiterungen nicht " "installiert werden." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Die folgenden Pakete werden installiert:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (im persönlichen Ordner)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Die folgenden Pakete müssen entfernt werden:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Die folgenden Abhängigkeiten konnten nicht erfüllt werden:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Sind Sie sicher, dass Sie die Installation abbrechen möchten?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Die Erweiterungen werden installiert" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Die Installation ist gescheitert!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Die Installation wurde mit Warnungen abgeschlossen." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Die Erweiterungen werden deinstalliert" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Die Deinstallation ist gescheitert!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Die Deinstallation wurde mit Warnungen abgeschlossen." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Paketquelle wird registriert" #: 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 "Es ist ein Ausnahmefehler aufgetreten: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Weitere Informationen" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installieren …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Aktualisieren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Deinstallieren …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" "Zusätzliche Erweiterungen sind erforderlich, um diese Operation auszuführen." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Die folgenden Erweiterungen werden installiert:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Es wurden keine Aktualisierungen gefunden" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Aktualisieren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Alle aktualisieren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Paketquelle:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Aus Datei installieren …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installieren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Erweiterungspaketquelleverwaltung" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Neue Paketquelle hinzufügen" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" "Bitte den Ort der Paketquelle auswählen, die Sie registrieren wollen:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Eine Netzpaketquelle registrieren" #: 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 "Eine lokale Paketquelle registrieren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Pfad:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Auswählen …" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Fortschritt" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(bereitgestellt von {0})" pinta-1.6/po/fr.po0000664000175000017500000021123712474707515015236 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: pinta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-28 17:30+0000\n" "Last-Translator: Jean Marc \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "Language: fr_FR\n" "X-Poedit-SourceCharset: utf-8\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Créer et modifier facilement des images" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Éditeur d'images" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Éditeur d'image Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gestionnaire d’extensions" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Défaire" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Rétablir" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Couper" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copier" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copie fusionnée" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Coller" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Coller dans un nouveau calque" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Coller dans une nouvelle image" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Supprimer la sélection" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Remplir la sélection" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverser la sélection" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Tout sélectionner" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Tout désélectionner" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Ouvrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Enregistrer sous..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Réinitialiser" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Définir le nombre de couleurs" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palette" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Effacer la sélection" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Désélectionner" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Ouvrir le fichier de palette" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Fichiers palette (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Tous les fichiers" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Erreur" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Enregistrer le fichier de palette" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Palette Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Palette GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "À propos" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Rogner" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Rognage automatique" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Redimensionner l'image..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensionner la toile ..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Retourner horizontalement" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Retourner verticalement" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Rotation horaire de 90°" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Rotation anti-horaire de 90°" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotation de 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Aplatir" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Ajouter un nouveau calque" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Supprimer le calque" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Dupliquer le calque" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Fusionner avec le calque inférieur" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importer depuis un fichier..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Calque Zoom / Rotation..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Déplacer le calque vers le haut" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Déplacer le calque vers le bas" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propriétés du calque" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Ouvrir un fichier image" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importer depuis un fichier" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom avant" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom arrière" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Meilleur ajustement" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Adapter l'échelle à la sélection" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Taille normale" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barre d'outils" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grille des pixels" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Règles" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Pouces" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimètres" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Plein écran" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fenêtre" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unités des règles" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Outil" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Raccourcis clavier" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Composition normale" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Écraser" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Lissage activé" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Lissage desactivé" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Calque" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copier" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensionner le canevas" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Déplacer les pixels sélectionnés" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Agrandir l'image plus que le canevas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Elargir la toile" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ne pas changer la taille de la toile" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "L'image ne peut pas être collée" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Le presse-papier ne contient pas d'image" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Remplacer" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Union (+) (Ctrl + Clic gauche)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclusion (-) (Clic droit)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Clic droit)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersection (Shift + Clic gauche)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Mode de sélection : " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplier" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additif" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Densité couleur +" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Densité couleur -" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflet" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Halo" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Recouvrement" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Différence" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Négation" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Éclaircir" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Assombrir" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Ecran" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dernière retouche sur les pixels" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensionner l'image" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Image {0} ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Effet de rendu" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Aucun outil sélectionné" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Image non enregistrée {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Arrière-plan" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nouvelle image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Format de fichier non pris en charge" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Ouvrir une image" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Permission refusée" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossible d'ouvrir le fichier : {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Niveau automatique" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Noir et Blanc" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Luminosité / Contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Luminosité" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Courbes" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Teinte / Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Teinte" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturation" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Clarté" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverser les couleurs" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveaux" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Postériser" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sépia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajustement des niveaux" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rouge" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Vert" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Bleu" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Lié" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Ajouter du bruit" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Bruit" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensité" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturation des couleurs" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Couverture" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bomber" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distortion" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Valeur" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Décalage" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nuages" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Effectuer le rendu" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Échelle" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Puissance" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Grain" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Détecter les contours" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Styliser" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Gaufrer" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmentation" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Floutage" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distance" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotation" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Verre dépoli" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Flou gaussien" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Rayon" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Photo" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Croquis à l'encre" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistique" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contours à l'encre" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Coloration" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractale de Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Facteur" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualité" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractale de Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Médian" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Pourcentage" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Flou de mouvement" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centré" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Peinture à l'huile" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Taille du pinceau" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Rugosité" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Sélection des contours" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Epaisseur" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Croquis au crayon" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Taille de la mine du crayon" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Gamme de couleurs" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixeliser" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Taille de cellule" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Transformation Symétrique" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Flou radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Suppression des yeux rouges" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolérance" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Pourcentage de saturation" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Réduire le bruit" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Force" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Augmenter la netteté" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Adoucir le portrait" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Douceur" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Éclairage" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Chaleur" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Réflexion mosaïque" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Taille des carreaux" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Tordre" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Anticrénelage (lissage des polices)" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Défocaliser" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Attacher" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Envelopper" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primaire" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secondaire" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparent" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Excentration" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Flou d'arrière plan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Carte de transfert" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RVB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminosité" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rouge " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Bleu " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Réinitialiser" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Astuce : clic droit pour supprimer les points de contrôle." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogramme d'entrée" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrée" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Sortie" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogramme de sortie" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Auto" #: ../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:106 msgid "Choose Primary Color" msgstr "Choisir la couleur primaire" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Choisir la couleur secondaire" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Choisir la palette de couleurs" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Cliquer pour passer de la couleur primaire à la couleur secondaire" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Cliquez ici pour réinitialiser les couleurs primaires et secondaires" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Cliquer pour sélectionner la couleur primaire" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Cliquer pour sélectionner la couleur secondaire" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Choix de couleur primaire : clic gauche. Choix de couleur secondaire : clic " "droit. Palette de couleur : clic molette." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Calque visible" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Calque caché" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cercles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grille" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Éclaboussure" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Carrés" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Tableau de bord" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Flèche" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Taille" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Diminuer la taille de la flèche" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Augmenter la taille de la flèche" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Diminuer l'arrondissement de l'angle" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Augmenter l'arrondissement de l'angle" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Longueur" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Diminuer la longueur" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Augmenter la longueur" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Largeur du pinceau" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Diminuer la taille du pinceau" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Augmenter la taille du pinceau" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Style de remplissage" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Forme extérieure" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Forme de remplissage" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Forme de remplissage et extérieure" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Type de forme" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Séries de lignes/courbes ouvertes" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Séries de lignes/courbes fermées" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Séries de lignes arrondies" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Type de forme changé" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Point supprimé" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Supprimé" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Point ajouté" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Ajouté" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modifié" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Terminé" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Forme de courbe ouverte" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Forme de courbe fermée" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Forme de ligne arrondie" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Diminuer le rayon de la forme" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Augmenter le rayon de la forme" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Tampon duplicateur" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pipette" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Échantillonage" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Pixel Unique" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Région 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Région 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Région 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Région 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Image" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Après la sélection" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne pas changer d'outil" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Changer pour l'outil précédent" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Changer pour l'outil Crayon" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Crayon" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Sélection elliptique" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Cliquez et faites glisser pour dessiner une sélection elliptique. Maintenez " "la touche Maj pour contraindre un cercle." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gomme" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mode de remplissage" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contigu" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forme Libre" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Dégradé" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Dégradé linéaire" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Dégradé linéaire réfléchi" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Dégradé linéaire en diamant" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Dégradé radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Dégradé conique" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Sélection lasso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Ligne/Courbe" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Sélection baguette magique" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Cliquer pour sélectionner une région de couleur similaire" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Clic gauche et faites glisser la sélection pour déplacer le contenu " "sélectionné. Faites un clic droit et faites glisser la sélection pour faire " "pivoter le contenu sélectionné." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Déplacer la Sélection" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Clic gauche et faites glisser la sélection pour déplacer le contour de la " "sélection. Faites un clic droit et faites glisser la sélection à tourner le " "contour de la sélection." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pinceau" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Type" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Pot de peinture" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Déplacement" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Cliquer et déplacer pour naviguer dans l'image." #: ../Pinta.Tools/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 "" "bouton gauche pour dessiner à main levée des lignes d'un pixel de large en " "couleur primaire. Bouton droit pour utiliser la couleur secondaire." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolorisation" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Cliquer à gauche pour remplacer la couleur secondaire avec la couleur " "primaire. Cliquer à droite pour inverser." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Sélection rectangulaire" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Cliquez et faites glisser pour tracer une sélection rectangulaire. Maintenez " "la touche Maj pour contraindre un carré." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rectangle aux coins arrondis" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Texte" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Texte - Finaliser" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Police" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Gras" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Italique" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Souligné" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Aligné à gauche" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Aligné au centre" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Aligné à droite" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Style du texte" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal avec contours" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Remplir le fond" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Largeur du contour" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Diminuer la taille du contour" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Augmenter la taille du contour" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Redimensionner Palette" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nouvelle taille de la palette :" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Enregistrer les changements de l'image « {0} » avant de fermer ?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Si vous n'enregistrez pas, toutes les modifications seront perdues." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Fermer _sans enregistrer" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Prendre une capture d'écran" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Délai avant de prendre une capture d'écran (en secondes) :" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Fichiers image" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Enregistrer le fichier image" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 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." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Impossible d'enregistrer un fichier en lecture seule." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Image trop grande" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Les fichiers ICO ne peuvent dépasser 255 x 255 pixels." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacité du calque" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renommer le calque" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Cacher le calque" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Afficher le calque" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propriétés du calque" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Tourner / Zoomer le calque" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Ont contribué à cette version :" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Contributeurs précédents :" #: ../Pinta/Dialogs/AboutDialog.cs:146 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 Marc https://launchpad.net/~m-balthazar\n" " Jean-François Huck https://launchpad.net/~huckjf-aquitania\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Manuel Berrocal https://launchpad.net/~manu-berrocal\n" " Marting https://launchpad.net/~marting\n" " Nicolas https://launchpad.net/~nicolas-pecqueux\n" " Olivier Dufour https://launchpad.net/~olivier-duff\n" " Philippe AUCOIN https://launchpad.net/~philippe-aucoin\n" " Quentin Pagès https://launchpad.net/~kwentin\n" " RM https://launchpad.net/~l4rt1st-1nc0nnu\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\n" " jc1 https://launchpad.net/~jc1-quebecos\n" " satbadkd https://launchpad.net/~satbadkd" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Traduit par :" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basé sur le travail de Paint.NET :" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Utilisation d'icônes provenant de :" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Réalisé avec Mono :" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "À propos de Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Information de version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licence" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Mis à disposition sous licence MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Droits d’auteur" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "par les contributeurs de Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Détails" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Signaler un bogue..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualité JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualité : " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nom :" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mode de mélange" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacité :" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Presse-papier" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Personnalisé" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Préconfiguration :" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Largeur :" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Hauteur :" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientation :" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Portrait" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Paysage" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Arrière-plan :" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Blanc" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Couleur d’arrière-plan" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titre" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Emplacement" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Masquer" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancrable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flottant" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Cacher automatiquement" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Afficher ce message et quitter" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Afficher la version de l'application." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "nombre de fils d'exécution à utiliser pour le rendu" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Utilisation : pinta [fichiers]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Options : " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fichier" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Édition" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Affichage" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Image" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Calques" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Réglages" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effet_s" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Extensions" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fenêtre" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Boites à outils" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Aide" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nom de l'option" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Zone de travail" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historique" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Calques" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Images" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Outils" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportement du bord" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Sélection multiple :\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Activer" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Désactiver" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Aucune sélection" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Disponible dans le dépôt :" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Mise à jour disponible" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Cette extension ne peut être chargée faute de librairies" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Requis : {0} v{1}, trouvé v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Manquant : {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Version installée" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "version du référentiel" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Taille du téléchargement" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Les librairies suivantes, nécessaires pour cette extension, ne sont pas " "disponibles :" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Installation annulée" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Certains greffons requis n'ont pas été trouvés" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "L’installation a échoué" #: 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 "Installé" #: 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 "Mise à jour disponible" #: 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 "Galerie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Tous les dépôts" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Gérer les dépôts..." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "{0} mises à jour disponible" msgstr[1] "{0} mises à jour disponibles" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Dépôt en cours de mise à jour" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Installer le paquet d'extensions" #: 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 "Aucune extension trouvée" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Extension" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Autres" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Désinstaller" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Les paquets suivants seront désinstallés :" #: 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 "" "Il y a des extensions dépendant des précédentes, qui seront aussi " "désinstallées :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "les extensions choisies ne peuvent être installées en raison " "d'incompatibilités avec d'autres." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Les paquets suivants seront installés :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (dans le répertoire utilisateur)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Les extensions suivantes doivent être désinstallées :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Les incompatibilités suivantes doivent être résolues :" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Voulez-vous vraiment annuler l'installation ?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Extensions en cours d'installation" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "L'installation a échoué." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "L'installation s'est déroulée avec des avertissements." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Désinstallation des extensions" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "La désinstallation a échoué !" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "La désinstallation s'est déroulée avec des avertissements." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Enregistrement du dépôt" #: 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 "Une exception a été levée : {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Informations supplémentaires" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Installation..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Mise à jour" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Désinstaller..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "" "Des extensions supplémentaires sont requises pour effectuer cette opération." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Les extensions suivantes seront installées :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Aucune mise à jour trouvée" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Rafraichir" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Tout mettre à jour" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Référentiel :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Installer à partir d'un fichier..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installation" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Gestionnaire de dépôts d'extensions" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Ajouter un nouveau référentiel" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "" "Sélectionnez l'emplacement du référentiel que vous voulez enregistrer :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Enregistrer un référentiel en ligne" #: 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 "Enregistrer un référentiel local" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Emplacement :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Parcourir…" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "En cours" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(fourni par {0})" pinta-1.6/po/el.po0000664000175000017500000023243212474707515015227 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:03+0000\n" "Last-Translator: Chris Taklis (aka Kailor) \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Επεξεργασία εικόνας Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Δημιουργήστε και επεξεργαστείτε εικόνες εύκολα" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Επεξεργασία εικόνας" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Επεξεργασία εικόνας Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Διαχειριστής προσθέτων" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Αναίρεση" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Επανάληψη τελευταίας ενέργειας" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Αποκοπή" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Αντιγραφή" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Αντιγραφή συγχώνευσης" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Επικόλληση" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Επικόλληση σε νέο επίπεδο" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Επικόλληση σε νέα εικόνα" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Διαγραφή επιλογής" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Γέμισμα επιλογής" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Αντιστροφή επιλογής" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Επιλογή όλων" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Αποεπιλογή όλου" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Άνοιγμα..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Αποθήκευση ως…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Επαναφορά στην προεπιλογή" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Καθορισμός αριθμού χρωμάτων" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Παλέτα" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Διαγραφή επιλογής" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Αποεπιλογή" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Άνοιγμα αρχείου παλέτας" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Αρχεία παλέτας (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Όλα τα αρχεία" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Σφάλμα" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Αποθήκευση Αρχείου Παλέτας" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Παλέττα Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Παλέττα Gimp (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Νέο..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Περί" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Περικοπή στην επιλογή" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Αυτόματη περικοπή" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Αλλαγή μεγέθους εικόνας..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Αλλαγή μεγέθους καμβά..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Αναστροφή οριζόντια" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Αναστροφή κατακόρυφα" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Περιστροφή 90° δεξιόστροφα" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Περιστροφή 90° αριστερόστροφα" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Περιστροφή 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Ισοπέδωση" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Προσθήκη νέου επιπέδου" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Διαγραφή επιπέδου" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Διπλότυπο επιπέδου" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Συγχώνευση επιπέδου προς τα κάτω" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Εισαγωγή από αρχείο..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Περιστροφή / Μεγέθυνση επιπέδου..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Μετακίνηση επιπέδου προς τα πάνω" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Μετακίνηση επιπέδου προς τα κάτω" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Ιδιότητες επιπέδου..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Άνοιγμα αρχείου εικόνας" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Εισαγωγή από αρχείο" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Μεγέθυνση" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Σμίκρυνση" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Βέλτιστη προσαρμογή" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Μεγέθυνση στην επιλογή" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Κανονικό μέγεθος" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Εργαλειοθήκη" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Πλέγμα εικονοστοιχείου" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Χάρακες" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Εικονοστοιχεία" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Ίντσες" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Εκατοστά" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Πλήρης οθόνη" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Παράθυρο" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Μονάδες χάρακα" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Αποθήκευση όλων" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Κλείσιμο όλων" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Εργαλείο" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Πλήκτρο συντόμευσης" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Κανονική ανάμειξη" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Αντικατάσταση" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Ενεργοποίηση εξομάλυνσης γραφικών" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Απενεργοποίηση εξομάλυνσης γραφικών" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Επίπεδο" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "αντιγραφή" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Αλλαγή μεγέθους καμβά" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Μετακίνηση επιλεγμένων εικονοστοιχείων" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Η εικόνα είναι μεγαλύτερη από τον καμβά" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Η εικόνα που επικολλήθηκε είναι μεγαλύτερη σε μέγεθος από τον καμβά. Τι " "θέλετε να κάνετε;" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Επέκταση του καμβά" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Να μην αλλάξει το μέγεθος του καμβά" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Η εικόνα δεν μπορεί να επικολληθεί" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Το πρόχειρο δεν περιέχει εικόνα." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Αντικατάσταση" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Ένωση (+) (Ctrl + αριστερό κλικ)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Αποκλεισμός (-) (δεξί κλικ)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Αποκλειστικό ή (Ctrl + δεξί κλικ)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Διασταύρωση (Shift + αριστερό κλικ)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Λειτουργία επιλογής: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Κανονικό" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Πολλαπλασιαστικό" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Προσθετικό" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Κάψιμο χρώματος" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Υπερέκθεση χρώματος" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Αντανάκλαση" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Λάμψη" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Επικάλυψη" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Διαφορά" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Αρνητικό" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Πιο φωτεινό" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Πιο σκοτεινό" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Οθόνη" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Αποκλειστικό ή" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "Αναποδογύρισμα επιπέδου οριζόντια" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Αναποδογύρισμα επιπέδου κάθετα" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Αλλαγή μεγέθους εικόνας" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} εικόνα ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Απόδοση αποτελέσματος" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Κανένα εργαλείο δεν επιλέχθηκε" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Μη αποθηκευμένη εικόνα {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Παρασκήνιο" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Νέα εικόνα" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Άνοιγμα εικόνας" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Άρνηση πρόσβασης" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Δεν ήταν δυνατό να ανοιχτεί το αρχείο: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Αυτόματο επίπεδο" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Ασπρόμαυρο" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Φωτεινότητα / αντίθεση" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Φωτεινότητα" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Αντίθεση" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Καμπύλες" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Απόχρωση / κορεσμός" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Αντιστροφή χρωμάτων" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Επίπεδα" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Ποστεροποίηση" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Σέπια" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ρύθμιση επιπέδων" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Κόκκινο" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Πράσινο" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Μπλε" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Συνδεμένο" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Προσθήκη θορύβου" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Θόρυβος" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Ένταση" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Κορεσμός χρώματος" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Κάλυψη" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Διόγκωση" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Παραμόρφωση" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Ποσότητα" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Μετατόπιση" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Σύννεφα" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Απόδοση" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Κλίμακα" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Δύναμη" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Αρχική τυχαία τιμή" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Εντοπισμός άκρων" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Πρόσδοση ύφους" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Γωνία" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Εμβάθυνση" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Κατακερμάτιση" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Θολώματα" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Τεμάχια" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Απόσταση" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Περιστροφή" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Σμυριδωμένο γυαλί" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Θόλωση Γκάους" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Ακτίνα" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Φωτογραφία" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Σκίτσο μελάνης" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Καλλιτεχνικό" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Περίγραμμα μελανιού" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Χρωματισμός" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Φράκταλ Τζούλια" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Συντελεστής" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Ποιότητα" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Μεγένθυση" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Φράκταλ Μάντελμπροτ" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Διάμεση τιμή" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Ποσοστημόριο" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Θόλωση κίνησης" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Στο κέντρο" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Ζωγραφική λαδομπογιάς" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Μέγεθος πινέλου" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Τραχύτητα" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Εξωτερικό περίγραμμα" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Πάχος" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Σκίτσο με μολύβι" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Μέγεθος μύτης μολυβιού" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Εύρος χρώματος" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Εικονοστοιχειοποίηση" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Μέγεθος κελιού" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Πολική αναστροφή" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Ακτινικό θόλωμα" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Χρησιμοποίηση χαμηλής ποιότητας για προεπισκοπήσεις, μικρές εικόνες και " "μικρές γωνίες. Χρησιμοποίηση υψηλής ποιότητας για βέλτιστη ποιότητα, μεγάλες " "εικόνες και μεγάλες γωνίες." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Αφαίρεση κόκκινου ματιού" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Ανοχή" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Υπόδειξη: Για καλύτερα αποτελέσματα, χρησιμοποιείστε τα εργαλεία επιλογής " "για την επιλογή κάθε οφθαλμού." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Μείωση θορύβου" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Δύναμη" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Ανάγλυφο" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Όξυνση" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Κάντε πιο \"απαλό\" το ποτραίτο" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Απαλότητα" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Φωτισμός" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Θερμότητα" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Αντανάκλαση πλακιδίου" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Μέγεθος στοιχείων" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Συστροφή" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Εξομάλυνση" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Μη εστίαση" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Μετατόπιση κέντρου" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Θόλωμα μεγέθυνσης" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Μεταφορά χάρτη" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Φωτεινότητα" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Κόκκινο " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Μπλε " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Επαναφορά" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Βοήθημα: Πατήστε με δεξί κλικ για να αφαιρέσετε τα σημεία ελέγχου." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Ιστόγραμμα εισόδου" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Είσοδος" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Έξοδος" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Ιστόγραμμα εξόδου" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "Επιλογή πρωτεύοντος χρώματος" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Επιλογή δευτερεύοντος χρώματος" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Επιλογή χρώματος παλέττας" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" "Πατήστε για να αλλάξετε μεταξύ πρωτεύοντος και δευτερεύοντος χρώματος." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Πατήστε για να αρχικοποιήσετε το πρωτεύον και το δευτερεύον χρώμα." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Πατήστε για να επιλέξετε πρωτεύον χρώμα." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Πατήστε για να επιλέξετε δευτερεύον χρώμα." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Αριστερό κλικ για να επιλέξετε πρωτεύον χρώμα. Δεξί κλικ για να επιλέξετε " "δευτερεύον χρώμα. Μεσαίο κλικ για να επιλέξετε χρώμα παλέτας." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Επίπεδο σε εμφάνιση" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Επίπεδο σε απόκρυψη" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Κύκλοι" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Πλέγμα" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Πιτσίλισμα" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Τετράγωνα" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Παύλα" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Βέλος" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Μέγεθος" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Μειώστε το μέγεθος του βέλους" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Αυξήστε το μέγεθος του βέλους" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Μείωση της γωνίας μετατόπισης" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Αύξηση της γωνίας μετατόπισης" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Μήκος" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Μείωση μήκους μετατόπισης" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Αύξηση μήκους μετατόπισης" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Πλάτος βούρτσας" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Μείωση μεγέθους βούρτσας" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Αύξηση μεγέθους βούρτσας" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Στυλ γεμίσματος" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Σχήμα περιγράμματος" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Σχήμα γεμίσματος" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Σχήμα γεμίσματος και περιγράμματος" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Τύπος Σχήματος" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Άνοιγμα σειράς Γραμμής/Καμπύλης" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Κλείσιμο σειράς Γραμμής/Καμπύλης" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Έλλειψη" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Σειρά στρογγυλεμένων γραμμών" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Το σημείο διαγράφηκε" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Διαγράφηκε" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Το σημείο προστέθηκε" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Προστέθηκε" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Τροποποιήθηκε" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Τελοιοποιήθηκε" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Στάμπα κλωνοποίησης" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Πιέστε Ctrl+Αριστερό Κλικ για να ορίσετε πηγή, αριστερό κλικ για να " "ζωγραφίσετε." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Επιλογέας χρώματος" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Αριστερό κλικ για να ορίσετε πρωτεύον χρώμα. Δεξί κλικ για να ορίσετε " "δευτερεύον χρώμα." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Δειγματοληψία" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Μεμονωμένο εικονοστοιχείο" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "περιοχή 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "περιοχή 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "περιοχή 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "περιοχή 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Εικόνα" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Μετά την επιλογή" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Μην αλλάξετε εργαλείο" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Αλλαγή σε προηγούμενο εργαλείο" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Αλλαγή στο εργαλείο Μολύβι" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Μολύβι" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ελλειψοειδής επιλογή" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Κάντε κλικ και σύρετε για να σχεδιάσετε μια ελλειπτική επιλογή. Κρατήστε το " "Shift για να το περιορίσετε σε ένα κύκλο." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Γόμα" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Αριστερό κλικ για να σβήσετε σε διαφανές, δεξί κλικ για να σβήσετε σε " "δευτερεύον χρώμα. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Λειτουργία πλημμύρας" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Συνεχόμενη" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Καθολική" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Σχήμα ελεύθερης μορφής" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Αριστερό κλικ για σχεδίαση με πρωτεύον χρώμα, δεξί κλικ για σχεδίαση με " "δευτερεύον χρώμα." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Διαβάθμιση χρώματος" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Κάντε κλικ και σύρετε για να σχεδιάσετε μια διαβάθμιση χρώματος από το " "πρωτεύον προς στο δευτερεύον χρώμα. Με δεξί κλικ το αντίστροφο." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Γραμμική διαβάθμιση χρώματος" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Γραμμική διαβάθμιση χρώματος σε αντανάκλαση" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Γραμμική διαβάθμιση χρώματος σε μορφή διαμαντιού" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Ακτινική διαβάθμιση χρώματος" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Κωνική διαβάθμιση χρώματος" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Επιλογή με λάσο" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" "Πατήστε κλικ και σύρετε για να σχεδιάσετε το περίγραμμα για μια επιλεγμένη " "περιοχή." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Γραμμή/Καμπύλη" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Επιλογή με το Μαγικό ραβδί" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Κλικ για επιλογή περιοχής παρόμοιου χρώματος." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Αριστερό κλικ και σύρετε την επιλογή για να σύρετε το επιλεγμένο " "περιεχόμενο. Δεξί κλικ και σύρετε την επιλογή για να περιστρέψετε το " "επιλεγμένο περιεχόμενο." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Μετακίνηση επιλογής" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Αριστερό κλικ και σύρετε την επιλογή για να μετακινήσετε το επιλεγμένο " "περίγραμμα. Δεξί κλικ και σύρετε την επιλογή για να περιστρέψετε το " "επιλεγμένο περίγραμμα." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Πινέλο" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Τύπος" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Κουβάς χρώματος" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Πανοραμική κίνηση" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Κλικ και σύρετε για να περιηγηθείτε στην εικόνα" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Επαναχρωματισμός" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Ορθογώνια επιλογή" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Κλικ και σύρετε για να σχεδιάσετε ένα ορθογώνιο επιλογής. Κρατήστε πατημένο " "το Shift για να το περιορίσετε σε τετράγωνο." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Ορθογώνιο" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Στρογγυλεμένο ορθογώνιο" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Κείμενο" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Κείμενο - Οριστικοποίηση" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Αριστερό κλικ για να τοποθετήσετε τον κέρσορα, έπειτα πληκτρολογήστε το " "κείμενο που θέλετε. Το χρώμα του κειμένου είναι το πρωτεύον χρώμα." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Γραμματοσειρά" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Έντονα" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Πλάγια" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Υπογράμμιση" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Αριστερή στοίχιση" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Στοίχιση στο κέντρο" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Δεξιά στοίχιση" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Στυλ κειμένου" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Κανονικό και περίγραμμα." #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Γέμισμα του φόντου" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Πάχος περιγράμματος" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Μείωση μεγέθους του περιγράμματος" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Αύξηση μεγέθους του περιγράμματος" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Αριστερό κλικ για μεγέθυνση. Δεξί για σμίκρυνση. Κλικ και σύρετε για " "μεγέθυνση της επιλογής σας." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Αλλαγή μεγέθους της παλέτας" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Νέο μέγεθος παλέττας:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Να αποθηκευτούν οι αλλαγές στην εικόνα «{0}» πριν το κλείσιμο;" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Αν δε γίνει αποθήκευση, οι αλλαγές θα χαθούν οριστικά." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Λήψη στιγμιότυπου οθόνης" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Καθυστέρηση για τη λήψη του στιγμιοτύπου οθόνης (σε δευτερόλεπτα):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Αρχεία εικόνων" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Αποθήκευση αρχείου εικόνας" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" "Το Pinta δεν υποστηρίζει δυνατότητα αποθήκευσης σε αυτό το φορμά αρχείου." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" "Δεν μπορεί να αποθηκευθεί πάνω σε αρχείο που είναι μόνο για ανάγνωση." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Η εικόνα είναι πολύ μεγάλη" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" "Αρχεία ICO δεν μπορούν να είναι μεγαλύτερα από 255 x 255 εικονοστοιχεία." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Ένα αρχείο με όνομα «{0}» υπάρχει ήδη. Θέλετε να το αντικαταστήσετε;" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Το αρχείο υπάρχει ήδη στην τοποθεσία «{1}». Με την αντικατάσταση θα " "αντικατασταθούν τα περιεχόμενά του." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Αδιαφάνεια επιπέδου" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Μετονομασία επιπέδου" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Απόκρυψη επιπέδου" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Εμφάνισηη επιπέδου" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Ιδιότητες επιπέδου" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Περιστροφή / μεγέθυνση επιπέδου" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Συνεργάτες για αυτή την έκδοση:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Προηγούμενοι συνεργάτες:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Chris Taklis (aka Kailor) https://launchpad.net/~ctaklis\n" " Dimitris Giouroukis 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" " Simos Xenitellis https://launchpad.net/~simosx\n" " Spiros Anthis https://launchpad.net/~sugaraddicted\n" " vassilis karamitros https://launchpad.net/~ecatodarcus\n" " Νιάνιος Ρωμανός https://launchpad.net/~romanos-nianios" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Μεταφράστηκε από:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Βασίζεται στο Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Γίνεται χρήση μερικών εικονιδίων από:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Βασίζεται στο Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Σχετικά με το Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Πληροφορίες έκδοσης" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Έκδοση" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Άδεια χρήσης" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Κυκλοφορεί κάτω απο την άδεια χρήσης MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Πνευματικά δικαιώματα" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "από τους συντελεστές της Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Λεπτομέρειες" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Ποιότητα JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Ποιότητα: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Όνομα:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Ορατό" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Λειτουργία ανάμιξης" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Αδιαφάνεια:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Πλάτος:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "εικονοστοιχεία" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Ύψος:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Τίτλος" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Διαδρομή" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Απόκρυψη" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Προσαρτήσιμο" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Ελεύθερα μετακινούμενη" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Αυτόματη απόκρυψη" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Διατήρηση αναλογίας διαστάσεων" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Αγκύρωση:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "Δείξε αυτό το μήνυμα και έξοδος." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Δείξε την έκδοση της εφαρμογής." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "αριθμός νημάτων που θα χρησιμοποιηθούν στην επεξεργασία" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Χρήση: pinta [αρχεία]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Επιλογές " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Αρχείο" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Επεξεργασία" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Προβολή" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "Ει_κόνα" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "Επίπε_δα" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Προσαρμογές" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Ε_φέ" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Πρόσθετα" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "Παρά_θυρα" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Εργαλειοθήκες" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Βοήθεια" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "ΌνομαΕπιλογής" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Καμβάς" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Ιστορικό" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Επίπεδα" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Εικόνες" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Εργαλεία" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Συμπεριφορά άκρων" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Πολλαπλή επιλογή:\n" "\n" #: 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 "Απαιτείται: {0} v{1}, βρέθηκε v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Λείπει: {0} v{1}" #: 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] "{0} διαθέσιμη ενημέρωση" msgstr[1] "{0} διαθέσιμες ενημερώσεις" #: 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 "Παρουσιάστηκε εξαίρεση: {0}" #: 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.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 "(παρέχεται από το {0})" pinta-1.6/po/sk.po0000664000175000017500000020444212474707515015244 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:03+0000\n" "Last-Translator: smutok \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Jednoduchá tvorba a úprava obrázkov" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor obrázkov" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta editor obrázkov" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Správca doplnkov" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Späť" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Znovu" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Vystrihnúť" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopírovať" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopírovať zlúčené" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Vložiť" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Vložiť do novej vrstvy" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Vložiť do nového obrázka" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Zmazať výber" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Vyplniť výber" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertovať výber" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Vybrať všetko" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Zrušiť výber" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Otvoriť..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Uložiť ako..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Nastaviť na predvolené" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Nastaviť počet farieb" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Vymazať výber" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Zrušiť výber" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Otvoriť súbor s paletou" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Súbory paliet (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Všetky súbory" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Chyba" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Uložiť súbor palety" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/HelpActions.cs:50 msgid "Pinta Website" msgstr "Web projektu Pinta" #: ../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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O aplikácii" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Zmeniť veľkosť obrázka..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Zmeniť veľkosť plátna..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Prevrátiť vodorovne" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Prevrátiť zvislo" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Otočiť o 90° v smere hodinových ručičiek" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Otočiť o 90° proti smeru hodinových ručičiek" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Otočiť o 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Sploštiť" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Pridať novú vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Odstrániť vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplikovať vrstvu" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Zlúčiť vrstvy" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Vložiť zo súboru..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Otočiť / Priblížiť vrstvu..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Posunúť vrstvu vyžšie" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Posunúť vrstvu nižšie" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Vlastnosti vrstvy..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Otvoriť súbor obrázka" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importovať zo súboru" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Priblížiť" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Oddialiť" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Prispôsobiť" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Priblížiť na výber" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Normálna veľkosť" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Panel nástrojov" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Mriežka pixlov" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Pravítka" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixle" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Palce" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetre" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Celá obrazovka" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Okno" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Jednotky pravítka" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Nástroj" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Klávesová skratka" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Normálne miešanie" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Prepísať" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Zapnúť antialiasing" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Vypnúť antialiasing" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Vrstva" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopírovať" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Zmeniť veľkosť plátna" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Presunúť vybrané pixle" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Obrázok väčší ako plátno" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "Vkladaný obrázok je väčší ako plátno. Čo chcete urobiť?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Roztiahnuť plátno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Nemeniť veľkosť plátna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Obrázok sa nedal vložiť" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Schránka neobsahuje obrázok." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Nahradiť" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Zjednotenie (+) (Ctrl + kliknutie ľavým)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Rozdiel (-) (kliknutie pravým)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "XOR (Ctrl + kliknutie pravým)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Prienk (Shift + kliknutie ľavým)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Režim výberu: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normálny" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Násobenie" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Prídavok" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Zmiešanie farieb" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Nepremiešanie farieb" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Odraz" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Žiara" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Prekrytie" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Rozdiel" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negácia" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Zosvetlenie" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Stmavenie" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Obrazovka" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Dokončiť pixle" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Zmeniť veľkosť obrázka" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} obrázok ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Vykresľovací efekt" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Nebol vybraný žiaden nástroj." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neuložený obrázok {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Pozadie" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nový obrázok" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Otvoriť obrázok" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Prístup zamietnutý" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Nedá sa otvoriť súbor: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Auto úrovne" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Čiernobiele" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Jas / kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Jas" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krivky" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Odtieň / sýtosť" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Invertovať farby" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Úrovne" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizovať" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sépia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Doladenie úrovní" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Červená" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zelená" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Modrá" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Spojené" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Pridať šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intenzita" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Sýtosť farby" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pokrytie" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Vyduť" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Deformovať" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Stupeň" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Posun" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Oblaky" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Vykresliť" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Mierka" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Sila" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Báza" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detekcia hrán" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Štylizovanie" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Uhol" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Reliéf" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmentovať" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Rozostrenia" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenty" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Vzdialenosť" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Otočenie" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Zamrznuté sklo" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gausovské rozostrenie" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Polomer" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotka" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Atramentový náčrt" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Umelecké" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Obtiahnutie atramentom" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Farbenie" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktál Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kvalita" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Priblíženie" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fraktál Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Medián" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Rozostrenie pohybom" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "V strede" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olejomaľba" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Veľkosť štetca" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Hrubosť" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Zvýrazniť obrysy" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Hrúbka" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Skica ceruzkou" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Veľkosť hrotu ceruzky" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Rozsah farieb" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelizovať" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Veľkosť bunky" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Prevrátenie pólov" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiálne rozostrenie" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Odstránenie červených očí" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerancia" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Redukovať šum" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Sila" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reliéf" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Doostriť" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Zjemniť portrét" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Mäkkosť" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Osvetlenie" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Teplo" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Dlaždicový odraz" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Veľkosť dlaždice" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Skrútiť" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Vyhladiť" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Rozostrenie" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Posunutie stredu" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Rozostrenie priblížením" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Prenosová mapa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Svietivosť" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Červená " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Modrá " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Pôvodné" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Kliknutím pravým tlačidlom odstránite kontrolné body." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histogram vstupu" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Vstup" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Výstup" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histogram výstupu" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automaticky" #: ../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:106 msgid "Choose Primary Color" msgstr "Vybrať primárnu farbu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Vybrať sekundárnu farbu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Vybrať farbu palety" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Kliknutím prepnete medzi primárnou a sekundárnou farbou" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Kliknite na zmenu primárnej a sekundárnej farby" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Kliknutím vyberiete primárnu farbu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Kliknutím vyberiete sekundárnu farbu" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Ľavým tlačidlom myši nastavíte primárnu farbu, pravým nastavíte sekundárnu " "farbu a prostredné umožní výber farby z palety." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Vrstva zobrazená" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Vrstva skrytá" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Kruhy" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Mriežka" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Špliechanec" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Štvorce" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Šípka" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Veľkosť" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Zmenšiť veľkosť šípky" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Zväčšiť veľkosť šípky" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Šírka štetca" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Zmenšiť veľkosť štetca" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Zväčšiť veľkosť štetca" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Štýl výplne" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Obrys útvaru" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Vyplnený útvar" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Útvar s výplňou a obrysom" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Bod odstránený" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Odstránené" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Bod pridaný" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Pridané" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Upravené" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Klonovacia pečiatka" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+kliknutím ľavým vyberiete zdroj, kliknutím ľavým kreslíte." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Výber farby" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Vzorkovanie" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Jednotlivý pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Oblasť 3 x 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Oblasť 5 x 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Oblasť 7 x 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Oblasť 9 x 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Obrázok" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Po vybraní" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Neprepínať nástroj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Prepnúť na predošlý nástroj" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Prepnúť na ceruzku" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Ceruzka" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Eliptický výber" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Kliknite a ťahajte na kreslenie eliptického výberu. Podržte Shift na " "vynútenie kruhového." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Guma" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Záplavový režim" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Spojité" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Všeobecné" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Voľný tvar" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Farebný prechod" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineárny prechod" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineárny odrazený prechod" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Lineárny diamantový prechod" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiálny prechod" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Kónický prechod" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Laso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknutím a ťahaním obtiahnete vybranú oblasť." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Čarovná palička" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Kliknutím vyberiete oblasť s podobnou farbou." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Kliknutím ľavým tlačidlom a ťahaním výberu presuniete vybraný obsah. " "Kliknutím pravým tlačidlom a ťahaním výberu otočíte vybraný obsah." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Presunúť výber" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Kliknutím ľavým tlačidlom a ťahaním výberu presuniete ohraničenie výberu. " "Kliknutím pravým tlačidlom a ťahaním výberu otočíte ohraničenie výberu." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Štetec" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Typ" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vedro s farbou" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Posúvanie" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Kliknutím a ťahaním sa pohybujete v obrázku" #: ../Pinta.Tools/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 "" "Ľavým tlačidlom myši kreslite voľnou rukou čiary s hrúbkou jeden bod " "primárnou farbou. Pravým tlačidlom použite sekundárnu farbu." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Prefarbiť" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Obdĺžnikový výber" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Kliknite a ťahajte na kreslenie pravouhlého výberu. Podržte Shift na " "vynútenie štvorcového." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Obdĺžnik" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zaoblený obdĺžnik" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text – Finalizácia" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Písmo" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Hrubé" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Kurzíva" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podčiarknuté" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Zarovnať doľava" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Zarovnať na stred" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Zarovnať doprava" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Štýl textu" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normálny a obrys" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Vyplniť pozadie" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Šírka obrysu" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Zmenšiť veľosť obrysu" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Zväčšiť veľosť obrysu" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Zmeniť veľkosť palety" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nová veľkosť palety:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Uložiť zmeny do obrázka „{0}“ pred zatvorením?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Ak neuložíte, všetky zmeny budú navždy stratené." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Zachytiť snímku obrazovky" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Oneskorenie pred zachytením snímky obrazovky (v sekundách):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Súbory obrázkov" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Uložiť súbor obrázka" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta nepodporuje ukladanie obrázkov do tohto typu súboru." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Nedá sa uložiť obrázok len na čítanie." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Obrázok je príliš veľký" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO súbory nesmú byť väčšie ako 255 x 255 pixelov." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Priehľadnosť vrstvy" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Premenovať vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Skryť vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Zobraziť vrstvu" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Vlastnosti vrstvy" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Otočiť / Priblížiť vrstvu" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Prispievatelia do tohto vydania:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Predchádzajúci prispievatelia" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " DAG Software https://launchpad.net/~dagsoftware\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Slavko https://launchpad.net/~linux-slavino\n" " helix84 https://launchpad.net/~helix84\n" " smutok https://launchpad.net/~smutok\n" " xXx https://launchpad.net/~michalhusar-it" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Preložili:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Založené na diele Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Použité niektoré ikony z:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Beží na platforme Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O aplikácii Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Info o verzii" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Verzia" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licencia" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Vydané pod licenciou MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Autorské práva" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "prispievatelia projektu Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kvalita: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Názov:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Viditeľnosť" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Režim miešania" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Priehľadnosť:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Šírka:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixelov" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Výška:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Názov" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Cesta" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Skryť" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokovateľné" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plávajúce" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automaticky skrývať" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dokovať" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "počet vlákien použitých na vykreslenie" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Súbor" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Úpravy" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Zobraziť" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Obrázok" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Vrstvy" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Prispôsobiť" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Efekty" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Doplnky" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Okno" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Okná nástrojov" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Pomocník" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "MenoMožnosti" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Plátno" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "História" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Vrstvy" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Obrázky" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Nástroje" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Správanie hrán" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Viacnásobný výber:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Povoliť" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Zakázať" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Žiadny výber" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Dostupné v repozitári:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Dostupná aktualizácia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:263 msgid "This add-in can't be loaded due to missing dependencies" msgstr "Tento doplnok nie je možné načítať kvôli chybajúcim závislostiam." #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Požadované: {0} v{1}, nájdené v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Chýbajúce: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Nainštalovaná verzia" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:287 msgid "Repository version" msgstr "Verzia z repozitára" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Veľkosť sťahovania" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "Nasledujúce závislosti, ktoré doplnok vyžaduje, nie sú dostupné:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "Inštalácia zrušená" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Niektoré z požadovaných doplnkov neboli nájdené" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Inštalácia zlyhala" #: 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 "Nainštalované" #: 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 "Aktualizácie" #: 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 "Galéria" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:261 msgid "All repositories" msgstr "Všetky repozitáre" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:268 msgid "Manage Repositories..." msgstr "Správa repozitárov…" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:363 #, csharp-format msgid "{0} update available" msgid_plural "{0} updates available" msgstr[0] "Dostupná {0} aktualizácia" msgstr[1] "Dostupné {0} aktualizácie" msgstr[2] "Dostupných {0} aktualizácií" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:419 msgid "Updating repository" msgstr "Aktualizuje sa repozitár" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:513 msgid "Install Add-in Package" msgstr "Inštalovať balíček s doplnkom" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Balíčky s doplnkami" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "Žiadny doplnok nenájdený" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Doplnok" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:213 msgid "Other" msgstr "Iné" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:77 msgid "Uninstall" msgstr "Odinštalovať" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "Nasledujúce balíčky budú odinštalované:" #: 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 "" "Existujú ďalšie doplnky, závislé na predchádzajúcich, ktoré sa tiež " "odinštalujú." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Vybrané doplnky nie je možné nainštalovať kvôli konfliktu závislostí." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:138 msgid "The following packages will be installed:" msgstr "Nasledujúce balíčky budú nainštalované:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (v priečinku používateľa)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "Nasledujúce balíčky je potrebné odinštalovať:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "Nasledujúce závislosti nebolo možné vyriešiť:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Ste si istý, že chcete zrušiť inštaláciu?" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:209 msgid "Installing Add-ins" msgstr "Inštalujú sa doplnky" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:211 msgid "The installation failed!" msgstr "Inštalácia zlyhala!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "Inštalácia bola dokončená s varovaniami." #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:214 msgid "Uninstalling Add-ins" msgstr "Odinštalúvajú sa doplnky" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:216 msgid "The uninstallation failed!" msgstr "Odinštalácia zlyhala!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:217 msgid "The uninstallation has completed with warnings." msgstr "Odinštalácia bola dokončená s varovaniami." #: Mono.Addins.Gui/Mono.Addins.Gui/ManageSitesDialog.cs:98 msgid "Registering repository" msgstr "Registruje sa repozitár" #: 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 "Vyskytla sa výnimka: {0}" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:181 msgid "More information" msgstr "Viac informácií" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:229 msgid "Install..." msgstr "Inštalovať..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:255 msgid "Update" msgstr "Aktualizácia" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:281 msgid "_Uninstall..." msgstr "_Odinštalovať..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:38 msgid "Additional extensions are required to perform this operation." msgstr "Na vykonanie tejto operácie sú požadované dodatočné rozšírenia." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "Nasledujúce doplnky sa nainštalujú :" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "Neboli nájdené žiadne aktualizácie" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Obnoviť" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Aktualizovať všetko" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:268 msgid "Repository:" msgstr "Repozitár:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:373 msgid "Install from file..." msgstr "Inštalovať zo súboru..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Inštalovať" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Správa repozitárov s doplnkami" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Pridať nový repozitár" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Vyberte umiestenie repozitáru, ktorý chcete zaregistrovať:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Zaregistrovať on-line repozitár" #: 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 "Zaregistrovať lokálny repozitár" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Umiestnenie:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Prehliadať..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Priebeh" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(poskytuje {0})" pinta-1.6/po/ru.po0000664000175000017500000023510412474707515015254 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-28 17:44+0000\n" "Last-Translator: Oleg Koptev \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Простое создание и редактирование изображений" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Графический редактор" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Редактор изображений Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Менеджер дополнений" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Отменить" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Вернуть" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Вырезать" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Копировать" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Скопировать выделенное" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Вставить" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Вставить как новый слой" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Вставить как новое изображение" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Удалить выделение" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Заполнить выделение" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Обратить выделение" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Выделить всё" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Снять выбор" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Открыть..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Сохранить как..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Сбросить установки" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Установить количество цветов" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Палитра" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Удалить выделение" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Сбросить выделение" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Открыть файл палитры" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Файлы палитры (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Все файлы" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Ошибка" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Сохранить файл палитры" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Палитра Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Палитра GIMP (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Создать..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "О программе" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Откадрировать в выделение" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Автокадрирование" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Изменить размер изображения" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Изменить размер холста..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Отразить по горизонтали" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Отразить по вертикали" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Повернуть на 90° по часовой стрелке" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Повернуть на 90° против часовой стрелки" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Повернуть на 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Объединить слои" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Добавить слой" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Удалить слой" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Дублировать слой" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Объединить с нижележащим" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Импорт из файла..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Повернуть / Увеличить слой..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Переместить слой вверх" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Переместить слой вниз" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Параметры слоя..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Открыть файл изображения" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Импорт из файла" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Крупнее" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Мельче" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Уместить в окне" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "По размеру выделения" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Исходный размер" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Стандартная панель" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Пиксельная сетка" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Линейки" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Пиксели" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Дюймы" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Сантиметры" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Полный экран" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Окно" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Единицы измерения" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0}%" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Сохранить как" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Закрыть все" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Инструмент" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Горячая клавиша" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Обычное смешивание" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Переписать" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Включить сглаживание" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Выключить сглаживание" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Слой" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "- копия" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Изменить размер холста" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Переместить выбранные пиксели" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Изображение больше, чем размер холста" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "Размер вставленного изображения больше размера холста. Что нужно сделать?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Увеличить размер холста" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Не изменять размер холста" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Изображение не может быть вставлено" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Буфер обмена не содержит изображение." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Заменить" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Соединить (+) (Ctrl + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Отсоединить (-) (Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Right Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersect (Shift + Left Click)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Режим выделения " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Обычный" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Множитель" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Добавка" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Горение цвета" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Color Dodge" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Отражение" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Сияние" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Оверлей" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Различие" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Отрицание" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Осветление" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Затемнение" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Освещение" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Искл. ИЛИ" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "Отразить слой по горизонтали" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Отразить слой по вертикали" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Масштабировать изображение" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Изображение {0} ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Эффект отрисовки" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Не выбран инструмент" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Несохранённое изображение {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Фон" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Новое изображение" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Неподдерживаемый формат файла" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Открыть изображение" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Отказано в доступе" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Не удалось открыть файл: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Автокоррекция" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Чёрно-белое" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Яркость / Контраст" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Яркость" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Контраст" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Кривые" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Тон / Насыщенность" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Тон" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Насыщенность" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Яркость" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Обратить цвета" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Уровни" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Постеризовать" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Сепия" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Коррекция уровней" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Красный" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Зелёный" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Синий" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Связь" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Добавить шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Интенсивность" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Насыщенность цвета" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Покрытие" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Выпуклость" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Искажения" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Количество" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Смещение" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Облака" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Рисование" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Масштаб" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Мощность" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Инициализатор" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Определение краёв" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Стилизация" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Угол" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Барельеф" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Фрагмент" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Размытие" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Фрагменты" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Расстояние" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Поворот" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Матовое стекло" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Размывание Гаусса" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Радиус" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Снимок" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Набросок чернилами" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Художественные" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Чернильный контур" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Окрашивание" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Фрактал Жюлиа" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Фактор" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Качество" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Масштабирование" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Фрактал Мандельброта" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Медиана" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Процент" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Размытие в движении" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Центрирование" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Масляные краски" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Размер кисти" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Грубость" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Контур" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Толщина" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Карандашный набросок" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Размер конца карандаша" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Диапазон цветов" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Пикселизация" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Размер ячейки" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Полярная инверсия" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Радиальное размытие" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Используйте низкое качество для предварительного просмотра, малых " "изображений и малых углов. Используйте высокое качество для финального " "варианта, больших изображений и больших углов." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Удаление красных глаз" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Чувствительность" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Насыщенность в процентах" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Подсказка: для наилучшего результата сначала выделите каждый глаз " "инструментами выделения." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Уменьшить шум" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Сила" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Рельеф" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Добавить резкость" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Смягчить портрет" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Мягкость" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Освещение" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Теплота" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Мозаичное отражение" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Размер плитки" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Завихрение" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Сглаживание" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Расфокусировка" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Основной" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Второстепенный" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Прозрачный" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Исходный" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Смещение центра" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Увеличительное размытие" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Канал" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Освещённость" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Красный " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Синий " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Сброс" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" "Подсказка: Нажмите правую кнопку мыши, чтобы убрать контрольные отметки" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Гистограмма входа" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Вход" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Выход" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Гистограмма выхода" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "Выберите цвет переднего плана" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Выберите фоновый цвет" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Выберите цвет цалитры" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" "Щёлкните, чтобы переключиться между основным и дополнительным цветом." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Нажмите для сброса первичного и вторичного цветов." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Щёлкните, чтобы выбрать основной цвет." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Щёлкните, чтобы выбрать дополнительный цвет." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Щелчок левой кнопки мыши для установки основного цвета. Щелчок правой " "кнопкой мыши для установки вторичного цвета. Щелчок средней кнопки мыши для " "выбора цветовой палитры." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Видимый слой" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Скрытый слой" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Круги" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Сетка" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Брызги" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Квадраты" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Стрелка" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Размер" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Уменьшить размер стрелки" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Увеличить размер стрелки" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Уменьшить угол смещения" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Увеличить угол смещения" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Длина" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Уменьшить длину смещения" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Увеличить длину смещения" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Толщина кисти" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Уменьшить размер кисти" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Увеличить размер кисти" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Стиль заполнения" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Обвести фигуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Залить фигуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Залить и обвести фигуру" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Форма" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Группа открытых геометрических фигур/кривых" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Эллипс" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Изменённая форма" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Точка удалена" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Удалено" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Точка добавлена" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Добавлено" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Изменён" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Закончен" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Открытая кривая" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Закрытая кривая" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Скруглённая линия" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Уменьшить радиус углов фигуры" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Увеличить радиус углов фигуры" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Штамп клонирования" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl+щелчок левой кнопкой мыши для установки основы, левой кнопкой мыши " "начать рисовать" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Получение цвета" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Щёлкните левой кнопкой для задания первичного цвета. Щёлкните правой кнопкой " "для задания вторичного цвета." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Выборка" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Один пиксель" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Область 3 на 2" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Область 5 на 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Область 7 на 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Область 9 на 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "изображение" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "После выбора" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Не переключайте инструмент" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Переключиться на предыдущий инструмент" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Переключиться на инструмент \"Карандаш\"" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Карандаш" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Эллиптическое выделение" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Нажмите и тяните, чтобы выделить эллептическую область . Удерживайте Shift, " "чтобы выделить круглую область." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Клик левой кнопкой мыши для рисования фигуры обычным цветом\n" "Клик левой кнопкой мыши для добавления точки к фигуре\n" "Клик левой кнопкой мыши для настройки и перемещения точки\n" "Клик правой кнопкой мыши для настройки и изменения напряжения точки\n" "Зажать Shift для изменения углов\n" "Кнопки со стрелками для перемещения точки\n" "Зажать Ctrl+клик правой или левой кнопкой мыши для множественного выделения\n" "Кнопка Delete для удаления точки\n" "Кнопка Пробел для добавления точки в позицию курсора\n" "Зажать Ctrl+Пробел для создания точки в точно такой же позиции\n" "Зажать Ctrl+клик левой кнопкой мыши на точку для создания новой фигуры в " "этой позиции\n" "Зажать Ctrl+клик не на объекте для создания ещё одного края фигуры\n" "Кнопка Ввод для завершения рисования фигуры" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Ластик" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Левая кнопка мыши стирает до прозрачного фона, правая кнопка стирает цветом " "фона. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Избыточный режим" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Смежная область" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Глобальная" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Произвольная фигура" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Нажмите левую кнопку, чтобы рисовать первичным цветом, правую - вторичным." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Градиент" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Щёлкните и перетаскивайте, чтобы нарисовать градиент от первичного цвета к " "вторичному. Щёлкните правой кнопкой для инверсии." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Линейный градиент" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Линейный отражённый градиент" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Линейный ромбовидный градиент" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Радиальный градиент" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Конический градиент" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Выделение лассо" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" "Нажмите и перетаскивайте мышь, чтобы выделить контур области выделения." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Линии/кривые" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Волшебная палочка" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Щёлкните, чтобы выделить регион с похожим цветом." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Нажмите левую кнопку мыши и тяните для перемещения выделенного контента. " "Нажмите правую кнопку мыши и тяните для вращения выделенного контента." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Перемещение выделения" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Нажмите левую кнопку мыши и тяните для перемещения контура выделения. " "Нажмите правую кнопку мыши и тяните для вращения контура выделения." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Кисть" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Тип" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Плоская заливка" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Перемещение" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Щёлкните и перетаскивайте для навигации по изображению." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Перекрашивание" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Левая кнопка - замена второстепенного цвета на основной. Правая кнопка - " "наоборот." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Прямоугольное выделение" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Нажмите и тяните, чтобы выделить прямоугольную область . Удерживайте Shift, " "чтобы выделить квадратную область." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Прямоугольник" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Скруглённый прямоугольник" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Текст" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Текст - Завершить" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Щёлкните левой кнопкой, чтобы поместить курсор, затем наберите нужный текст. " "Текст рисуется первичным цветом." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Шрифт" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Полужирный" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Курсивный" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Подчёркнутый" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "По левому краю" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "По центру" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "По правому краю" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Стиль текста" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Нормальный и контурный" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Заполнить фон" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Ширина контура" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Уменьшить размер контура" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Увеличить размер контура" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Щёлкните левой кнопкой для приближения. Щёлкните правой кнопкой для " "отдаления. Нажмите и перетаскивайте мышь, чтобы масштабировать по выделению." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Изменить размер палитры" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Новый размер палитры" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Сохранить изменения изображения \"{0}\" перед закрытием?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Если вы не сохраните изменения, они будут потеряны безвозвратно." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Закрыть _без сохранения" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Сделать снимок экрана" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Задержка перед созданием снимка экрана (в секундах)" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Файлы изображений" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Сохранить файл изображения" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не поддерживает сохранение изображений в этом формате." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Невозможно сохранить файл, доступный только для чтения." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Изображение слишком большое" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Изображение в файле ICO не может быть больше, чем 255x255 пикселей." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл с именем \"{0}\" существует. Хотите ли вы его заменить?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "Файл уже существует в \"{1}\". Его замена перзапишет его содержимое." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Непрозрачность слоя" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Переименовать слой" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Скрыть слой" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Показать слой" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Свойства слоя" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Повернуть / Увеличить слой" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Дополнения сообщества Pinta — кросс-платформенные" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Авторы этой версии:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Авторы предыдущих версий:" #: ../Pinta/Dialogs/AboutDialog.cs:146 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" " Drovosekov Anton https://launchpad.net/~corningster\n" " Eugene Marshal https://launchpad.net/~lowrider\n" " Eugene Rozov https://launchpad.net/~eugene-rozov\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Maia Everett https://launchpad.net/~lucidfox\n" " Mairon https://launchpad.net/~an9227\n" " ManDrive https://launchpad.net/~roman-romul\n" " Nightingale https://launchpad.net/~solosn\n" " Nikita Putko https://launchpad.net/~ktototam98\n" " Nkolay Parukhin https://launchpad.net/~parukhin\n" " Oleg Koptev https://launchpad.net/~koptev-oleg\n" " PocketSam https://launchpad.net/~pocketsam\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" " dadatamada https://launchpad.net/~stas-stv\n" " jeder https://launchpad.net/~i-jeder\n" " ma$terok https://launchpad.net/~m-shein\n" " queses https://launchpad.net/~quesesr\n" " smutok https://launchpad.net/~smutok\n" " sympler https://launchpad.net/~sympler\n" " Дмитрий https://launchpad.net/~dimon4ezz\n" " ☠Jay ZDLin☠ https://launchpad.net/~black-buddha666" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Переведено:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Основано на Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Использованы некоторые значки из:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Работает на Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "О программе Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Сведения о версии" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Версия" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Лицензия" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Распространяется под лицензией MIT X11." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Авторское право" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "разработчики Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "Подробности" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Сообщить об ошибке..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Качество JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Качество: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Имя:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Видимый" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Режим смешения" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Непрозрачность:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Буфер обмена" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Пользовательский" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Ширина:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "пикселей" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Высота:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Ориентация:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Книжная" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Альбомная" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Фон:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Белый" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Цвет фона" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Название" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Путь" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Скрыть" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прикрепляемое" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плавающее" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Автоматически скрывать" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Соблюдать соотношение сторон" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Якорь:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "Показать сообщение и выйти" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Показывать версию приложения" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "число потоков для использования при отрисовке" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Использование: pinta [файлы]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Параметры: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Файл" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Правка" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Вид" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Изображение" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "С_лои" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Цвета" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Эффекты" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "Н_адстройки" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Окно" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Инструментальные окна" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Справка" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Название опции" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Холст" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "История" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Слои" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Изображения" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Инструменты" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Поведение на границе" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Мультивыделение\n" "\n" #: 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 "Этот add-in не может быть загружен из-за несоответствия зависимостей" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Требуется: {0} v{1}, найдено v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Отсутствует: {0} v{1}" #: 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] "доступно {0} обновление" msgstr[1] "доступно {0} обновления" msgstr[2] "доступно {0} обновлений" #: 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 "Возникла исключительная ситуация: {0}" #: 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.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 "URL:" #: 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 "(предоставлено {0})" pinta-1.6/po/nl.po0000664000175000017500000020250112474707515015232 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-16 09:04+0000\n" "Last-Translator: ndke \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Gemakkelijk afbeeldingen maken en bewerken" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Afbeeldingsbewerker" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Pinta afbeeldingsbewerker" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Uitbreidingen beheren" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Ongedaan maken" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Opnieuw" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Knippen" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiëren" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Samengevoegd kopiëren" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Plakken" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "In nieuwe laag plakken" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Als nieuwe afbeelding plakken" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Selectie verwijderen" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Selectie vullen" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Selectie omkeren" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Alles selecteren" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Alles deselecteren" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Openen..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Opslaan als..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Naar standaard terugzetten" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Aantal kleuren instellen" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palet" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Wis selectie" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deselecteren" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Paletbestand openen" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Paletbestanden (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Alle bestanden" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fout" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Paletbestand opslaan" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palet (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palet (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Over" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Wijzig Afbeeldingsformaat..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Wijzig Canvasformaat..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Horizontaal spiegelen" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Verticaal spiegelen" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Roteer 90° rechtsom" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Roteer 90° linksom" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Roteer 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Plat maken" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Nieuwe laag toevoegen" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Laag verwijderen" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Laag dupliceren" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Laag omlaag samenvoegen" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Uit bestand importeren..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Draai / Zoom Laag..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Laag omhoog verplaatsen" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Laag omlaag verplaatsen" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Laageigenschappen..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Afbeeldingsbestand openen" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importeer uit bestand" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Inzoomen" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Uitzoomen" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Passend" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Naar selectie zoomen" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Standaardgrootte" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Werkbalk" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Pixelraster" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linialen" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Inches" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimeters" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Volledig scherm" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Venster" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Eenheden" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Gereedschap" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Sneltoets" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Standaard menging" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Overschrijven" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialias aan" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialias uit" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Laag" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopiëren" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Canvasgrootte aanpassen" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Geselecteerde pixels verplaatsen" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Afbeelding groter dan canvas" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Verruim canvas" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Verander het canvasformaat niet" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Afbeelding kan niet geplakt worden" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Het klembord bevat geen afbeelding" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Vervangen" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unie (+) (Ctrl + Linksklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Uitsluiten (-) (Rechtsklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Exclusief OR (CTRL + Rechtsklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersectie (Shift + Linksklik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Selectiemodus: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normaal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Vermenigvuldigen" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additief" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflecteren" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Gloed" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Overlay" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Verschil" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Lichter maken" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Donkerder maken" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Scherm" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Pixels beëindigen" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Formaat wijzigen" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} afbeelding ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Render-effect" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Geen gereedschap geselecteerd" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Niet opgeslagen bestand {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Achtergrond" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nieuwe afbeelding" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Afbeelding openen" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Toegang geweigerd" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Kan bestand niet openen: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Automatisch niveaus bepalen" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Zwart / Wit" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Helderheid / Contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Helderheid" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Curven" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Tint / Verzadiging" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Kleuren omkeren" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Niveaus" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterize" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Niveaus aanpassen" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rood" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Groen" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blauw" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Gekoppeld" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Ruis toevoegen" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Ruis" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensiteit" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Kleurverzadiging" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Bereik" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Bolvorm" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Vervormen" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Hoeveelheid" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Verschuiven" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Wolken" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderen" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Schaal" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Kracht" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Genereren" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Randen detecteren" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Stileren" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Hoek" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Emboss" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmenteren" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Vervagen" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragmenten" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Afstand" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotatie" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Matglas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussiaans vervagen" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Inkttekening" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistiek" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Inktomlijning" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Inkleuren" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia-fractal" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kwaliteit" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoomen" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot fractal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediaan" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentiel" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Bewegingsvervaging" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Gecentreerd" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Olieverf" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penceelgrootte" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grofheid" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Omlijnen" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Dikte" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Potloodtekening" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Potloodpuntgrootte" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Kleurbereik" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelvorming" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Celgrootte" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Polaire inversie" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radiale vervaging" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Rode ogen verwijderen" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerantie" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Ruis verminderen" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Sterkte" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Reliëf" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Verscherpen" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "\"Portret verzachten" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Zachtheid" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Belichting" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Warmte" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tegelreflectie" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tegelgrootte" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Spiraal" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialias" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ontfocussen" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Centrumbepaling" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Zoomvervaging" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transferkaart" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminantie" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rood " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blauw " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Herstellen" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Tip: Rechtermuisklik om controlepunten te verwijderen." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Invoerhistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Invoer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Uitvoer" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Uitvoerhistogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatisch" #: ../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:106 msgid "Choose Primary Color" msgstr "Primaire kleur kiezen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Secundaire kleur kiezen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Paletkleur kiezen" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Klik om te wisselen tussen primaire en secundaire kleur." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Klik om de primaire en secondaire kleur opnieuw in te stellen." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Klik om primaire kleur te selecteren." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Klik om secoundaire kleur te selecteren." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Laag wordt getoond" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Laag wordt verborgen" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cirkels" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Raster" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Spatten" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Vierkanten" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Pijl" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Grootte" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Verklein pijlgrootte" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Vergroot pijlgrootte" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Vergroot hoekverdraaiing" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Verklein hoekverdraaiing" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Lengte" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Penceeldikte" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Penceeldikte verkleinen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Penceeldikte vergroten" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Vullingstijl" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Omlijnen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Opvullen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Opvullen en omlijnen" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Type vorm" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Open lijn/curve serie" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellips" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Punt verwijderd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Verwijderd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Punt toegevoegd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Toegevoegd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Aangepast" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Afgewerkt" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Open curve vorm" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Gesloten curve vorm" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Kloonstempel" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl-klik voor bronselectie, klik om te tekenen." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pipet" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Enkele pixel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 gebied" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 gebied" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 gebied" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 gebied" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Afbeelding" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Na selecteren" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Gereedschap behouden" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Ga naar vorig gereedschap" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Potloodgereedschap" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Potlood" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Ellips-selectie" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Links klikken om een vorm te tekenen met het primaire kleur.\n" "Links klikken op een vorm om een controlepunt toe te voegen.\n" "Links klikken op een controle punt en slepen om het te verplaatsen.\n" "Rechts klikken op een controlepunt en slepen om zijn spanning te wijzigen.\n" "Houd Shift ingedrukt om naar hoeken te bewegen.\n" "Gebruik de pijltoetsen om het controlepunt te verplaatsen.\n" "Druk Ctrl + links/rechts in om controlepunten te selecteren op basis van " "volgorde.\n" "Druk Delete om het geselecteerde controlepunt te verwijderen.\n" "Druk Spatie om een nieuw controlepunt toe te voegen op de plaats van de " "muis.\n" "Houd Ctrl ingedrukt met Spatie om een controlepunt toe te voegen op dezelfde " "plaats.\n" "Houd Ctrl ingedrukt met links klikken op een controlepunt om een nieuwe vorm " "te maken op dezelfde plaats.\n" "Houd Ctrl ingedrukt met klikken buiten de afbeelding om een nieuwe vorm aan " "het uiteinde te maken.\n" "Druk op Enter om de vorm af te werken." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Gum" #: ../Pinta.Tools/Tools/EraserTool.cs:54 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/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Vulmodus" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Aangrenzend" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globaal" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Vrije vorm" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Gradiënt" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Lineaire gradiënt" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Lineair gereflecteerde gradiënt" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Lineaire diamantgradiënt" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Radiale gradiënt" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Conische gradiënt" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Lassoselectie" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Klik en sleep om een selectie te tekenen." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Lijn/kromme" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Toverstafselectie" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Klik om regio met gelijkwaardige kleur te selecteren." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Selectie verplaatsen" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Penceel" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Soort" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vullen" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Verschuiven" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klik en sleep om door afbeelding te navigeren." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Verkleuren" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Rechthoekselectie" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rechthoek" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Afgerond rechthoek" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekst" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Tekst - Afwerken" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Lettertype" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Vetgedrukt" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Cursief" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Onderstreept" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Links uitlijnen" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Centreren" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Rechts uitlijnen" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Tekststijl" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Standaard en omlijnd" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Vul achtergrond" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Lijndikte" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Verklein lijndikte" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Vergroot lijndikte" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Paletgrootte aanpassen" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nieuw paletgrootte" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Aanpassingen aan afbeelding \"{0}\" opslaan voor sluiten?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Als U niet opslaat, zullen alle veranderingen verloren gaan." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Schermafdruk maken" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Vertraging voor maken schermafbeelding (seconden):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Afbeeldingsbestanden" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Afbeelding opslaan" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ondersteunt het opslaan in dit bestandsformaat niet." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Kan niet alleen-lezen bestand opslaan." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Afbeelding te groot" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "ICO bestanden kunnen niet groter zijn dan 255 x 255 pixels" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Laagdekking" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Laag hernoemen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Laag verbergen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Laag tonen" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Laageigenschappen" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Draai / Zoom Laag" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Bijdragers aan deze versie:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Vorige bijdragers" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Arjan ten Vergert https://launchpad.net/~info-bobsquad\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Geoffrey De Belie https://launchpad.net/~computergeoffrey\n" " Guus https://launchpad.net/~guus-verbeek\n" " Harry Slieker https://launchpad.net/~harryslieker\n" " Heimen Stoffels https://launchpad.net/~vistaus\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Richard Prins https://launchpad.net/~pewpewaliens\n" " Tijmen Rekmans https://launchpad.net/~tijmenr\n" " Tim https://launchpad.net/~timpotim-dev\n" " ndke https://launchpad.net/~niels-1" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Vertaald door:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Gebaseerd op het werk aan Paint.NET" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Met gebruikmaking van iconen van:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Over Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Versie Info" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versie" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licentie" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Uitgebracht onder de MIT X11 Licentie." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Auteursrecht" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "door Pinta bijdragers" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG-kwaliteit" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kwaliteit: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Naam:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Zichtbaar" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mengmodus" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Dekking:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Breedte:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Hoogte:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Titel" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pad" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Verbergen" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dockable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Zwevend" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Automatisch verbergen" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dock" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Toon dit bericht en stop." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Geef de programmaversie weer." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "Aantal te gebruiken threads voor renderen" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "pinta [bestanden]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Opties: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Bestand" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "B_ewerken" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "Weerga_ve" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "Afbeeld_ing" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Laag" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Aanpassingen" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Effe_cten" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Venster" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Gereedschapvensters" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Help" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OptieNaam" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Canvas" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Geschiedenis" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Lagen" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Afbeeldingen" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Gereedschappen" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Randgedrag" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Meerdere selecties:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Activeer" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Deactiveer" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Geen selectie" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Besschikbaar in de softwarebronnen:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:256 msgid "Update available" msgstr "Update beschikbaar" #: 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 "Vereist: {0} v{1}, is v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Ontbrekend: {0} v{1}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:286 msgid "Installed version" msgstr "Geïnstalleerde versie" #: 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 "Downloadgrootte" #: 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 "Installatie afgebroken" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "Enkele vereiste add-ins werden niet gevonden" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "Installatie mislukt" #: 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 "Geïnstalleerd" #: 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 "Gallerij" #: 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 "Add-in pakket installeren" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:523 msgid "Add-in packages" msgstr "Add-in pakketten" #: 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 "Deïnstalleren" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:82 msgid "The following packages will be uninstalled:" msgstr "De volgende pakketten zullen worden verwijderd:" #: 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 "De volgende pakketten zullen worden geïnstalleerd:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:142 msgid " (in user directory)" msgstr " (in gebruikersmap)" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:148 msgid "The following packages need to be uninstalled:" msgstr "De volgende pakketten moeten worden verwijderd:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:156 msgid "The following dependencies could not be resolved:" msgstr "De volgende afhankelijkheden konden niet worden opgelost:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:190 msgid "Are you sure you want to cancel the installation?" msgstr "Weet u zeker dat u de installatie wilt afbreken?" #: 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 "De installatie is mislukt!" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:212 msgid "The installation has completed with warnings." msgstr "De installatie is voltooid met waarschuwingen." #: 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 "Het verwijderen is voltooid met waarschuwingen." #: 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 "Meer informatie" #: 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 "Er zijn extra extensies vereist om deze handeling uit te voeren." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:48 msgid "The following add-ins will be installed:" msgstr "De volgende invoegtoepassingen worden geïnstalleerd:" #: 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 "Alles bijwerken" #: 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 "Installeer vanuit bestand..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.InstallDialog.cs:126 msgid "Install" msgstr "Installeer" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:20 msgid "Add-in Repository Management" msgstr "Pakketbronnen voor add-ins beheren" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:29 msgid "Add New Repository" msgstr "Voeg Nieuwe Pakketbron toe" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:47 msgid "Select the location of the repository you want to register:" msgstr "Selecteer de locatie van de pakketbron die u wilt registeren:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:54 msgid "Register an on-line repository" msgstr "Registreer een online pakketbron" #: 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 "Registreer een lokale pakketbron" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:130 msgid "Path:" msgstr "Bestandpad:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Bladeren..." #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ProgressDialog.cs:21 msgid "Progress" msgstr "Voortgang" #: Mono.Addins/Mono.Addins.Description/AssemblyDependency.cs:103 #, csharp-format msgid "(provided by {0})" msgstr "(voorzien door {0})" pinta-1.6/po/th.po0000664000175000017500000016422612474707515015247 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2012-09-09 08:02+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "เรียกคืน" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "ทำซ้ำ" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "ตัด" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "คัดลอก" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "แปะ" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "แปะในชั้นงานใหม่" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "แปะในรูปภาพใหม่" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "เปิด..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "บันทึกเป็น..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "เกี่ยวกับ" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "หมุน 90° ตามเข็มนาฬิกา" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "หมุน 90° ทวนเข็มนาฬิกา" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "หมุน 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "ลบชั้นงาน" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "เปิดแฟ้มรูปภาพ" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "ขยาย" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "ย่อ" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "เต็มจอ" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "ชั้นงาน" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "คัดลอก" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "ปรับขนาดหน้ากระดาษ" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "พลิกชั้นงานในแนวตั้ง" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "พลิกชั้นงานในแนวนอน" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "ปรับขนาดภาพ" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "พื้นหลัง" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "ภาพใหม่" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "เปิดรูปภาพ" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "ความสว่าง" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "มัว" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "รัศมี" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "ภาพถ่าย" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "ย่อ/ขยาย" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "ขนาดพู่กัน" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "ลดขนาดพู่กัน" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "เพิ่มขนาดพู่กัน" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "ดินสอ" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "ยางลบ" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "ไล่ระดับสี" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "พู่กัน" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "สี่เหลี่ยมผืนผ้า" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "แบบอักษร" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "ถ้าคุณไม่บันทึกงาน การแก้ไขทั้งหมดจะสูญหายอย่างถาวร" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "แฟ้มรูปภาพ" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "บันทึกแฟ้มรูปภาพ" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "ความทึบแสงของชั้นงาน" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "เปลี่ยนชื่อชั้นงาน" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "ซ่อนชั้นงาน" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "แสดงชั้นงาน" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "คุณสมบัติชั้นงาน" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " Saruch Srisawadpong https://launchpad.net/~schemer-of-darkness\n" " SiraNokyoongtong https://launchpad.net/~gumara\n" " Srun Werakool https://launchpad.net/~panx0008" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "แปลโดย:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "เกี่ยวกับ Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "เวอร์ชัน" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "เวอร์ชัน" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "ลิขสิทธิ์" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "สงวนลิขสิทธิ์" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "ชื่อ:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "ปรากฏ" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "ความทึบแสง:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "ความกว้าง:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "พิกเซล" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "ความสูง:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "ซ่อน" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "จัดใส่สำรับงานได้" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "ลอย" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "ซ่อนอัตโนมัติ" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "แ_ฟ้ม" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "แ_ก้ไข" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "มุ_มมอง" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "รูป_ภาพ" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_ชั้นงาน" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_การปรับเปลี่ยน" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_ลูกเล่น" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "ห_น้าต่าง" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_วิธีใช้" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "ชั้นงาน" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "เครื่องมือ" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/sl.po0000664000175000017500000020554212474707515015247 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-26 09:52+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Enostavno ustvarjanje in urejanje slik" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Urejevalnik slik" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Urejevalnik slik Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Upravljalnik vstavkov" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Razveljavi" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Uveljavi" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Izreži" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Kopiraj" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Kopiraj združeno" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Prilepi" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Prilepi v novo plast" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Prilepi v novo sliko" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Zbriši izbor" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Zapolni izbor" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Obrni izbor" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Izberi vse" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Odstrani izbor" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Odpri..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Shrani kot..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Ponastavi na privzeto" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Nastavi število barv" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Zradiraj izbor" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Odstrani izbiro" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Odpri datoteko palete" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Datoteke palete (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Vse datoteke" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Napaka" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Shrani datoteko palete" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET paleta (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP paleta (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "O programu" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 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:61 msgid "Resize Image..." msgstr "Spremeni velikost slike..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Spremeni velikost platna..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Zrcali vodoravno" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Zrcali navpično" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Zavrti 90° v smeri urinega kazalca" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Zavrti 90° v nasportni smeri urnega kazalca" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Zavrti 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Splošči" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Dodaj novo plast" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Izbriši plast" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Podvoji plast" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Združi plast navzdol" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Uvozi iz datoteke..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Zavrti / Približaj plast..." #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Premakni plast gor" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Premakni plast dol" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Lastnosti plasti..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Odpri slikovno datoteko" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Uvozi iz datoteke" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Približaj" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Oddalji" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Prilagojeno zaslonu" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Približaj izbrano" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Običajna velikost" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Orodna vrstica" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Točkovna mreža" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Ravnila" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Točke" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Palci" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimetri" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Celozaslonsko" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Okno" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Mere ravnila" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Orodje" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Tipka bližnjice" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Običajna spojitev" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Prepiši" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Vključi glajenje robov" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Izključi glajenje robov" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Plast" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "kopija" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Prilagodi platno" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Premakni izbrane točke" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "Slika je večja od platna" #: ../Pinta.Core/Classes/Document.cs:861 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/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Razširi platno" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "Ne spremeni velikosti platna" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "Slike ni mogoče prilepiti" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "Odložišče ne vsebuje slike" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Zamenjava" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unija (+) (Ctrl + levi klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Izločitev (-) (desni klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + desni klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Presek (Shift + levi klik)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Način izbire: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Običajno" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Pomnoži" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Dodaj" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Ožganost barve" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Barvni izogib" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Odbij" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Žarenje" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Prekrij" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Razlika" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negativ" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Posvetli" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Potemni" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Zaslon" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Končne točke" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Spremeni velikost slike" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} slika ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Izrisovalni učinek" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "Ni izbranega orodja." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Neshranjena slika {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Ozadje" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nova slika" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "Nepodprta vrsta datoteke" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Odpri sliko" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "Dovoljenje je zavrnjeno" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Ne morem odpreti datoteke: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Samodejna raven" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Črno in belo" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Svetlost / Kontrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Svetlost" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Kontrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Krivulje" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Odtenek / Nasičenost" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Odtenek" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Nasičenost" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Svetlost" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Obrni barve" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Ravni" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Zmanjšaj število barv" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sepija" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Prilagoditev ravni" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Rdeča" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Zelena" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Modra" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Povezan" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Dodaj šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Šum" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Močnost" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Barvna nasičenost" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Pokritost" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Izboklina" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Popači" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Količina" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Odmik" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Oblaki" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Izriši" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Merilo" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Moč" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Zasadi" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Zaznaj rob" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Prilagodi slog" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Kot" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Izboči" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Delček" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Zabrisanost" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Kosi" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Razdalja" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Vrtenje" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Zamrznjeno steklo" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Zabriši po Gaussu" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Polmer" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fotografija" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Črnilo skice" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Umetniški" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Oris črnila" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Obarvanje" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fraktal julije" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Množitelj" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Kakovost" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Približanje" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Del Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Srednja vrednost" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Zabriši kot pri gibanju" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Središčeno" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oljno slikanje" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Velikost čopiča" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grobost" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Obroba" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Debelina" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Svinčnikova skica" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Velikost konice svinčnika" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Razpon barv" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Točkuj" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Velikost celice" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Popolna obrnitev" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Radialno mehčanje" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Odstranitev učinka rdečih oči" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Odstopanje" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Odstotek nasičenosti" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 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.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Zmanjšaj šum" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Jakost" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relief" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Izostri" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Omehčana podoba" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Omehčanost" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Osvetlitev" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Toplina" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Razpostavi odsev" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Velikost ploščice" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Upogib" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Glajenje robov" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Odstrani žarišče" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "Spona" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Prelom" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Osnovno" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Pomožna" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Prosojno" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Izvirnik" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Osrediščen odmik" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Povečava mehčanja" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Prenos karte" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Svetlost" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Rdeč " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Modro " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Ponastavi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Namig: Desni klik, da odstraniš nadzorne točke." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Vhodni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Vhod" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Izhod" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Izhodni histogram" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Samodejno" #: ../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:106 msgid "Choose Primary Color" msgstr "Izberi osnovno barvo" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Izberi pomožno barvo" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Izberi barvo palete" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Kliknite, da zamenjate osnovno in pomožno barvo." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Kliknite, da ponastavite osnovno in pomožno barvo." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Kliknite za izbiro osnovne barve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Kliknite za izbiro pomožne barve." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Levi klik za določitev osnovne barve. Desni klik za določitev pomožne barve. " "Srednji klik za izbiro palete barv." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Plast prikazana" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Plast skrita" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Krogi" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Mreža" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Škropilnik" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Kvadrati" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Črta" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Puščica" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Velikost" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Zmanjšaj velikost puščice" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Povečaj velikost puščice" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "Zmanjšaj kot odmika" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "Povečaj kot odmika" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Dolžina" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "Zmanjšaj dolžino odmika" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "Povečaj dolžino odmika" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Širina čopiča" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Zmanjšaj velikost čopiča" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Povečaj velikost čopoča" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Zapolni slog" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Oblika orisa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Polnilo orisa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Polnilo in oris oblike" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Vrsta oblike" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Zaporednje odprtih črt/krivin" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Zaporedje zaprtihg črt/krivin" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Elipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "Zaporedje zaoblenih črt" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "Spremenjena vrsta oblike" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "Točka izbrisana" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Izbrisano" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Točka dodana" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Dodano" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Spremenjeno" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Dokončano" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "Oblika odprte krivine" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "Oblika zaprte krivine" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "Oblika zaobljene črte" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "Zmanjšaj obliko polmera kota" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "Povečaj obliko polmera kota" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Razmnoževalni žig" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 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/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Izbirnik barv" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Vzorčenje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Enojna točka" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "3 x 3 območje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "5 x 5 območje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "7 x 7 območje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "9 x 9 območje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Slika" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Po izbiri" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Ne preklopi orodja" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Preklopi na prejšnje orodje" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Preklopi na svinčnik" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Svinčnik" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Eliptični izbor" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 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/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" "Levi klik za slikanje oblike z osnovno barvo.\n" "Levi klik na obliki za dodajanje nadzorne točke.\n" "Levi klik na nadzorni točki in poteg za premik.\n" "Desni klik na nadzorni točki in poteg za spremembo napetosti.\n" "Drži Shift za premike po kotih.\n" "Smerne tipke za premik nadzornih točk.\n" "Pritisni Ctrl + leva/desna smerna tipka za izbiro vrstnega reda nadzornih " "točk.\n" "Pritisni Delete za brisanje izbrane nadzorne točke.\n" "Pritisni preslednico za dodajanje nove nadzorne točke na položaju miške.\n" "Drži Ctrl med pritiskanjem preslednice za ustvarjanje nadzorne točke na " "povsem enakem položaju.\n" "Drži Ctrl med levim klikanjem na nadzorno točko za ustvarjanje nove oblike " "na povsem enakem položaju.\n" "Drži Ctrl med klikanjem zunaj meja slike za ustvarjanje nove oblike začenši " "na robu.\n" "Pritisni Enter za dokončanje oblike." #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Radirka" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Levi klik za brisanje v transparentnost, desni klik za brisanje s pomožno " "barvo. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Tekoči način" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Zvezno" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Splošno" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Prosto oblikovana oblika" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 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/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Preliv" #: ../Pinta.Tools/Tools/GradientTool.cs:63 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/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Premočrten preliv" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Premočrten odsivni preliv" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Premočrtni kara preliv" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Krožni preliv" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Stožčast preliv" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Laso izbira" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Kliknite in povlecite, da narišete oris izbora." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Črta/Krivulja" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Izbor čarobne palice" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Kliknite za izbiro področja sorodne barve." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Levi klik in povlecite izbor za premik izbrane vsebine. Desni klik in " "povlecite izbor, da zavrtite izbrano vsebino." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Premakni izbiro" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Levi klik in povlecite izbor za premik izbrane obrobe. Desni klik in " "povlecite izbor, da zvrtite izbrano obrobo." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Slikarski čopič" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Vrsta" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Vedro z barvo" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Pomik" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Kliknite in povlecite za krmarjenje slike." #: ../Pinta.Tools/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 risanje proste oblike enotočkovne širine črte osnovne barve. " "Desni klik za uporabo pomožne barve." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Ponovno pobarvaj" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Levi klik za zamenjavo pomožne barve z osnovno barvo. Desni klik za obratno." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Pravokotni izbor" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Kliknite in vlecite za izris pravokotne izbire. Držite Shift, da omejite na " "kvadrat." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Pravokotnik" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Zaobljen pravokotnik" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Besedilo" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Besedilo - Zaključi" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Pisava" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Krepko" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Ležeče" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Podčrtano" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Poravnaj levo" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Središčna poravnava" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Poravnaj desno" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Slog besedila" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Običano in obroba" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Zapolni ozadje" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Širina obrobe" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Zmanjšaj velikost obrobe" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Povečaj velikost obrobe" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Prilagodi paleto" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nova velikost palete" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Shrani spremembe v sliko \"{0}\" pred zapiranjem?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "V primeru, da datoteke ne shranite, bodo vse spremembe izgubljene." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Zapri _brez shranjevanja" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Naredi posnetek" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Zakasni preden narediš posnetek (sekunde):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Datoteke slik" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Shrani slikovno datoteko" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta ne podpira shranjevanje slike v to obliko datoteke." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "Ne morem shraniti datoteke za branje" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "Slika je prevelika" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 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/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Datoteka \"{0}\" že obstaja. Jo želite prepisati?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Plast prekrivnosti" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Preimenuj plast" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Skrij plast" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Prikaži plast" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Lastnosti plasti" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Zavrti / Približaj plast" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "Dodatki Pinta skupnosti - posebno za ta operacijski sistem" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "Dodatki Pinta skupnosti - za vse operacijske sisteme" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Prispevali k tej izdaji:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Prispevali k prejšnjim izdajam:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Andrej Znidarsic https://launchpad.net/~andrej.znidarsic\n" " Cameron White https://launchpad.net/~cameronwhite91\n" " Jonathan Pobst https://launchpad.net/~jpobst\n" " grofaty https://launchpad.net/~grofaty" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Prevedli:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Osnovano na programu Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Nekatere ikone uporabljene od:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Narejeno z Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "O programu Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informacije o različici" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Različica" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Dovoljenje" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Izdano z dovoljenjem MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Avtorske pravice" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "avtorjev prispevkov Pinte" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "Prijavi programskega hrošča ..." #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG kakovost" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Kakovost: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Ime:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Vidno" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Način spojitve" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Prekrivnost:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Odložišče" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Po meri" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "Prednastavitev:" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Širina:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "točk" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Višina:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Usmerjenost:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Pokončno" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Ležeče" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Ozadje:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Belo" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Barva ozadja" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Naslov" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Pot" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Skrij" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Sidrno" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Plavajoče" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Samodejno skrij" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Usidraj" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "Prikaži to sporočilo in izhod." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Prikaži različico programa." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "število niti za izrisovanje" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Uporaba: pinta [datoteka]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Možnosti: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Datoteka" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "Ur_ejanje" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "Po_gled" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "Sl_ika" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "P_lasti" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Prilagoditve" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Učin_ki" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Vstavki" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Okno" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Okna orodij" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "Pomo_č" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "OpcijskoIme" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Platno" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Zgodovina" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Plasti" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Slike" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Orodja" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Vedenje robov" #: 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.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.6/po/ast.po0000664000175000017500000016037612474707515015425 0ustar00cameroncameron00000000000000# Asturian translation for pinta # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2015. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-03-01 16:53+0000\n" "Last-Translator: Xuacu Saturio \n" "Language-Team: Asturian \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Crear y editar imaxes de mou fácil" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor d'imaxes" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Editor d'imaxes Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Xestor de complementos" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desfacer" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refacer" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Cortar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copia entemecida" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Apegar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Apegar en capa nueva" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Apegar n'imaxe nueva" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Desaniciar esbilla" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Rellenar esbilla" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Invertir la esbilla" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Esbillalo too" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Desesbillar too" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Abrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Guardar como..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reestablecer a predeterminao" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Afitar el númberu de colores" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Desaniciar esbilla" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deseleicionar" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Abrir ficheru de paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Ficheros de paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Tolos ficheros" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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 "" "Nun pudo abrise'l ficheru de paleta: {0}.\n" "Comprueba que tas tratando d'abrir una paleta de GIMP o Paint.NET válida." #: ../Pinta.Core/Actions/EditActions.cs:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Fallu" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Guardar ficheru de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta de Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta de GIMP (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nuevu..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "" #: ../Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Abrir reciente" #: ../Pinta.Core/Actions/FileActions.cs:64 msgid "Close" msgstr "Zarrar" #: ../Pinta.Core/Actions/FileActions.cs:65 msgid "Save" msgstr "Guardar" #: ../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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Xuacu Saturio https://launchpad.net/~xuacusk8" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/Makevars0000664000175000017500000000044112474706675015762 0ustar00cameroncameron00000000000000top_builddir = .. # - Use the Caption and Hint keywords to detect strings for EffectData # properties. # - The N_ keyword is for the file generated by intltool-extract for # pinta.desktop.in. XGETTEXT_OPTIONS = --keyword=Caption --keyword=Hint --keyword=N_ --add-comments=Translators pinta-1.6/po/fo.po0000664000175000017500000017047012474707515015236 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2013-05-19 03:17+0000\n" "Last-Translator: Jógvan Olsen \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" "Language: fo\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Angra" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Endurgerð" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Klipp" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Avrita" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Set inn" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Klistra inn í eitt nýtt lag" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Klistra inn í eina nýggja mynd" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Strika tað úrvalda" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Fyll úrval" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Vend úrval øvugt" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Vel alt" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Frável allar" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Opna..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Goym sum..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Tómstilla til tað forsetta" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Set tal av litum" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Palett" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Strika úrval" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Frávelja" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Opna palettfílu" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Palettfílur (*.txt, *gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Allar fílur" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Villa" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Goym palettfílu" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET palett (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP palett (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Um" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Skerja til úrval" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Venda vannrætt" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Venda loddrætt" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Snara 90° við urinum" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Snara 90° ímóti urinum" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Snara 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Trýsta flatan" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Legg nýtt lag afturat" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Strika lag" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Tvífalda lag" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Flætta lag niður" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Flyt inn úr fílu..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Flyt lag upp" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Flyt lag niður" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Opna myndafílu" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Flyt inn úr fílu" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Surra inn" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Surra út" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Surra til úrval" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Vanlig stødd" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Amboðsstong" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "skíggjadeplanet" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Linealir" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Skíggjadeplar" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Tummar" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Sentimetrar" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Fullskíggja" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Vindeyga" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Linealeindir" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Amboð" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Snarvegsknappur" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Skriva oman á" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Lag" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "avrita" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Broyt støddina á lørifti" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Flyt valdar skíggjadeplar" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Vanligt" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Glóð" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "" #: ../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: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/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Broyt støddina á mynd" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} mynd {1}" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Ikki goymd fíla {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Bakgrund" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Nýggj mynd" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Opna mynd" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Kundi ikki opna fílu: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Svart og hvítt" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Ljósstyrki / Kontrastur" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Ljósstyrki" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Kurvur" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Dámur / mettan" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Speglvenda litir" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Stig" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Gerð til plakat" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Brúnlita" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Stilla styrki" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Reytt" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Grønt" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blátt" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Leinkjað" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Legg larm til" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Larmur" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Styrki" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Litmettan" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Dekningur" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Buggla" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Reingja" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Mongd" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Skýggj" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Upptekna" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Stigmarka" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Styrki" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Varnast kant" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Sniðger" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Vinkul" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Petti" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Kámar" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Petti" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Fjarstøða" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Snúningur" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Óglærað glas" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Gaussisk káma" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radius" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Mynd" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Blekkskitsa" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Listarligt" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Julia brýtil" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Faktorur" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Góðska" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Surra" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Mandelbrot fraktal" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Miðil" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Rørslukáma" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Miðstillað" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Oljutekning" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Penslastødd" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Grovleiki" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Tjúkd" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Blýantskitsa" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Stødd á blýantsspíski" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Litaøki" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Skíggjadepla" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Puntastødd" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Póla umbýtan" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 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." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Reyðeyga burturtøka" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Loyvt frávik" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Minka um larm" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Styrki" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Framsker" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Skerpa" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Blóðka andlitsmynd" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Hiti" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Tigulskygging" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Tigulstødd" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Reingja" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Ófokusera" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Surrukáma" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Yvurflyt kort" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Ljósmegi" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Reytt " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blátt " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Tómstilla" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Inntak" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Úttak" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Sjálvvirkið" #: ../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:106 msgid "Choose Primary Color" msgstr "Vel grundlit" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Vel hjálit" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Vel palettlit" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Sirklar" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Rist" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Sletta" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Fýrakantar" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Pensilsbreidd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Minka um penslabreidd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Økja um penslabreidd" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Fyll snið" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Tekna umhvarv av skapi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Fyll skapin" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Fyll og tekna umhvarv av skapi" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Avrita stempul" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Litveljari" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 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/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Eftir val" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Skift ikki amboð" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Skift til fyrra amboðið" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Skift til blýantsamboð" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Blýant" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Vel við ellipsu" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Viskileður" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Grannanæstur" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Alheimsliga" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Stigil" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Vel við lasso" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 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/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Velja við gandastavi" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Trýst fyri at velja øki við tílíkum liti." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Flyt úrval" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pensil" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Slag" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Málingaspann" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Skotra" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Klikk og drag til at flyta myndina." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Endurlita" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Vel rætthyrning" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rætthyrningur" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rundaður rætthyrningur" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tekstur" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 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/Tools/TextTool.cs:157 msgid "Font" msgstr "Stavasnið" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Feitir stavir" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Skákskrift" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Undirstrika" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Vinstrastilla" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Miðstilla" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Høgrastilla" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Tekstasnið" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Tekna umhvarv av vídd" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Minka um støddina á teknaðum umhvarvi" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Øk um støddina á tekaðum umhvarvi" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 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/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Broyta palettstødd" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nýggj palletstødd:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Goym broytingar á myndini \"{0}\" áðrenn afturlatan?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Um tú ikki goymir, verða allar broytingar varandi mistar." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Tak skíggjamynd" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Seinkan áðrenn skíggjamyndstøku (sekund):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Myndafílur" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Goym myndafílu" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta stuðlar ikki goymslu í hesum fílusniði." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, 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/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Óskygni á lagnum" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Nýnevn lagið" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Fjal lagið" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Sýn lagið" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Lag eginleikar" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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\n" " Jógvan Olsen https://launchpad.net/~jeggy" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Týtt av:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Grundað á arbeiði hjá Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Nýtandi nakrar ímyndir frá:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Um Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Útgávukunning" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Útgáva" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Loyvi" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Útgivi undir MIT X11 loyvinum." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Upphavsrættur" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "Pinta stuðlar" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "JPEG góðska" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Góðska: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Navn:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Sjónligt" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Óskygni:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Breidd:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "skíggjadeplar" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Hædd:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Heiti" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Leið" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Fjal" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Dokkiført" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flótandi" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Sjálvfjal" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Dokk" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fíla" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Ritstjórna" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Vís" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Mynd" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Løg" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "Stilling_ar" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Vindeygu" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Amboðsvindeygu" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Hjálp" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Søga" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Løg" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Amboð" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Kantatburður" #: 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.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.6/po/ka.po0000664000175000017500000016041512474707515015223 0ustar00cameroncameron00000000000000# Georgian translation for pinta # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the pinta package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: pinta\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-05-26 01:23+0000\n" "Last-Translator: Giorgi Abuladze \n" "Language-Team: Georgian \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" 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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "დონეების თვითრეგულირება" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "შავ-თეთრი" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "სიკაშკაშე/ კონტრასტი" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "წირები" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "ტონი/სატურაცია" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "ფერების ინვერსია" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "დონეები" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "პოსტერიზება" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "სეპია" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "დონეების რეგულირება" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "წითელი" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "მწვანე" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "ლურჯი" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "დაკავშირებული" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "პარამეტრების ჩამოყრა" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "შენატანის ჰისტოგრამა" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "შენატანი" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "შედეგი" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "შედეგის ჰისტოგრამა" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Giorgi Abuladze https://launchpad.net/~g-abuladze" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/bg.po0000664000175000017500000020356512474707515015224 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2014-10-04 07:12+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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Създавайте и редактирайте изображения с лекота" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Редактор на изображения" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Редактор на изображения Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Мениджър на добавките" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Отмяна" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Връщане" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Отрязване" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Копиране" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Копиране на слятото" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Поставяне" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Постави в нов слой" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Постави в ново изображение" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Изтриване на селекцията" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Запълни селекцията" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Обръщане на селекцията" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Избиране на всичко" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Отказване от всички избрано" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Отваряне..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Запазване като…" #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Reset to Default" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Задай брой на цветове" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Палитра" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Отрязване на селекцията" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Деселектиране" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Отвори палитра" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Палитри (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Всички файлове" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Грешка" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Запази палитра" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paint.NET палитри (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "GIMP палитри (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Нов..." #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." 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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "За програмата" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Изрязване на селекцията" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Обръщане хоризонтално" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Обръщане вертикално" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Въртене 90° надясно" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Въртене 90° наляво" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Завърти на 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Плоскост" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Добави нов слой" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Изтриване на слоя" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Дублиране на слоя" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Обедини с долния слой" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Вмъкване от файл..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Местене на слоя нагоре" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Местене на слоя надолу" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Свойства на слоя" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Отвори изображение" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Вмъкване от файл" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Увеличение" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Намаляване" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Напасване по екрана" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Увеличение до избраното" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Нормален размер" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Лента с инструменти" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Мрежа" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Линии" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Пиксели" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Инчове" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Сантиметри" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Цял екран" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Прозорец" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Мерни единици" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Запази всичко" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Затваряне на всичко" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Инструмент" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Пряк път" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Презаписване" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Изглаждане включено" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Изглаждане изключено" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Слой" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "копиране" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Преоразмеряване на платното" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Премести селектираните пиксели" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Нормален" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Блясък" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "Обърни хоризонтално" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Обърни вертикално" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Преоразмеряване на изображение" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "{0} изображение ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Ефект при рендиране" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Незапазено изображение {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Фон" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Ново изображение" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Отваряне на изображение" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Файлът не може да се отвори: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Автоматични нива" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Черно и бяло" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Яркост / Контраст" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Яркост" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Контраст" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Криви" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Тон / Насищане" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Обръщане на цветовете" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Нива" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Намаляване на цветовете (ефект постеризиране)" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Сепия" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Настройка на нивата" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Червено" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Зелено" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Синьо" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Свързано" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Добавяне на шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Шум" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Интензивност" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Наситеност на цветовете" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Обхват" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Издатина" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Изкривяване" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Сума" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Център" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Облаци" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Генериране" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Мащаб" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Сила" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Разпръскване" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Обработка на контури" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Стилизирани" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Ъгъл" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Щампа" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Фрагментиране" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Замъгляване" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Фрагменти" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Разстояние" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Завъртене" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Замръзнало стъкло" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Гаусово замъгляване" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Радиус" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Снимка" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Скициране с мастило" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Художествени" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Мастилени очертания" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Оцветяване" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Фрактал на Джулия" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Фактор" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Качество" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Увеличение" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Фрактал на Манделброт" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Медиана" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Насочено замъгляване" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Центрирано" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Маслени бои" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Размер на четката" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Грапавост" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Контури" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Дебелина" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Скица с молив" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Размер на молива" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Цветови обхват" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Пикселизиране" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Размер на клетка" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Полярна инверсия" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Радиално замъгляване" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Използвай ниско качество за визуализациите, малките изображения и малки " "ъгли.Използвай високо качество за големите изображения и големи ъгли." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Премахване на червени очи" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Допустимост" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Подсказка: За най-добри резултати, първо използвайте инструмент за " "селектиране и селектирайте всяко око." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Намаляване на шума" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Сила" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Релефност" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Изостряне" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Омекотен портрет" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Топлина" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Отражение мозайка" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Размер на полето" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Усукване" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Заглаждане" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Разфокусиране" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Center Offset" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Мащабно замъгляване" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Трансферна карта" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "ЧЗС" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Блясък" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Червено " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Синьо " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Изчистване" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" "Подсказка: Натиснете десен бутон, за да премахнете контролните точки." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Входна хистограма" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Вход" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Изход" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Изходна хистограма" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" 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:106 msgid "Choose Primary Color" msgstr "Избери основен цвят" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Избери втори цвят" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Избери цветова палитра" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Кръгове" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Мрежа" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Спрей" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Квадрати" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Дебелина на четката" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Намали" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Увеличи" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Стил" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Контур" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Плътен" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Плътен с контур" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Елипса" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Клониране" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "Ctrl+ляв бутон за начало, ляв бутон за рисуване." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Избор на цвят" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Ляв бутон за да зададете като основен цвят, десен бутон - втори цвят." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "След използване" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Без смяна на инструмента" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Връщане към предния инструмент" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Сменяне с Молив" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Молив" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Елипса" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Гума" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Ляв бутон за изтриване до прозрачност, десен бутон за изтриване до втория " "цвят. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Режим" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Последователен" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Глобален" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Свободна форма" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "Ляв бутон за рисуване с основния цвят, десен бутон за втория." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Преливка" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Кликнете и влачете за да нарисувате преливка от основен цвят към втори.Десен " "бутон за обратното." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Линеен" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Линеен отразен" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Ромбоиден" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Радиален" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Коничен" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Ласо" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "Натиснете ляв бутон и влачете за да селектирате област." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Вълшебна пръчица" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Кликнете за да изберете регион със подобни цветове." #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Преместване на избраното" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Четка" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Вид" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Боички" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Ръка" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Ляв бутон и влачете за да преместите изображението." #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Оцветяване" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Правоъгълник" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Правоъгълник" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Заоблен правоъгълник" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Текст" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Ляв бутон за да укажете мястото за въвеждане на избраният текст.За цвят ще " "се използва основният." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Шрифт" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Удебелен" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Наклонен" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Подчертан" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Ляво подравняване" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Централно подравняване" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Дясно подравняване" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Стил" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Нормален и контури" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Дебелина на контура" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Намали" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Увеличи" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Ляв бутон за увеличение, десен бутон за намаление.Натиснете ляв бутон и " "влачете за да увеличите селекция." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Преоразмеряване на палитрата" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Нов размер:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Запази промените на изображение \"{0}\" преди излизане?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Ако не запазите, всички промени ще бъдат загубени." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Направи снимка на екрана" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Закъснение преди снимката на екрана(секунди):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Изображения" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Запази изображение" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "Pinta не поддържа запазването на изображения в този формат." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "Файл с име \"{0}\" вече съществува.Желаете ли да се замести?" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "Файлът вече съществува в \"{1}\" .Заместването му ще презапише негово " "съдържание." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Непрозрачност на слоя" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Преименуване на слоя" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Скрий слоя" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Покажи слоя" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Настройки на слоя" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 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:149 msgid "Translated by:" msgstr "Преведено от:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Програмата е базирана на Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "Използват се следните икони:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Относно Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Информация за версията" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Версия" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Лиценз" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Публикувано под MIT X11 лиценз." #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Авторски права" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "от разработчиците на Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Качество на JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Качество: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Име:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Видим" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Смесване" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Непрозрачност:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Широчина:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "пиксели" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Височина:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Заглавие" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Път" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Скрий" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Прикрепяем" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Плаващ" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Автоматично скриване" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" 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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Запазване на съотношението" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Посока" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Файл" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Редактиране" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "И_зглед" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Изображение" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Слоеве" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Корекция" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "_Ефекти" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Прозорци" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Прозорци" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "Помо_щ" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "История" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Слоеве" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Инструменти" #: Polar Inversion dialog msgid "Edge Behavior" 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.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.6/po/oc.po0000664000175000017500000016611712474707515015236 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: 2015-02-22 23:02-0500\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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Anullar" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Restablir" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Copar" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copiar" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Pegar" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inversar la seleccion" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Seleccionar tot" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "Deseleccionar tot" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Dobrir..." #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Enregistrar jos..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Restablir las valors per defaut" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Definir lo nombre de colors" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Deseleccionar" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Fichièrs Paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Totes los fichièrs" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta GIMP (*.gpl)" #: ../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: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: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/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/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "A prepaus" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Rotacion de 180°" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Aplatir" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Apondre un calc novèl" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Suprimir lo calc" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Duplicar lo calc" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Proprietats del calc" #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Dobrir un fichièr imatge" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Zoom avant" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Zoom arrièr" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Talha ideala" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Zoomar cap a la seleccion" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Talha normala" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra d'aisinas" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Grasilha dels pixèls" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Règlas" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Pixèls" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Poces" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centimètres" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Ecran complet" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Fenèstra" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unitats règla" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "" #: ../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/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Aisina" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Espotir" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Calc" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copiar" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Lusor" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" 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:79 msgid "Flip Layer Horizontal" msgstr "" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensionar l'imatge" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Imatge {0} ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "..." #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efièch de rendut" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imatge pas enregistrat {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Rèire plan" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Imatge nèlov" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Dobrir un imatge" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "Impossible de dobrir lo fichièr : {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Nivèl automatic" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Blanc e negre" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Luminositat / contraste" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Luminositat" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contraste" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Corbas" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "Tencha / Saturacion" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inversar las colors" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivèls" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Posterizar" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sèpia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajustament dels nivèls" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Roge" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verd" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blau" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Per afinitats" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Apondon de bruch" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Bruch" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Fondut d'intensitat" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsion" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Quantitat" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Decalatge" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Nívols" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Exportar en vidèo" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Metre a l'escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Exponenciala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Grana" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detectar los contorns" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilizar" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle de presa de vista" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragmentacion" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Fosc" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distància" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotacion" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Fosc gaussian" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Rai" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Fòto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artistic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Coloracion" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractala de Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualitat" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Redimensionar" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractala de Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Median" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Fosc de movement" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrat" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintrura d'òli" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorn" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Espessor" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Gama de colors" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixelizar" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Transformacion Simetrica" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Fosc radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Supression dels uèlhs roges" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerança" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Reduire lo bruch" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Fòrça" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relèu" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Accentuacion de la netetat" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Adocir lo retrach" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Esclairatge" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Calor" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Reflexion mosaïca" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Talha dels tèules" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Tòrcer" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Defocalizar" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Excentracion" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Fosc de rèire plan" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Carta de transferiment" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RVB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Luminositat" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Roge " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blau " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Reïnicializar" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Istograma d'entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Sortida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Istograma de sortida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automatic" #: ../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:106 msgid "Choose Primary Color" msgstr "Causir la color primària" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Causir la color segondària" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Causir la paleta de colors" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cèrcles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Grasilha" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Carrats" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Largor del pincèl" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Demesir la talha del pincèl" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Augmentar la talha del pincèl" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Estil d'emplenatge" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Forma exteriora" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Forma d'emplenatge" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "Ellipsa" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Tampon Duplicador" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Pipeta a colors" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Aprèp la seleccion" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "Cambiar pas d'aisina" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Cambiar per l'aisina precedenta" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Cambiar per l'aisina Gredon" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Gredon" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Seleccion elliptica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Goma" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mòde d'emplenatge" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contigua" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Globala" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma Liura" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Degradat" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Degradat Linear" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Degradat circular" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Degradat conic" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Seleccion Bagueta Magica" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Desplaçar la seleccion" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pincèl" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipe" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Pòt de pintrura" #: ../Pinta.Tools/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/Tools/PanTool.cs:37 msgid "Pan" msgstr "Panoramic" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "" #: ../Pinta.Tools/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/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Recolorizacion" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Seleccion rectangulara" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rectangle arredondit" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Tèxte" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Poliça de caractèr" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Gras" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Italica" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Soslinhat" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Alinhament a esquèrra" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Alinhat al centre" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Alinhat a drecha" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estil del tèxte" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal amb contorns" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Largor del contorn" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Demesir la talha del contorn" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Augmentar la talha del contorn" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 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/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Prene una captura d'ecran" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Fichièrs d'imatges" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Enregistrar lo fichièr imatge" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, csharp-format msgid "A file named \"{0}\" already exists. Do you want to replace it?" msgstr "" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacitat del calc" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Renomenar lo calc" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Amagar lo calc" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Afichar lo calc" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Proprietats del calc" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cédric VALMARY (Tot en òc) https://launchpad.net/~cvalmary" #: ../Pinta/Dialogs/AboutDialog.cs:149 msgid "Translated by:" msgstr "Traduch per :" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basat sul trabalh de Paint.NET :" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "A prepaus de Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informacion de version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Version" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Licéncia" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Mes a disposicion jos licéncia MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Dreches d'autor" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "pels contributors de Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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 "" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualitat JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualitat : " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nom :" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacitat :" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Largor :" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "pixèls" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Nautor :" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Títol" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Camin" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Amagar" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Ancorable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotanta" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Amagament automatic" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Incrustar" #: ../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: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/Main.cs:72 msgid "Show this message and exit." msgstr "" #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "" #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "" #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fichièr" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edicion" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Afichatge" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imatge" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Calques" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Ajustaments" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efièche_s" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "_Fenèstra" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "_Ajuda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nom de l'opcion" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Istoric" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Calques" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Aisinas" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Compòrtament del bòrd" #: 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.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.6/po/ca.po0000664000175000017500000020576712474707515015225 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: 2015-02-22 23:02-0500\n" "PO-Revision-Date: 2015-02-23 03:59+0000\n" "Last-Translator: Adolfo Jayme \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: 2015-03-01 22:08+0000\n" "X-Generator: Launchpad (build 17361)\n" #: ../xdg/pinta.desktop.in.h:1 msgid "Pinta" msgstr "Pinta" #: ../xdg/pinta.desktop.in.h:2 msgid "Easily create and edit images" msgstr "Creeu i editeu imatges de forma senzilla" #: ../xdg/pinta.desktop.in.h:3 msgid "Image Editor" msgstr "Editor d’imatges" #: ../xdg/pinta.desktop.in.h:4 msgid "Pinta Image Editor" msgstr "Editor d’imatges Pinta" #: ../Pinta.Core/Actions/AddinActions.cs:40 msgid "Add-in Manager" msgstr "Gestor de connectors" #: ../Pinta.Core/Actions/EditActions.cs:67 msgid "Undo" msgstr "Desfés" #: ../Pinta.Core/Actions/EditActions.cs:68 msgid "Redo" msgstr "Refés" #: ../Pinta.Core/Actions/EditActions.cs:69 #: ../Pinta.Core/Actions/EditActions.cs:216 msgid "Cut" msgstr "Retalla" #: ../Pinta.Core/Actions/EditActions.cs:70 msgid "Copy" msgstr "Copia" #: ../Pinta.Core/Actions/EditActions.cs:71 msgid "Copy Merged" msgstr "Copia visible" #: ../Pinta.Core/Actions/EditActions.cs:72 #: ../Pinta.Core/Classes/Document.cs:768 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:44 msgid "Paste" msgstr "Enganxa" #: ../Pinta.Core/Actions/EditActions.cs:73 #: ../Pinta.Core/Classes/Document.cs:764 msgid "Paste Into New Layer" msgstr "Enganxa en una capa nova" #: ../Pinta.Core/Actions/EditActions.cs:74 msgid "Paste Into New Image" msgstr "Enganxa en una imatge nova" #: ../Pinta.Core/Actions/EditActions.cs:75 msgid "Delete Selection" msgstr "Esborra la selecció" #: ../Pinta.Core/Actions/EditActions.cs:76 #: ../Pinta.Core/Actions/EditActions.cs:178 msgid "Fill Selection" msgstr "Omple la selecció" #: ../Pinta.Core/Actions/EditActions.cs:77 #: ../Pinta.Core/Actions/EditActions.cs:418 msgid "Invert Selection" msgstr "Inverteix la selecció" #: ../Pinta.Core/Actions/EditActions.cs:78 #: ../Pinta.Core/Actions/EditActions.cs:187 msgid "Select All" msgstr "Selecciona-ho tot" #: ../Pinta.Core/Actions/EditActions.cs:79 msgid "Deselect All" msgstr "No seleccionis res" #: ../Pinta.Core/Actions/EditActions.cs:81 #: ../Pinta.Core/Actions/FileActions.cs:56 msgid "Open..." msgstr "Obre…" #: ../Pinta.Core/Actions/EditActions.cs:82 #: ../Pinta.Core/Actions/FileActions.cs:66 msgid "Save As..." msgstr "Anomena i desa..." #: ../Pinta.Core/Actions/EditActions.cs:83 msgid "Reset to Default" msgstr "Restaura els valors per defecte" #: ../Pinta.Core/Actions/EditActions.cs:84 msgid "Set Number of Colors" msgstr "Estableix el nombre de colors" #: ../Pinta.Core/Actions/EditActions.cs:125 #: ../Pinta/Pads/ColorPalettePad.cs:42 ../Pinta/Pads/ColorPalettePad.cs:49 msgid "Palette" msgstr "Paleta" #: ../Pinta.Core/Actions/EditActions.cs:218 msgid "Erase Selection" msgstr "Esborra la selecció" #: ../Pinta.Core/Actions/EditActions.cs:227 msgid "Deselect" msgstr "Desselecciona" #: ../Pinta.Core/Actions/EditActions.cs:327 msgid "Open Palette File" msgstr "Obre el fitxer de paleta" #: ../Pinta.Core/Actions/EditActions.cs:334 msgid "Palette files (*.txt, *.gpl)" msgstr "Fitxers de paleta (*.txt, *.gpl)" #: ../Pinta.Core/Actions/EditActions.cs:338 #: ../Pinta/Actions/File/OpenDocumentAction.cs:67 msgid "All files" msgstr "Tots els fitxers" #: ../Pinta.Core/Actions/EditActions.cs:354 #, 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 s'ha pogut obrir el fitxer de paleta: {0}.\n" "Comproveu que esteu intentant obrir una paleta GIMP o Paint.NET vàlida." #: ../Pinta.Core/Actions/EditActions.cs:355 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:191 #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:203 msgid "Error" msgstr "Hi ha hagut un error" #: ../Pinta.Core/Actions/EditActions.cs:367 msgid "Save Palette File" msgstr "Desa el fitxer de paleta" #: ../Pinta.Core/Actions/EditActions.cs:373 msgid "Paint.NET palette (*.txt)" msgstr "Paleta de Paint.NET (*.txt)" #: ../Pinta.Core/Actions/EditActions.cs:378 msgid "GIMP palette (*.gpl)" msgstr "Paleta de GIMP (*.gpl)" #: ../Pinta.Core/Actions/FileActions.cs:54 msgid "New..." msgstr "Nou…" #: ../Pinta.Core/Actions/FileActions.cs:55 msgid "New Screenshot..." msgstr "Captura de pantalla nova…" #: ../Pinta.Core/Actions/FileActions.cs:57 msgid "Open Recent" msgstr "Obre recents" #: ../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:67 msgid "Print" msgstr "Imprimeix" #: ../Pinta.Core/Actions/FileActions.cs:68 msgid "Quit" msgstr "Surt" #: ../Pinta.Core/Actions/FileActions.cs:70 msgid "New" msgstr "Nou" #: ../Pinta.Core/Actions/FileActions.cs:71 msgid "Open" msgstr "Obre" #: ../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 "Informa d'un error" #: ../Pinta.Core/Actions/HelpActions.cs:52 msgid "Translate This Application" msgstr "Traduïu aquesta aplicació" #: ../Pinta.Core/Actions/HelpActions.cs:53 ../Pinta/MainWindow.cs:240 msgid "About" msgstr "Quant a" #: ../Pinta.Core/Actions/ImageActions.cs:59 #: ../Pinta.Core/Actions/ImageActions.cs:279 msgid "Crop to Selection" msgstr "Escapça la selecció" #: ../Pinta.Core/Actions/ImageActions.cs:60 msgid "Auto Crop" msgstr "Escapça automàticament" #: ../Pinta.Core/Actions/ImageActions.cs:61 msgid "Resize Image..." msgstr "Redimensiona la imatge..." #: ../Pinta.Core/Actions/ImageActions.cs:62 msgid "Resize Canvas..." msgstr "Redimensiona el llenç..." #: ../Pinta.Core/Actions/ImageActions.cs:63 #: ../Pinta.Core/Actions/LayerActions.cs:70 msgid "Flip Horizontal" msgstr "Inversió horitzontal" #: ../Pinta.Core/Actions/ImageActions.cs:64 #: ../Pinta.Core/Actions/LayerActions.cs:71 msgid "Flip Vertical" msgstr "Inversió vertical" #: ../Pinta.Core/Actions/ImageActions.cs:65 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:62 msgid "Rotate 90° Clockwise" msgstr "Gira a la dreta 90º" #: ../Pinta.Core/Actions/ImageActions.cs:66 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:66 msgid "Rotate 90° Counter-Clockwise" msgstr "Gira a l'esquerra 90º" #: ../Pinta.Core/Actions/ImageActions.cs:67 #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:50 msgid "Rotate 180°" msgstr "Gira 180º" #: ../Pinta.Core/Actions/ImageActions.cs:68 #: ../Pinta.Core/Actions/ImageActions.cs:137 msgid "Flatten" msgstr "Aplana" #: ../Pinta.Core/Actions/LayerActions.cs:65 #: ../Pinta.Core/Actions/LayerActions.cs:292 #: ../Pinta.Core/Classes/Document.cs:826 msgid "Add New Layer" msgstr "Afegeix una capa nova" #: ../Pinta.Core/Actions/LayerActions.cs:66 #: ../Pinta.Core/Actions/LayerActions.cs:275 msgid "Delete Layer" msgstr "Elimina la capa" #: ../Pinta.Core/Actions/LayerActions.cs:67 #: ../Pinta.Core/Actions/LayerActions.cs:266 msgid "Duplicate Layer" msgstr "Capa duplicada" #: ../Pinta.Core/Actions/LayerActions.cs:68 #: ../Pinta.Core/Actions/LayerActions.cs:244 msgid "Merge Layer Down" msgstr "Fusiona amb la capa inferior" #: ../Pinta.Core/Actions/LayerActions.cs:69 msgid "Import from File..." msgstr "Importa des del fitxer..." #: ../Pinta.Core/Actions/LayerActions.cs:72 msgid "Rotate / Zoom Layer..." msgstr "Gira la capa" #: ../Pinta.Core/Actions/LayerActions.cs:73 #: ../Pinta.Core/Actions/LayerActions.cs:219 msgid "Move Layer Up" msgstr "Puja la capa" #: ../Pinta.Core/Actions/LayerActions.cs:74 #: ../Pinta.Core/Actions/LayerActions.cs:230 msgid "Move Layer Down" msgstr "Baixa la capa" #: ../Pinta.Core/Actions/LayerActions.cs:75 msgid "Layer Properties..." msgstr "Propietats de la capa..." #: ../Pinta.Core/Actions/LayerActions.cs:157 #: ../Pinta/Actions/File/OpenDocumentAction.cs:50 msgid "Open Image File" msgstr "Obre un fitxer d’imatge" #: ../Pinta.Core/Actions/LayerActions.cs:185 msgid "Import From File" msgstr "Importa des d'un fitxer" #: ../Pinta.Core/Actions/ViewActions.cs:76 msgid "Zoom In" msgstr "Amplia" #: ../Pinta.Core/Actions/ViewActions.cs:77 msgid "Zoom Out" msgstr "Redueix" #: ../Pinta.Core/Actions/ViewActions.cs:78 msgid "Best Fit" msgstr "Millor ajust" #: ../Pinta.Core/Actions/ViewActions.cs:79 msgid "Zoom to Selection" msgstr "Ajusta a l'amplada de la selecció" #: ../Pinta.Core/Actions/ViewActions.cs:80 msgid "Normal Size" msgstr "Mida normal" #: ../Pinta.Core/Actions/ViewActions.cs:81 msgid "Toolbar" msgstr "Barra d'eines" #: ../Pinta.Core/Actions/ViewActions.cs:82 msgid "Pixel Grid" msgstr "Graella de píxels" #: ../Pinta.Core/Actions/ViewActions.cs:83 msgid "Rulers" msgstr "Regles" #: ../Pinta.Core/Actions/ViewActions.cs:84 msgid "Pixels" msgstr "Píxels" #: ../Pinta.Core/Actions/ViewActions.cs:85 msgid "Inches" msgstr "Polzades" #: ../Pinta.Core/Actions/ViewActions.cs:86 msgid "Centimeters" msgstr "Centímetres" #: ../Pinta.Core/Actions/ViewActions.cs:87 msgid "Fullscreen" msgstr "Pantalla completa" #: ../Pinta.Core/Actions/ViewActions.cs:113 #: ../Pinta.Core/Actions/ViewActions.cs:272 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:299 #: ../Pinta.Core/Classes/DocumentWorkspace.cs:307 msgid "Window" msgstr "Finestra" #: ../Pinta.Core/Actions/ViewActions.cs:155 msgid "Ruler Units" msgstr "Unitats del regle" #. Translators: This specifies the format of the zoom percentage choices #. in the toolbar. #: ../Pinta.Core/Actions/ViewActions.cs:253 #, csharp-format msgid "{0}%" msgstr "{0} %" #: ../Pinta.Core/Actions/WindowActions.cs:45 msgid "Save All" msgstr "Desa-ho tot" #: ../Pinta.Core/Actions/WindowActions.cs:46 msgid "Close All" msgstr "Tanca-ho tot" #: ../Pinta.Core/Classes/BaseTool.cs:251 msgid "Tool" msgstr "Eina" #: ../Pinta.Core/Classes/BaseTool.cs:327 msgid "Shortcut key" msgstr "Drecera de teclat" #: ../Pinta.Core/Classes/BaseTool.cs:436 msgid "Normal Blending" msgstr "Barreja normal" #: ../Pinta.Core/Classes/BaseTool.cs:437 msgid "Overwrite" msgstr "Sobreescriu" #: ../Pinta.Core/Classes/BaseTool.cs:451 msgid "Antialiasing On" msgstr "Antialiàsing activat" #: ../Pinta.Core/Classes/BaseTool.cs:452 msgid "Antialiasing Off" msgstr "Antialiàsing desactivat" #: ../Pinta.Core/Classes/Document.cs:286 ../Pinta.Core/Classes/Document.cs:291 #: ../Pinta.Tools/Tools/ColorPickerTool.cs:135 msgid "Layer" msgstr "Capa" #: ../Pinta.Core/Classes/Document.cs:373 msgid "copy" msgstr "copia" #: ../Pinta.Core/Classes/Document.cs:641 #: ../Pinta/Dialogs/ResizeCanvasDialog.cs:39 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:86 msgid "Resize Canvas" msgstr "Redimensiona el llenç" #: ../Pinta.Core/Classes/Document.cs:842 #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:65 #: ../Pinta.Core/HistoryItems/PasteHistoryItem.cs:67 #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:43 msgid "Move Selected Pixels" msgstr "Desplaça els píxels seleccionats" #: ../Pinta.Core/Classes/Document.cs:860 msgid "Image larger than canvas" msgstr "La imatge és més gran que el llenç" #: ../Pinta.Core/Classes/Document.cs:861 msgid "" "The image being pasted is larger than the canvas size. What would you like " "to do?" msgstr "" "La imatge que voleu enganxar és més gran que la mida del llenç. Què voleu " "fer?" #: ../Pinta.Core/Classes/Document.cs:865 msgid "Expand canvas" msgstr "Expandeix el llenç" #: ../Pinta.Core/Classes/Document.cs:866 msgid "Don't change canvas size" msgstr "No canviïs la mida del llenç" #: ../Pinta.Core/Classes/Document.cs:879 msgid "Image cannot be pasted" msgstr "No s’ha pogut enganxar la imatge" #: ../Pinta.Core/Classes/Document.cs:880 msgid "The clipboard does not contain an image." msgstr "El porta-retalls no conté cap imatge." #: ../Pinta.Core/Classes/SelectionModeHandler.cs:46 msgid "Replace" msgstr "Substitueix" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:47 msgid "Union (+) (Ctrl + Left Click)" msgstr "Unió (+) (Ctrl + Clic esquerre)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:48 msgid "Exclude (-) (Right Click)" msgstr "Exclou (-) (Clic dret)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:49 msgid "Xor (Ctrl + Right Click)" msgstr "Xor (Ctrl + Clic dret)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:50 msgid "Intersect (Shift + Left Click)" msgstr "Intersecció (Maj + Clic esquerre)" #: ../Pinta.Core/Classes/SelectionModeHandler.cs:57 msgid " Selection Mode: " msgstr " Mode de selecció: " #: ../Pinta.Core/Effects/UserBlendOps.cs:52 #: ../Pinta.Tools/Brushes/PlainBrush.cs:37 #: ../Pinta.Tools/Tools/TextTool.cs:249 msgid "Normal" msgstr "Normal" #: ../Pinta.Core/Effects/UserBlendOps.cs:53 msgid "Multiply" msgstr "Multiplica" #: ../Pinta.Core/Effects/UserBlendOps.cs:54 msgid "Additive" msgstr "Additiu" #: ../Pinta.Core/Effects/UserBlendOps.cs:55 msgid "Color Burn" msgstr "Subexposa el color" #: ../Pinta.Core/Effects/UserBlendOps.cs:56 msgid "Color Dodge" msgstr "Sobreexposa el color" #: ../Pinta.Core/Effects/UserBlendOps.cs:57 #: ../Pinta.Effects/Effects/WarpEffect.cs:23 msgid "Reflect" msgstr "Reflexió" #: ../Pinta.Core/Effects/UserBlendOps.cs:58 #: ../Pinta.Effects/Effects/GlowEffect.cs:30 msgid "Glow" msgstr "Lluentor" #: ../Pinta.Core/Effects/UserBlendOps.cs:59 msgid "Overlay" msgstr "Sobreposa" #: ../Pinta.Core/Effects/UserBlendOps.cs:60 msgid "Difference" msgstr "Diferència" #: ../Pinta.Core/Effects/UserBlendOps.cs:61 msgid "Negation" msgstr "Negació" #: ../Pinta.Core/Effects/UserBlendOps.cs:62 msgid "Lighten" msgstr "Il·lumina" #: ../Pinta.Core/Effects/UserBlendOps.cs:63 msgid "Darken" msgstr "Enfosqueix" #: ../Pinta.Core/Effects/UserBlendOps.cs:64 msgid "Screen" msgstr "Pantalla" #: ../Pinta.Core/Effects/UserBlendOps.cs:65 msgid "Xor" msgstr "Xor" #: ../Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs:43 msgid "Finish Pixels" msgstr "Finalitza píxels" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:54 msgid "Flip Image Horizontal" msgstr "Inversió horitzontal" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:58 msgid "Flip Image Vertical" msgstr "Inversió vertical" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:79 msgid "Flip Layer Horizontal" msgstr "Inversió horitzontal de la capa" #: ../Pinta.Core/HistoryItems/InvertHistoryItem.cs:83 msgid "Flip Layer Vertical" msgstr "Inversió vertical de la capa" #: ../Pinta.Core/HistoryItems/ResizeHistoryItem.cs:43 #: ../Pinta/Dialogs/ResizeImageDialog.cs:38 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:56 msgid "Resize Image" msgstr "Redimensiona la imatge" #: ../Pinta.Core/ImageFormats/FormatDescriptor.cs:93 #, csharp-format msgid "{0} image ({1})" msgstr "Imatge {0} ({1})" #: ../Pinta.Core/Managers/EffectsManager.cs:63 #: ../Pinta.Core/Managers/EffectsManager.cs:98 msgid "..." msgstr "…" #: ../Pinta.Core/Managers/LivePreviewManager.cs:221 msgid "Rendering Effect" msgstr "Efecte de renderització" #: ../Pinta.Core/Managers/ToolManager.cs:234 #: ../Pinta.Core/Managers/ToolManager.cs:236 msgid "No tool selected." msgstr "No s’ha seleccionat cap eina." #: ../Pinta.Core/Managers/WorkspaceManager.cs:107 #, csharp-format msgid "Unsaved Image {0}" msgstr "Imatge sense desar {0}" #: ../Pinta.Core/Managers/WorkspaceManager.cs:166 msgid "Background" msgstr "Fons" #: ../Pinta.Core/Managers/WorkspaceManager.cs:175 #: ../Pinta/Dialogs/NewImageDialog.cs:68 msgid "New Image" msgstr "Imatge nova" #: ../Pinta.Core/Managers/WorkspaceManager.cs:195 msgid "Unsupported file format" msgstr "El format del fitxer no és compatible" #: ../Pinta.Core/Managers/WorkspaceManager.cs:200 msgid "Open Image" msgstr "Obre una imatge" #: ../Pinta.Core/Managers/WorkspaceManager.cs:208 msgid "Permission denied" msgstr "S’ha denegat el permís" #: ../Pinta.Core/Managers/WorkspaceManager.cs:349 #, csharp-format msgid "Could not open file: {0}" msgstr "No s'ha pogut obrir el fitxer: {0}" #: ../Pinta.Effects/Adjustments/AutoLevelEffect.cs:25 msgid "Auto Level" msgstr "Nivell automàtic" #: ../Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs:25 msgid "Black and White" msgstr "Blanc i negre" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:29 msgid "Brightness / Contrast" msgstr "Brillantor / Contrast" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:152 #: ../Pinta.Effects/Effects/GlowEffect.cs:82 msgid "Brightness" msgstr "Brillantor" #: ../Pinta.Effects/Adjustments/BrightnessContrastEffect.cs:163 #: ../Pinta.Effects/Effects/GlowEffect.cs:84 msgid "Contrast" msgstr "Contrast" #: ../Pinta.Effects/Adjustments/CurvesEffect.cs:27 #: ../Pinta.Effects/Dialogs/Effects.CurvesDialog.cs:82 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:30 msgid "Curves" msgstr "Corbes" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:26 msgid "Hue / Saturation" msgstr "To / Saturació" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:67 msgid "Hue" msgstr "Matís" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:70 msgid "Saturation" msgstr "Saturació" #: ../Pinta.Effects/Adjustments/HueSaturationEffect.cs:73 msgid "Lightness" msgstr "Lluminositat" #: ../Pinta.Effects/Adjustments/InvertColorsEffect.cs:25 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:167 msgid "Invert Colors" msgstr "Inverteix els colors" #: ../Pinta.Effects/Adjustments/LevelsEffect.cs:23 msgid "Levels" msgstr "Nivells" #: ../Pinta.Effects/Adjustments/PosterizeEffect.cs:25 #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:56 msgid "Posterize" msgstr "Redueix el nombre de colors" #: ../Pinta.Effects/Adjustments/SepiaEffect.cs:26 msgid "Sepia" msgstr "Sèpia" #: ../Pinta.Effects/Dialogs/Effects.LevelsDialog.cs:53 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:59 msgid "Levels Adjustment" msgstr "Ajustament dels nivells" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:109 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:434 msgid "Red" msgstr "Vermell" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:113 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:126 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:445 msgid "Green" msgstr "Verd" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:117 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:484 msgid "Blue" msgstr "Blau" #: ../Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs:120 msgid "Linked" msgstr "Enllaçat" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:29 msgid "Add Noise" msgstr "Afegeix soroll" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:37 #: ../Pinta.Effects/Effects/MedianEffect.cs:36 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:36 msgid "Noise" msgstr "Soroll" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:169 #: ../Pinta.Effects/Effects/OutlineEffect.cs:145 #: ../Pinta.Effects/Effects/TileEffect.cs:142 msgid "Intensity" msgstr "Intensitat" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:172 msgid "Color Saturation" msgstr "Saturació del color" #: ../Pinta.Effects/Effects/AddNoiseEffect.cs:175 msgid "Coverage" msgstr "Cobertura" #: ../Pinta.Effects/Effects/BulgeEffect.cs:25 msgid "Bulge" msgstr "Abonyega" #: ../Pinta.Effects/Effects/BulgeEffect.cs:33 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:33 #: ../Pinta.Effects/Effects/PixelateEffect.cs:37 #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:38 #: ../Pinta.Effects/Effects/TileEffect.cs:33 #: ../Pinta.Effects/Effects/TwistEffect.cs:33 msgid "Distort" msgstr "Distorsiona" #: ../Pinta.Effects/Effects/BulgeEffect.cs:101 #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:161 #: ../Pinta.Effects/Effects/SharpenEffect.cs:63 #: ../Pinta.Effects/Effects/TwistEffect.cs:131 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:131 msgid "Amount" msgstr "Quantitat" #: ../Pinta.Effects/Effects/BulgeEffect.cs:104 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:161 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:134 msgid "Offset" msgstr "Desplaçament" #: ../Pinta.Effects/Effects/CloudsEffect.cs:29 msgid "Clouds" msgstr "Núvols" #: ../Pinta.Effects/Effects/CloudsEffect.cs:37 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:33 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:33 msgid "Render" msgstr "Renderitza" #: ../Pinta.Effects/Effects/CloudsEffect.cs:190 msgid "Scale" msgstr "Escala" #: ../Pinta.Effects/Effects/CloudsEffect.cs:193 msgid "Power" msgstr "Força" #: ../Pinta.Effects/Effects/CloudsEffect.cs:216 msgid "Seed" msgstr "Llavor" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:28 msgid "Edge Detect" msgstr "Detecció de vores" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:36 #: ../Pinta.Effects/Effects/EmbossEffect.cs:33 #: ../Pinta.Effects/Effects/OutlineEffect.cs:36 #: ../Pinta.Effects/Effects/ReliefEffect.cs:32 msgid "Stylize" msgstr "Estilitza" #: ../Pinta.Effects/Effects/EdgeDetectEffect.cs:88 #: ../Pinta.Effects/Effects/EmbossEffect.cs:143 #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:140 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:164 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:111 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:158 #: ../Pinta.Effects/Effects/ReliefEffect.cs:88 #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:435 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:83 msgid "Angle" msgstr "Angle" #: ../Pinta.Effects/Effects/EmbossEffect.cs:25 msgid "Emboss" msgstr "Esculpeix" #: ../Pinta.Effects/Effects/FragmentEffect.cs:25 msgid "Fragment" msgstr "Fragment" #: ../Pinta.Effects/Effects/FragmentEffect.cs:33 #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:33 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:33 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:33 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:35 #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:33 msgid "Blurs" msgstr "Difuminats" #: ../Pinta.Effects/Effects/FragmentEffect.cs:111 msgid "Fragments" msgstr "Fragments" #: ../Pinta.Effects/Effects/FragmentEffect.cs:114 #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:114 msgid "Distance" msgstr "Distància" #: ../Pinta.Effects/Effects/FragmentEffect.cs:117 #: ../Pinta.Effects/Effects/TileEffect.cs:138 msgid "Rotation" msgstr "Rotació" #: ../Pinta.Effects/Effects/FrostedGlassEffect.cs:25 msgid "Frosted Glass" msgstr "Vidre gebrat" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:25 msgid "Gaussian Blur" msgstr "Difuminat gaussià" #: ../Pinta.Effects/Effects/GaussianBlurEffect.cs:260 #: ../Pinta.Effects/Effects/GlowEffect.cs:80 #: ../Pinta.Effects/Effects/MedianEffect.cs:70 #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:94 #: ../Pinta.Effects/Effects/UnfocusEffect.cs:98 #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:125 msgid "Radius" msgstr "Radi" #: ../Pinta.Effects/Effects/GlowEffect.cs:38 #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:36 #: ../Pinta.Effects/Effects/SharpenEffect.cs:33 #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:66 msgid "Photo" msgstr "Foto" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:33 msgid "Ink Sketch" msgstr "Esbós en tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:41 #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:33 #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:40 msgid "Artistic" msgstr "Artístic" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:165 msgid "Ink Outline" msgstr "Contorn a tinta" #: ../Pinta.Effects/Effects/InkSketchEffect.cs:168 msgid "Coloring" msgstr "Colorejat" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:25 msgid "Julia Fractal" msgstr "Fractal Julia" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:131 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:154 msgid "Factor" msgstr "Factor" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:134 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:157 #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:164 #: ../Pinta.Effects/Effects/WarpEffect.cs:188 msgid "Quality" msgstr "Qualitat" #: ../Pinta.Effects/Effects/JuliaFractalEffect.cs:137 #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:161 #: ../Pinta.Tools/Tools/ZoomTool.cs:48 msgid "Zoom" msgstr "Zoom" #: ../Pinta.Effects/Effects/MandelbrotFractalEffect.cs:25 msgid "Mandelbrot Fractal" msgstr "Fractal de Mandelbrot" #: ../Pinta.Effects/Effects/MedianEffect.cs:28 msgid "Median" msgstr "Mediana" #: ../Pinta.Effects/Effects/MedianEffect.cs:73 msgid "Percentile" msgstr "Percentil" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:25 msgid "Motion Blur" msgstr "Difuminació per moviment" #: ../Pinta.Effects/Effects/MotionBlurEffect.cs:117 msgid "Centered" msgstr "Centrat" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:25 msgid "Oil Painting" msgstr "Pintura a l'oli" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:176 msgid "Brush Size" msgstr "Mida del pinzell" #: ../Pinta.Effects/Effects/OilPaintingEffect.cs:179 msgid "Coarseness" msgstr "Tosquedat" #: ../Pinta.Effects/Effects/OutlineEffect.cs:28 #: ../Pinta.Tools/Tools/TextTool.cs:251 msgid "Outline" msgstr "Contorn" #: ../Pinta.Effects/Effects/OutlineEffect.cs:142 msgid "Thickness" msgstr "Gruix" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:32 msgid "Pencil Sketch" msgstr "Esbós en llapis" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:99 msgid "Pencil Tip Size" msgstr "Mida de la punta" #: ../Pinta.Effects/Effects/PencilSketchEffect.cs:102 msgid "Color Range" msgstr "Interval de color" #: ../Pinta.Effects/Effects/PixelateEffect.cs:25 msgid "Pixelate" msgstr "Pixela" #: ../Pinta.Effects/Effects/PixelateEffect.cs:119 msgid "Cell Size" msgstr "Mida de la cel·la" #: ../Pinta.Effects/Effects/PolarInversionEffect.cs:25 msgid "Polar Inversion" msgstr "Inversió polar" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:25 msgid "Radial Blur" msgstr "Desenfocament radial" #: ../Pinta.Effects/Effects/RadialBlurEffect.cs:165 msgid "" "Use low quality for previews, small images, and small angles. Use high " "quality for final quality, large images, and large angles." msgstr "" "Feu servir la baixa qualitat per a previsualitzacions, imatges petites i " "angles petits. Feu servir l'alta qualitat per a imatges grans i angles grans." #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:28 msgid "Red Eye Removal" msgstr "Elimina els ulls vermells" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:74 #: ../Pinta.Tools/Tools/FloodTool.cs:91 ../Pinta.Tools/Tools/RecolorTool.cs:80 msgid "Tolerance" msgstr "Tolerància" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:78 msgid "Saturation Percentage" msgstr "Percentatge de saturació" #: ../Pinta.Effects/Effects/RedEyeRemoveEffect.cs:79 msgid "Hint: For best results, first use selection tools to select each eye." msgstr "" "Consell: Per obtenir el millor resultat, abans feu servir eines de selecció " "per seleccionar cada ull." #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:28 msgid "Reduce Noise" msgstr "Redueix el soroll" #: ../Pinta.Effects/Effects/ReduceNoiseEffect.cs:97 msgid "Strength" msgstr "Força" #: ../Pinta.Effects/Effects/ReliefEffect.cs:44 msgid "Relief" msgstr "Relleu" #: ../Pinta.Effects/Effects/SharpenEffect.cs:25 msgid "Sharpen" msgstr "Nítid" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:58 msgid "Soften Portrait" msgstr "Suavitza el retrat" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:119 msgid "Softness" msgstr "Suavitat" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:122 msgid "Lighting" msgstr "Il·luminació" #: ../Pinta.Effects/Effects/SoftenPortraitEffect.cs:125 msgid "Warmth" msgstr "Caliu" #: ../Pinta.Effects/Effects/TileEffect.cs:25 msgid "Tile Reflection" msgstr "Mosaic" #: ../Pinta.Effects/Effects/TileEffect.cs:140 msgid "Tile Size" msgstr "Mida del mosaic" #: ../Pinta.Effects/Effects/TwistEffect.cs:25 msgid "Twist" msgstr "Espiral" #: ../Pinta.Effects/Effects/TwistEffect.cs:133 msgid "Antialias" msgstr "Antialiàsing" #: ../Pinta.Effects/Effects/UnfocusEffect.cs:27 msgid "Unfocus" msgstr "Desenfoca" #: ../Pinta.Effects/Effects/WarpEffect.cs:19 msgid "Clamp" msgstr "" #: ../Pinta.Effects/Effects/WarpEffect.cs:21 msgid "Wrap" msgstr "Ajusta" #: ../Pinta.Effects/Effects/WarpEffect.cs:25 msgid "Primary" msgstr "Primari" #: ../Pinta.Effects/Effects/WarpEffect.cs:27 msgid "Secondary" msgstr "Secundari" #: ../Pinta.Effects/Effects/WarpEffect.cs:29 #: ../Pinta/Dialogs/NewImageDialog.cs:284 msgid "Transparent" msgstr "Transparent" #: ../Pinta.Effects/Effects/WarpEffect.cs:31 msgid "Original" msgstr "Original" #: ../Pinta.Effects/Effects/WarpEffect.cs:191 msgid "Center Offset" msgstr "Desplaçament des del centre" #: ../Pinta.Effects/Effects/ZoomBlurEffect.cs:25 msgid "Zoom Blur" msgstr "Desenfocament per zoom" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:46 msgid "Transfer Map" msgstr "Transfereix el mapa" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:69 msgid "RGB" msgstr "RGB" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:70 msgid "Luminosity" msgstr "Lluminositat" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:84 msgid "(256, 256)" msgstr "(256, 256)" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:115 msgid "Red " msgstr "Vermell " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:137 msgid "Blue " msgstr "Blau " #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:157 #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:424 msgid "Reset" msgstr "Restableix" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs:171 msgid "Tip: Right-click to remove control points." msgstr "Consell: Feu clic amb el botó dret per eliminar punts de control." #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:86 msgid "Input Histogram" msgstr "Histograma d'entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:128 msgid "Input" msgstr "Entrada" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:241 msgid "Output" msgstr "Sortida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:369 msgid "Output Histogram" msgstr "Histograma de sortida" #: ../Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs:412 msgid "Auto" msgstr "Automàtic" #: ../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 "Soroll aleatori" #: ../Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs:65 msgid "Reseed" msgstr "Reinicia" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:106 msgid "Choose Primary Color" msgstr "Tria el color primari" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:121 msgid "Choose Secondary Color" msgstr "Tria el color secundari" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:145 msgid "Choose Palette Color" msgstr "Tria la paleta de colors" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:313 msgid "Click to switch between primary and secondary color." msgstr "Feu clic per canviar entre el color primari i el secundari" #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:315 msgid "Click to reset primary and secondary color." msgstr "Feu clic per reinicialitzar els colors primari i secundari." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:317 msgid "Click to select primary color." msgstr "Feu clic per seleccionar el color primari." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:319 msgid "Click to select secondary color." msgstr "Feu clic per seleccionar el color secundari." #: ../Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs:321 msgid "" "Left click to set primary color. Right click to set secondary color. Middle " "click to choose palette color." msgstr "" "Feu clic amb el botó esquerre per triar el color primari. Feu clic amb el " "botó dret per triar el color secundari. Feu clic amb la rodeta per triar el " "color de la paleta." #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Shown" msgstr "Capa actual" #: ../Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs:244 msgid "Layer Hidden" msgstr "Capa oculta" #: ../Pinta.Tools/Brushes/CircleBrush.cs:37 msgid "Circles" msgstr "Cercles" #: ../Pinta.Tools/Brushes/GridBrush.cs:37 msgid "Grid" msgstr "Graella" #: ../Pinta.Tools/Brushes/SplatterBrush.cs:37 msgid "Splatter" msgstr "Aerògraf" #: ../Pinta.Tools/Brushes/SquaresBrush.cs:39 msgid "Squares" msgstr "Quadrats" #: ../Pinta.Tools/Dashes/DashPatternBox.cs:74 msgid "Dash" msgstr "Guió" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:212 msgid "Arrow" msgstr "Fletxa" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:352 msgid "Size" msgstr "Mida" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:357 msgid "Decrease arrow size" msgstr "Disminueix la mida de la fletxa" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:424 msgid "Increase arrow size" msgstr "Augmenta la mida de la fletxa" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:440 msgid "Decrease angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:503 msgid "Increase angle offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:514 msgid "Length" msgstr "Longitud" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:519 msgid "Decrease length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs:582 msgid "Increase length offset" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:296 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:99 msgid "Brush width" msgstr "Amplada del pinzell" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:302 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:81 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:104 msgid "Decrease brush size" msgstr "Redueix la mida del pinzell" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:330 #: ../Pinta.Tools/Tools/BaseBrushTool.cs:95 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:118 msgid "Increase brush size" msgstr "Augmenta la mida del pinzell" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:342 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:76 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:131 msgid "Fill Style" msgstr "Estil de farciment" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:350 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:83 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:138 msgid "Outline Shape" msgstr "Perfila la forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:351 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:84 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:139 msgid "Fill Shape" msgstr "Omple la forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:352 #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:85 #: ../Pinta.Tools/Tools/SelectShapeTool.cs:140 msgid "Fill and Outline Shape" msgstr "Omple i perfila la forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:363 msgid "Shape Type" msgstr "Tipus de la forma" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:371 msgid "Open Line/Curve Series" msgstr "Sèrie de línia/corba oberta" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:372 msgid "Closed Line/Curve Series" msgstr "Sèrie de línia/corba tancada" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:373 #: ../Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs:39 #: ../Pinta.Tools/Tools/EllipseTool.cs:37 msgid "Ellipse" msgstr "El·lipse" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:374 msgid "Rounded Line Series" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:388 msgid "Changed Shape Type" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:522 msgid "Point Deleted" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:539 msgid "Deleted" msgstr "Suprimit" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:588 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:884 msgid "Point Added" msgstr "Punt afegit" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:924 msgid "Added" msgstr "Afegit" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1014 msgid "Modified" msgstr "Modificat" #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1266 #: ../Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs:1672 msgid "Finalized" msgstr "Finalitzat" #: ../Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs:43 msgid "Open Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs:43 msgid "Closed Curve Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:43 msgid "Rounded Line Shape" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:131 msgid "Decrease shape's corner radius" msgstr "" #: ../Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs:154 msgid "Increase shape's corner radius" msgstr "" #: ../Pinta.Tools/Tools/CloneStampTool.cs:42 msgid "Clone Stamp" msgstr "Tampó de clonar" #: ../Pinta.Tools/Tools/CloneStampTool.cs:47 msgid "Ctrl-left click to set origin, left click to paint." msgstr "" "Ctrl-clic esquerre per determinar l'origen, clic esquerre per pintar." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:63 msgid "Color Picker" msgstr "Capturador de color" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:69 msgid "Left click to set primary color. Right click to set secondary color." msgstr "" "Feu clic amb el botó esquerre per establir el color primari. Feu clic amb el " "botó dret per establir el color secundari." #: ../Pinta.Tools/Tools/ColorPickerTool.cs:113 msgid "Sampling" msgstr "Mostreig" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:123 msgid "Single Pixel" msgstr "Un únic píxel" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:124 msgid "3 x 3 Region" msgstr "Regió de 3 × 3" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:125 msgid "5 x 5 Region" msgstr "Regió de 5 × 5" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:126 msgid "7 x 7 Region" msgstr "Regió de 7 × 7" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:127 msgid "9 x 9 Region" msgstr "Regió de 9 × 9" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:136 msgid "Image" msgstr "Imatge" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:147 msgid "After select" msgstr "Després de seleccionar" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:154 msgid "Do not switch tool" msgstr "No canviïs d'eina" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:155 msgid "Switch to previous tool" msgstr "Canvia a l’eina anterior" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:156 msgid "Switch to Pencil tool" msgstr "Canvia a l’eina Llapis" #: ../Pinta.Tools/Tools/ColorPickerTool.cs:209 #: ../Pinta.Tools/Tools/PencilTool.cs:48 msgid "Pencil" msgstr "Llapis" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:37 msgid "Ellipse Select" msgstr "Selecció el·líptica" #: ../Pinta.Tools/Tools/EllipseSelectTool.cs:43 msgid "" "Click and drag to draw an elliptical selection. Hold Shift to constrain to a " "circle." msgstr "" "Feu clic i arrossegueu per dibuixar una selecció el·líptica. Manteniu " "premuda Maj per restringir a un cercle." #: ../Pinta.Tools/Tools/EllipseTool.cs:43 #: ../Pinta.Tools/Tools/LineCurveTool.cs:46 #: ../Pinta.Tools/Tools/RectangleTool.cs:43 #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:43 msgid "" "Left click to draw a shape with the primary color.\n" "Left click on a shape to add a control point.\n" "Left click on a control point and drag to move it.\n" "Right click on a control point and drag to change its tension.\n" "Hold Shift to snap to angles.\n" "Use arrow keys to move the selected control point.\n" "Press Ctrl + left/right arrows to select control points by order.\n" "Press Delete to delete the selected control point.\n" "Press Space to add a new control point at the mouse position.\n" "Hold Ctrl while pressing Space to create the control point at the exact same " "position.\n" "Hold Ctrl while left clicking on a control point to create a new shape at " "the exact same position.\n" "Hold Ctrl while clicking outside of the image bounds to create a new shape " "starting at the edge.\n" "Press Enter to finalize the shape." msgstr "" #: ../Pinta.Tools/Tools/EraserTool.cs:52 msgid "Eraser" msgstr "Goma d'esborrar" #: ../Pinta.Tools/Tools/EraserTool.cs:54 msgid "" "Left click to erase to transparent, right click to erase to secondary color. " msgstr "" "Feu clic amb el botó esquerre per esborrar com a transparència, feu clic amb " "el botó dret per esborrar amb el color secundari. " #: ../Pinta.Tools/Tools/FloodTool.cs:72 msgid "Flood Mode" msgstr "Mode Inundació" #: ../Pinta.Tools/Tools/FloodTool.cs:79 msgid "Contiguous" msgstr "Contigu" #: ../Pinta.Tools/Tools/FloodTool.cs:80 msgid "Global" msgstr "Global" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:56 msgid "Freeform Shape" msgstr "Forma lliure" #: ../Pinta.Tools/Tools/FreeformShapeTool.cs:58 #: ../Pinta.Tools/Tools/PaintBrushTool.cs:42 msgid "" "Left click to draw with primary color, right click to draw with secondary " "color." msgstr "" "Feu clic esquerre per dibuixar amb el color primari, feu clic dret per " "dibuixar amb el secundari." #: ../Pinta.Tools/Tools/GradientTool.cs:55 #: ../Pinta.Tools/Tools/GradientTool.cs:169 msgid "Gradient" msgstr "Degradat" #: ../Pinta.Tools/Tools/GradientTool.cs:63 msgid "" "Click and drag to draw gradient from primary to secondary color. Right " "click to reverse." msgstr "" "Feu clic i arrossegueu per dibuixar un degradat del color primari al " "secundari. Feu clic dret per fer-ho al revés." #: ../Pinta.Tools/Tools/GradientTool.cs:176 msgid "Linear Gradient" msgstr "Degradat lineal" #: ../Pinta.Tools/Tools/GradientTool.cs:177 msgid "Linear Reflected Gradient" msgstr "Degradat reflectit lineal" #: ../Pinta.Tools/Tools/GradientTool.cs:178 msgid "Linear Diamond Gradient" msgstr "Degradat de diamant lineal" #: ../Pinta.Tools/Tools/GradientTool.cs:179 msgid "Radial Gradient" msgstr "Degradat radial" #: ../Pinta.Tools/Tools/GradientTool.cs:180 msgid "Conical Gradient" msgstr "Degradat cònic" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:48 msgid "Lasso Select" msgstr "Selecció de llaç" #: ../Pinta.Tools/Tools/LassoSelectTool.cs:50 msgid "Click and drag to draw the outline for a selection area." msgstr "" "Feu clic i arrossegueu per dibuixar el contorn d’una àrea de selecció." #: ../Pinta.Tools/Tools/LineCurveTool.cs:40 msgid "Line/Curve" msgstr "Línia/corba" #: ../Pinta.Tools/Tools/MagicWandTool.cs:62 msgid "Magic Wand Select" msgstr "Vareta màgica" #: ../Pinta.Tools/Tools/MagicWandTool.cs:72 msgid "Click to select region of similar color." msgstr "Feu clic per triar una regió de color similar" #: ../Pinta.Tools/Tools/MoveSelectedTool.cs:49 msgid "" "Left click and drag the selection to move selected content. Right click and " "drag the selection to rotate selected content." msgstr "" "Feu clic esquerre i arrossegueu la selecció per moure el contingut " "seleccionat. Feu clic dret i arrossegueu la selecció per rotar el contingut " "seleccionat." #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:42 msgid "Move Selection" msgstr "Mou la selecció" #: ../Pinta.Tools/Tools/MoveSelectionTool.cs:48 msgid "" "Left click and drag the selection to move selection outline. Right click and " "drag the selection to rotate selection outline." msgstr "" "Feu clic esquerre i arrossegueu la selecció per moure el perfil de la " "selecció. Feu clic dret i arrossegueu la selecció per rotar el perfil de la " "selecció." #: ../Pinta.Tools/Tools/PaintBrushTool.cs:40 ../Pinta/MainWindow.cs:82 msgid "Paintbrush" msgstr "Pinzell" #: ../Pinta.Tools/Tools/PaintBrushTool.cs:92 msgid "Type" msgstr "Tipus" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:40 msgid "Paint Bucket" msgstr "Cubell de pintura" #: ../Pinta.Tools/Tools/PaintBucketTool.cs:46 msgid "" "Left click to fill a region with the primary color, right click to fill with " "the secondary color." msgstr "" "Feu clic esquerre per omplir una regió amb el color primari, feu clic dret " "per omplir-la amb el color secundari." #: ../Pinta.Tools/Tools/PanTool.cs:37 msgid "Pan" msgstr "Desplaça" #: ../Pinta.Tools/Tools/PanTool.cs:43 msgid "Click and drag to navigate image." msgstr "Feu clic i arrossegueu per navegar per la imatge." #: ../Pinta.Tools/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 "" "Feu clic esquerre per dibuixar línies de forma lliure d'un píxel d'amplada " "amb el color primari. Feu clic dret per fer servir el color secundari." #: ../Pinta.Tools/Tools/RecolorTool.cs:58 msgid "Recolor" msgstr "Reacoloreix" #: ../Pinta.Tools/Tools/RecolorTool.cs:62 msgid "" "Left click to replace the secondary color with the primary color. Right " "click to reverse." msgstr "" "Feu clic per reemplaçar el color secundari amb el primari. Feu clic amb el " "botó dret per fer-ho a l’inrevès." #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:37 msgid "Rectangle Select" msgstr "Selecció rectangular" #: ../Pinta.Tools/Tools/RectangleSelectTool.cs:43 msgid "" "Click and drag to draw a rectangular selection. Hold Shift to constrain to a " "square." msgstr "" "Feu clic i arrossegueu per dibuixar una selecció rectangular. Manteniu " "premuda Maj per restringir a un quadrat." #: ../Pinta.Tools/Tools/RectangleTool.cs:37 msgid "Rectangle" msgstr "Rectangle" #: ../Pinta.Tools/Tools/RoundedRectangleTool.cs:37 msgid "Rounded Rectangle" msgstr "Rectangle arrodonit" #: ../Pinta.Tools/Tools/TextTool.cs:94 msgid "Text" msgstr "Text" #: ../Pinta.Tools/Tools/TextTool.cs:95 msgid "Text - Finalize" msgstr "Text - Finalitza" #: ../Pinta.Tools/Tools/TextTool.cs:101 msgid "" "Left click to place cursor, then type desired text. Text color is primary " "color." msgstr "" "Feu clic esquerre per situar el cursor i escriviu el text que vulgueu. El " "color del text és el color primari." #: ../Pinta.Tools/Tools/TextTool.cs:157 msgid "Font" msgstr "Tipus de lletra" #: ../Pinta.Tools/Tools/TextTool.cs:192 msgid "Bold" msgstr "Negreta" #: ../Pinta.Tools/Tools/TextTool.cs:199 msgid "Italic" msgstr "Cursiva" #: ../Pinta.Tools/Tools/TextTool.cs:206 msgid "Underline" msgstr "Subratllat" #: ../Pinta.Tools/Tools/TextTool.cs:215 msgid "Left Align" msgstr "Alineat a l'esquerra" #: ../Pinta.Tools/Tools/TextTool.cs:223 msgid "Center Align" msgstr "Alineat al centre" #: ../Pinta.Tools/Tools/TextTool.cs:230 msgid "Right Align" msgstr "Alineat a la dreta" #: ../Pinta.Tools/Tools/TextTool.cs:242 msgid "Text Style" msgstr "Estil del text" #: ../Pinta.Tools/Tools/TextTool.cs:250 msgid "Normal and Outline" msgstr "Normal i contorn" #: ../Pinta.Tools/Tools/TextTool.cs:252 msgid "Fill Background" msgstr "Omple el fons" #: ../Pinta.Tools/Tools/TextTool.cs:262 msgid "Outline width" msgstr "Amplada del contorn" #: ../Pinta.Tools/Tools/TextTool.cs:267 msgid "Decrease outline size" msgstr "Redueix la mida del contorn" #: ../Pinta.Tools/Tools/TextTool.cs:284 msgid "Increase outline size" msgstr "Augmenta la mida del contorn" #: ../Pinta.Tools/Tools/ZoomTool.cs:54 msgid "" "Left click to zoom in. Right click to zoom out. Click and drag to zoom in " "selection." msgstr "" "Feu clic esquerre per ampliar la vista. Feu clic dret per reduir la vista. " "Feu clic i arrossegueu per ampliar la selecció." #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:50 msgid "Resize Palette" msgstr "Redimensiona la paleta" #: ../Pinta/Actions/Edit/ResizePaletteAction.cs:51 msgid "New palette size:" msgstr "Nova mida de paleta:" #: ../Pinta/Actions/File/CloseDocumentAction.cs:61 #, csharp-format msgid "Save the changes to image \"{0}\" before closing?" msgstr "Voleu desar els canvis a la imatge \"{0}\" abans de tancar?" #: ../Pinta/Actions/File/CloseDocumentAction.cs:62 msgid "If you don't save, all changes will be permanently lost." msgstr "Si no deseu, es perdran definitivament tots els canvis." #: ../Pinta/Actions/File/CloseDocumentAction.cs:72 #: ../Pinta/Actions/File/CloseDocumentAction.cs:76 msgid "Close _without saving" msgstr "Tanca _sense desar" #: ../Pinta/Actions/File/NewScreenshotAction.cs:52 msgid "Take Screenshot" msgstr "Fes una captura de pantalla" #: ../Pinta/Actions/File/NewScreenshotAction.cs:53 msgid "Delay before taking a screenshot (seconds):" msgstr "Retard abans de fer una captura de pantalla (segons):" #: ../Pinta/Actions/File/OpenDocumentAction.cs:63 msgid "Image files" msgstr "Fitxers d'imatge" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:75 msgid "Save Image File" msgstr "Desa el fitxer d’imatge" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:190 msgid "Pinta does not support saving images in this file format." msgstr "El Pinta no permet desar imatges en aquest format." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:202 msgid "Cannot save read only file." msgstr "No es pot guardar un fitxer només de lectura." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:217 msgid "Image too large" msgstr "La imatge és massa gran" #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:218 msgid "ICO files can not be larger than 255 x 255 pixels." msgstr "Els fitxers ICO no poden excedir 255 × 255 píxels." #: ../Pinta/Actions/File/SaveDocumentImplementationAction.cs:247 #, 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/Actions/File/SaveDocumentImplementationAction.cs:248 #, csharp-format msgid "" "The file already exists in \"{1}\". Replacing it will overwrite its contents." msgstr "" "El fitxer ja existeix a \"{1}\". Si el substituïu sobreescriureu el seu " "contingut." #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:92 msgid "Layer Opacity" msgstr "Opacitat de la capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:97 msgid "Rename Layer" msgstr "Canvia el nom de la capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Hide Layer" msgstr "Amaga la capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:102 msgid "Show Layer" msgstr "Mostra la capa" #: ../Pinta/Actions/Layers/LayerPropertiesAction.cs:107 #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:50 msgid "Layer Properties" msgstr "Propietats de la capa" #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:52 #: ../Pinta/Actions/Layers/RotateZoomLayerAction.cs:76 msgid "Rotate / Zoom Layer" msgstr "Gira la capa" #: ../Pinta/AddinSetupService.cs:49 msgid "Pinta Community Addins - Platform-Specific" msgstr "" #: ../Pinta/AddinSetupService.cs:53 msgid "Pinta Community Addins - Cross-Platform" msgstr "" #: ../Pinta/Dialogs/AboutDialog.cs:123 msgid "Contributors to this release:" msgstr "Col·laboradors d’aquesta versió:" #: ../Pinta/Dialogs/AboutDialog.cs:135 msgid "Previous contributors:" msgstr "Col·laboradors anteriors:" #: ../Pinta/Dialogs/AboutDialog.cs:146 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " ASeques https://launchpad.net/~sacoo2\n" " Adolfo Jayme https://launchpad.net/~fitojb\n" " Berna https://launchpad.net/~bern-ab\n" " Joan https://launchpad.net/~jcompte\n" " Maria Plana https://launchpad.net/~tfs-msimangu\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:149 msgid "Translated by:" msgstr "Traduït per:" #: ../Pinta/Dialogs/AboutDialog.cs:155 msgid "Based on the work of Paint.NET:" msgstr "Basat en el treball de Paint.NET:" #: ../Pinta/Dialogs/AboutDialog.cs:162 msgid "Using some icons from:" msgstr "S'han utilitzat algunes icones de:" #: ../Pinta/Dialogs/AboutDialog.cs:170 msgid "Powered by Mono:" msgstr "Impulsat per Mono:" #: ../Pinta/Dialogs/AboutDialog.cs:277 msgid "About Pinta" msgstr "Quant al Pinta" #: ../Pinta/Dialogs/AboutDialog.cs:295 msgid "Version Info" msgstr "Informació de la versió" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:42 #: ../Pinta/Dialogs/VersionInformationTabPage.cs:50 msgid "Version" msgstr "Versió" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "License" msgstr "Llicència" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:51 msgid "Released under the MIT X11 License." msgstr "Publicat sota la llicència MIT X11" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "Copyright" msgstr "Copyright" #: ../Pinta/Dialogs/AboutPintaTabPage.cs:58 msgid "by Pinta contributors" msgstr "per contribuents del Pinta" #: ../Pinta/Dialogs/ErrorDialog.cs:98 #: 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" #: ../Pinta/Dialogs/ErrorDialog.cs:109 msgid "Report Bug...." msgstr "" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:38 msgid "JPEG Quality" msgstr "Qualitat de JPEG" #: ../Pinta/Dialogs/JpegCompressionDialog.cs:48 msgid "Quality: " msgstr "Qualitat: " #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:159 msgid "Name:" msgstr "Nom:" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:167 msgid "Visible" msgstr "Visible" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:178 msgid "Blend Mode" msgstr "Mode" #: ../Pinta/Dialogs/LayerPropertiesDialog.cs:189 msgid "Opacity:" msgstr "Opacitat:" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:199 #: ../Pinta/Dialogs/NewImageDialog.cs:327 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Clipboard" msgstr "Porta-retalls" #: ../Pinta/Dialogs/NewImageDialog.cs:162 #: ../Pinta/Dialogs/NewImageDialog.cs:201 #: ../Pinta/Dialogs/NewImageDialog.cs:329 #: ../Pinta/Dialogs/NewImageDialog.cs:416 msgid "Custom" msgstr "Personalitzat" #: ../Pinta/Dialogs/NewImageDialog.cs:193 msgid "Preset:" msgstr "" #: ../Pinta/Dialogs/NewImageDialog.cs:211 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:167 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:138 msgid "Width:" msgstr "Amplada:" #: ../Pinta/Dialogs/NewImageDialog.cs:218 #: ../Pinta/Dialogs/NewImageDialog.cs:235 #: ../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 msgid "pixels" msgstr "píxels" #: ../Pinta/Dialogs/NewImageDialog.cs:228 #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:207 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:178 msgid "Height:" msgstr "Alçada:" #: ../Pinta/Dialogs/NewImageDialog.cs:245 msgid "Orientation:" msgstr "Orientació:" #: ../Pinta/Dialogs/NewImageDialog.cs:248 msgid "Portrait" msgstr "Vertical" #: ../Pinta/Dialogs/NewImageDialog.cs:256 msgid "Landscape" msgstr "Horitzontal" #: ../Pinta/Dialogs/NewImageDialog.cs:265 msgid "Background:" msgstr "Fons:" #: ../Pinta/Dialogs/NewImageDialog.cs:268 msgid "White" msgstr "Blanc" #: ../Pinta/Dialogs/NewImageDialog.cs:276 msgid "Background Color" msgstr "Color del fons" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:44 msgid "Title" msgstr "Títol" #: ../Pinta/Dialogs/VersionInformationTabPage.cs:53 msgid "Path" msgstr "Ruta" #: ../Pinta/DockLibrary/DockItem.cs:477 #: ../Pinta/DockLibrary/DockItemContainer.cs:92 msgid "Hide" msgstr "Amaga" #: ../Pinta/DockLibrary/DockItem.cs:485 msgid "Dockable" msgstr "Acoblable" #: ../Pinta/DockLibrary/DockItem.cs:493 msgid "Floating" msgstr "Flotant" #: ../Pinta/DockLibrary/DockItem.cs:502 #: ../Pinta/DockLibrary/DockItemContainer.cs:196 msgid "Auto Hide" msgstr "Oculta automàticament" #: ../Pinta/DockLibrary/DockItemContainer.cs:192 msgid "Dock" msgstr "Acobla" #: ../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:245 #: ../Pinta/gtk-gui/Pinta.ResizeImageDialog.cs:216 msgid "Maintain aspect ratio" msgstr "Mantingues la relació d'aspecte" #: ../Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs:530 msgid "Anchor:" msgstr "Àncora:" #: ../Pinta/Main.cs:72 msgid "Show this message and exit." msgstr "Mostra aquest missatge i surt." #: ../Pinta/Main.cs:73 msgid "Display the application version." msgstr "Mostra la versió de la aplicació." #: ../Pinta/Main.cs:74 msgid "number of threads to use for rendering" msgstr "nombre de fils a usar per a la renderització" #: ../Pinta/Main.cs:122 msgid "Usage: pinta [files]" msgstr "Ús: pinta [fitxers]" #: ../Pinta/Main.cs:124 msgid "Options: " msgstr "Opcions: " #: ../Pinta/MainWindow.cs:202 msgid "_File" msgstr "_Fitxer" #: ../Pinta/MainWindow.cs:203 msgid "_Edit" msgstr "_Edita" #: ../Pinta/MainWindow.cs:205 msgid "_View" msgstr "_Mostra" #: ../Pinta/MainWindow.cs:208 msgid "_Image" msgstr "_Imatge" #: ../Pinta/MainWindow.cs:209 msgid "_Layers" msgstr "_Capes" #: ../Pinta/MainWindow.cs:210 msgid "_Adjustments" msgstr "_Ajustaments" #: ../Pinta/MainWindow.cs:211 msgid "Effe_cts" msgstr "Efec_tes" #: ../Pinta/MainWindow.cs:212 msgid "A_dd-ins" msgstr "_Complements" #: ../Pinta/MainWindow.cs:214 msgid "_Window" msgstr "Fi_nestra" #: ../Pinta/MainWindow.cs:218 msgid "Tool Windows" msgstr "Finestres d'eines" #: ../Pinta/MainWindow.cs:222 msgid "_Help" msgstr "A_juda" #: ../Pinta/Options.cs:486 msgid "OptionName" msgstr "Nom de l'opció" #: ../Pinta/Pads/CanvasPad.cs:75 msgid "Canvas" msgstr "Llenç" #: ../Pinta/Pads/HistoryPad.cs:43 ../Pinta/Pads/HistoryPad.cs:50 msgid "History" msgstr "Historial" #: ../Pinta/Pads/LayersPad.cs:43 ../Pinta/Pads/LayersPad.cs:54 msgid "Layers" msgstr "Capes" #: ../Pinta/Pads/OpenImagesPad.cs:41 ../Pinta/Pads/OpenImagesPad.cs:45 msgid "Images" msgstr "Imatges" #: ../Pinta/Pads/ToolBoxPad.cs:42 ../Pinta/Pads/ToolBoxPad.cs:48 msgid "Tools" msgstr "Eines" #: Polar Inversion dialog msgid "Edge Behavior" msgstr "Comportament de les vores" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:123 msgid "" "Multiple selection:\n" "\n" msgstr "" "Selecció múltiple:\n" "\n" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:160 msgid "Enable" msgstr "Habilita" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:163 #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoView.cs:270 msgid "Disable" msgstr "Deshabilita" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:178 msgid "No selection" msgstr "Sense selecció" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:217 msgid "Available in repository:" msgstr "Disponibles en el dipòsit:" #: 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 "No s’ha pogut carregar aquest complement perquè falten dependències" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:270 #, csharp-format msgid "Required: {0} v{1}, found v{2}" msgstr "Requerits: {0} v{1}, s’han trobat v{2}" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:272 #, csharp-format msgid "Missing: {0} v{1}" msgstr "Falten: {0} v{1}" #: 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 "Versió del dipòsit" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:293 msgid "Download size" msgstr "Mida de la baixada" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:295 msgid "The following depedencies required by this add-in are not available:" msgstr "" "Les següents dependències requerides per aquest complement no estan " "disponibles:" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstaller.cs:16 msgid "Installation cancelled" msgstr "S'ha cancel·lat la instal·lació" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159 msgid "Some of the required add-ins were not found" msgstr "No s'han trobat alguns dels complements necessaris" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171 msgid "Installation failed" msgstr "La instal·lació ha fallat" #: 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 "S’està actualitzant el dipòsit" #: 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 de complements" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:102 msgid "No add-ins found" msgstr "No s’ha trobat cap complement" #: Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:120 msgid "Add-in" msgstr "Complement" #: 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 "" "Hi ha altres complements que depenen dels anteriors que també es " "desinstal·laran:" #: Mono.Addins.Gui/Mono.Addins.Gui/InstallDialog.cs:124 msgid "" "The selected add-ins can't be installed because there are dependency " "conflicts." msgstr "" "Els complements seleccionats no es poden instal·lar perquè hi ha conflictes " "de dependències." #: 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 "S’estan instal·lant els complements" #: 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 "S’estan desinstal·lant els complements" #: 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 "S’està registrant el dipòsit" #: 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 "" "Calen alguns complements addicionals per a realitzar 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 els complements següents:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:143 msgid "No updates found" msgstr "No s’han trobat actualitzacions" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166 msgid "Refresh" msgstr "Actualitza" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:194 msgid "Update All" msgstr "Actualitza-ho 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.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 "Gestió dels dipòsits de complements" #: 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 "Ruta:" #: Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:154 msgid "Browse..." msgstr "Navega…" #: 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.6/Pinta.Tools/0000775000175000017500000000000012474706675016023 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Pinta.Tools.csproj0000664000175000017500000001677712474706675021441 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\ 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.6/Pinta.Tools/HistoryItems/0000775000175000017500000000000012474706675020466 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/HistoryItems/ShapesModifyHistoryItem.cs0000664000175000017500000000665712474706675025627 0ustar00cameroncameron00000000000000// // ShapesModifyHistoryItem.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 & 2014 // // 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 Cairo; namespace Pinta.Tools { public class ShapesModifyHistoryItem : BaseHistoryItem { private BaseEditEngine ee; private ShapeEngineCollection sEngines; private int selectedPointIndex, selectedShapeIndex; /// /// A history item for when shapes are modified. /// /// The EditEngine being used. /// The history item's icon. /// The history item's title. public ShapesModifyHistoryItem(BaseEditEngine passedEE, string icon, string text) : base(icon, text) { ee = passedEE; sEngines = BaseEditEngine.SEngines.PartialClone(); selectedPointIndex = ee.SelectedPointIndex; selectedShapeIndex = ee.SelectedShapeIndex; } public override void Undo() { Swap(); } public override void Redo() { Swap(); } private void Swap() { Swap (ref sEngines, ref BaseEditEngine.SEngines); //Ensure that all of the shapes that should no longer be drawn have their ReEditableLayer removed from the drawing loop. foreach (ShapeEngine se in sEngines) { //Determine if it is currently in the drawing loop and should no longer be. Note: a DrawingLayer could be both removed and then //later added in the same swap operation, but this is faster than looping through each ShapeEngine in BaseEditEngine.SEngines. if (se.DrawingLayer.InTheLoop && !BaseEditEngine.SEngines.Contains(se)) { se.DrawingLayer.TryRemoveLayer(); } } //Ensure that all of the shapes that should now be drawn have their ReEditableLayer in the drawing loop. foreach (ShapeEngine se in BaseEditEngine.SEngines) { //Determine if it is currently out of the drawing loop; if not, it should be. if (!se.DrawingLayer.InTheLoop) { se.DrawingLayer.TryAddLayer(); } } Swap (ref selectedPointIndex, ref ee.SelectedPointIndex); Swap (ref selectedShapeIndex, ref ee.SelectedShapeIndex); //Determine if the currently active tool matches the shape's corresponding tool, and if not, switch to it. BaseEditEngine.ActivateCorrespondingTool(selectedShapeIndex, true); } } } pinta-1.6/Pinta.Tools/HistoryItems/ShapesHistoryItem.cs0000664000175000017500000001240412474706675024442 0ustar00cameroncameron00000000000000// // ShapesHistoryItem.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 & 2014 // // 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 Cairo; namespace Pinta.Tools { public class ShapesHistoryItem : BaseHistoryItem { private BaseEditEngine ee; private UserLayer userLayer; private SurfaceDiff userSurfaceDiff; private ImageSurface userSurface; private ShapeEngineCollection sEngines; private int selectedPointIndex, selectedShapeIndex; private bool redrawEverything; /// /// A history item for when shapes are finalized. /// /// The EditEngine being used. /// The history item's icon. /// The history item's title. /// The stored UserLayer surface. /// The UserLayer being modified. /// The selected point's index. /// The selected point's shape index. /// Whether every shape should be redrawn when undoing (e.g. finalization). public ShapesHistoryItem(BaseEditEngine passedEE, string icon, string text, ImageSurface passedUserSurface, UserLayer passedUserLayer, int passedSelectedPointIndex, int passedSelectedShapeIndex, bool passedRedrawEverything) : base(icon, text) { ee = passedEE; userLayer = passedUserLayer; userSurfaceDiff = SurfaceDiff.Create(passedUserSurface, userLayer.Surface, true); if (userSurfaceDiff == null) { userSurface = passedUserSurface; } else { (passedUserSurface as IDisposable).Dispose(); } sEngines = BaseEditEngine.SEngines.PartialClone(); selectedPointIndex = passedSelectedPointIndex; selectedShapeIndex = passedSelectedShapeIndex; redrawEverything = passedRedrawEverything; } public override void Undo() { Swap(redrawEverything); } public override void Redo() { Swap(false); } private void Swap(bool redraw) { // Grab the original surface ImageSurface surf = userLayer.Surface; if (userSurfaceDiff != null) { userSurfaceDiff.ApplyAndSwap(surf); PintaCore.Workspace.Invalidate(userSurfaceDiff.GetBounds()); } else { // Undo to the "old" surface userLayer.Surface = userSurface; // Store the original surface for Redo userSurface = surf; //Redraw everything since surfaces were swapped. PintaCore.Workspace.Invalidate(); } Swap (ref sEngines, ref BaseEditEngine.SEngines); //Ensure that all of the shapes that should no longer be drawn have their ReEditableLayer removed from the drawing loop. foreach (ShapeEngine se in sEngines) { //Determine if it is currently in the drawing loop and should no longer be. Note: a DrawingLayer could be both removed and then //later added in the same swap operation, but this is faster than looping through each ShapeEngine in BaseEditEngine.SEngines. if (se.DrawingLayer.InTheLoop && !BaseEditEngine.SEngines.Contains(se)) { se.DrawingLayer.TryRemoveLayer(); } } //Ensure that all of the shapes that should now be drawn have their ReEditableLayer in the drawing loop. foreach (ShapeEngine se in BaseEditEngine.SEngines) { //Determine if it is currently out of the drawing loop; if not, it should be. if (!se.DrawingLayer.InTheLoop) { se.DrawingLayer.TryAddLayer(); } } Swap (ref selectedPointIndex, ref ee.SelectedPointIndex); Swap (ref selectedShapeIndex, ref ee.SelectedShapeIndex); //Determine if the currently active tool matches the shape's corresponding tool, and if not, switch to it. if (BaseEditEngine.ActivateCorrespondingTool(ee.SelectedShapeIndex, true) != null) { //The currently active tool now matches the shape's corresponding tool. if (redraw) { ((ShapeTool)PintaCore.Tools.CurrentTool).EditEngine.DrawAllShapes(); } } } public override void Dispose() { // Free up native surface if (userSurface != null) (userSurface as IDisposable).Dispose(); } } } pinta-1.6/Pinta.Tools/CoreToolsExtension.cs0000664000175000017500000001144312474706675022163 0ustar00cameroncameron00000000000000// // CoreToolsExtension.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 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 () { PintaCore.PaintBrushes.RemoveInstanceOfPaintBrush (typeof (Brushes.CircleBrush)); PintaCore.PaintBrushes.RemoveInstanceOfPaintBrush (typeof (Brushes.GridBrush)); PintaCore.PaintBrushes.RemoveInstanceOfPaintBrush (typeof (Brushes.PlainBrush)); PintaCore.PaintBrushes.RemoveInstanceOfPaintBrush (typeof (Brushes.SplatterBrush)); PintaCore.PaintBrushes.RemoveInstanceOfPaintBrush (typeof (Brushes.SquaresBrush)); PintaCore.Tools.RemoveInstanceOfTool (typeof (RectangleSelectTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (MoveSelectedTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (LassoSelectTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (MoveSelectionTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (EllipseSelectTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (ZoomTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (MagicWandTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (PanTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (PaintBucketTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (GradientTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (PaintBrushTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (EraserTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (PencilTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (ColorPickerTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (CloneStampTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (RecolorTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (TextTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (LineCurveTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (RectangleTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (RoundedRectangleTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (EllipseTool)); PintaCore.Tools.RemoveInstanceOfTool (typeof (FreeformShapeTool)); } #endregion } } pinta-1.6/Pinta.Tools/Editable/0000775000175000017500000000000012474706675017534 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Editable/Shapes/0000775000175000017500000000000012474706675020757 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Editable/Shapes/OrganizedPointCollection.cs0000664000175000017500000001713112474706675026261 0ustar00cameroncameron00000000000000// // OrganizedPointCollection.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class OrganizedPointCollection { //Must be an integer. public const double SectionSize = 15; //Don't change this; it's automatically calculated. public static readonly int BorderingSectionRange = (int)Math.Ceiling(BaseEditEngine.ShapeClickStartingRange / SectionSize); private Dictionary>> collection; /// /// A collection of points that is organized using spatial hashing to optimize and speed up nearest point detection. /// public OrganizedPointCollection() { collection = new Dictionary>>(); } /// /// Clone the collection of organized points. /// /// A clone of the organized points. public OrganizedPointCollection Clone() { OrganizedPointCollection clonedOPC = new OrganizedPointCollection(); foreach (KeyValuePair>> xSection in collection) { //This must be created each time to ensure that it is fresh for each loop iteration. Dictionary> tempSection = new Dictionary>(); foreach (KeyValuePair> section in xSection.Value) { tempSection.Add(section.Key, section.Value.Select(i => new OrganizedPoint(new PointD(i.Position.X, i.Position.Y), i.Index)).ToList()); } clonedOPC.collection.Add(xSection.Key, tempSection); } return clonedOPC; } /// /// Store the given OrganizedPoint in an organized (spatially hashed) manner. /// /// The OrganizedPoint to store. public void StoreAndOrganizePoint(OrganizedPoint op) { int sX = (int)((op.Position.X - op.Position.X % SectionSize) / SectionSize); int sY = (int)((op.Position.Y - op.Position.Y % SectionSize) / SectionSize); Dictionary> xSection; List ySection; //Ensure that the xSection for this particular point exists. if (!collection.TryGetValue(sX, out xSection)) { //This particular X section does not exist yet; create it. xSection = new Dictionary>(); collection.Add(sX, xSection); } //Ensure that the ySection (which is contained within the respective xSection) for this particular point exists. if (!xSection.TryGetValue(sY, out ySection)) { //This particular Y section does not exist yet; create it. ySection = new List(); xSection.Add(sY, ySection); } //Now that both the corresponding xSection and ySection for this particular point exist, add the point to the list. ySection.Add(op); } /// /// Clear the collection of organized points. /// public void ClearCollection() { collection.Clear(); } /// /// Efficiently calculate the closest point (to currentPoint) on the shapes. /// /// The List of ShapeEngines to search through. /// The point to calculate the closest point to. /// The index of the shape with the closest point. /// The index of the closest point (in the closest shape). /// The position of the closest point. /// The closest point's distance away from currentPoint. public static void FindClosestPoint( List SEL, PointD currentPoint, out int closestShapeIndex, out int closestPointIndex, out PointD closestPoint, out double closestDistance) { closestShapeIndex = 0; closestPointIndex = 0; closestPoint = new PointD(0d, 0d); closestDistance = double.MaxValue; double currentDistance = double.MaxValue; for (int n = 0; n < SEL.Count; ++n) { Dictionary>> oP = SEL[n].OrganizedPoints.collection; //Calculate the current_point's corresponding *center* section. int sX = (int)((currentPoint.X - currentPoint.X % SectionSize) / SectionSize); int sY = (int)((currentPoint.Y - currentPoint.Y % SectionSize) / SectionSize); int xMin = sX - BorderingSectionRange; int xMax = sX + BorderingSectionRange; int yMin = sY - BorderingSectionRange; int yMax = sY + BorderingSectionRange; //Since the mouse and/or shape points can be close to the edge of a section, //the points in the surrounding sections must also be checked. for (int x = xMin; x <= xMax; ++x) { //This must be created each time to ensure that it is fresh for each loop iteration. Dictionary> xSection; //If the xSection doesn't exist, move on. if (oP.TryGetValue(x, out xSection)) { //Since the mouse and/or shape points can be close to the edge of a section, //the points in the surrounding sections must also be checked. for (int y = yMin; y <= yMax; ++y) { List ySection; //If the ySection doesn't exist, move on. if (xSection.TryGetValue(y, out ySection)) { foreach (OrganizedPoint p in ySection) { currentDistance = p.Position.Distance(currentPoint); if (currentDistance < closestDistance) { closestDistance = currentDistance; closestPointIndex = p.Index; closestShapeIndex = n; closestPoint = p.Position; } } } } //for each organized row } } //for each organized column } //for each ShapeEngine List } //FindClosestPoint } public class OrganizedPoint { //Note: not using get/set because this is used in time-critical code that is sped up without it. public PointD Position; public int Index; /// /// A wrapper class for a PointD that knows its index within the generated points of the shape that it's in. /// /// The position of the PointD on the Canvas. /// The index within the generated points of the shape that it's in. public OrganizedPoint(PointD passedPosition, int passedIndex) { Position = passedPosition; Index = passedIndex; } } } pinta-1.6/Pinta.Tools/Editable/Shapes/ControlPoint.cs0000664000175000017500000000374112474706675023745 0ustar00cameroncameron00000000000000// // ControlPoint.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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 Cairo; namespace Pinta.Tools { public class ControlPoint { //Note: not using get/set because this is used in time-critical code that is sped up without it. public PointD Position; public double Tension; /// /// A wrapper class for a PointD with its own tension value. /// /// The position of the PointD on the Canvas. /// The tension of the ControlPoint on the shape. public ControlPoint(PointD passedPosition, double passedTension) { Position = passedPosition; Tension = passedTension; } public ControlPoint Clone() { return new ControlPoint(Position, Tension); } } } pinta-1.6/Pinta.Tools/Editable/Shapes/GeneratedPoint.cs0000664000175000017500000000374212474706675024224 0ustar00cameroncameron00000000000000// // GeneratedPoint.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 Cairo; namespace Pinta.Tools { public class GeneratedPoint { //Note: not using get/set because this is used in time-critical code that is sped up without it. public PointD Position; public int ControlPointIndex; /// /// A wrapper class for a PointD with knowledge of its previous ControlPoint. /// /// The position of the PointD on the Canvas. /// The index of the previous ControlPoint to the new GeneratedPoint. public GeneratedPoint(PointD passedPosition, int passedControlPointIndex) { Position = passedPosition; ControlPointIndex = passedControlPointIndex; } } } pinta-1.6/Pinta.Tools/Editable/Shapes/ShapeEngineCollection.cs0000664000175000017500000002246212474706675025516 0ustar00cameroncameron00000000000000// // ShapeEngineCollection.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 & 2014 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class ShapeEngineCollection: List { /// /// A partially cloneable ShapeEngine collection. /// public ShapeEngineCollection() { } /// /// A partially cloneable ShapeEngine collection. This constructor creates a partial clone of an existing ShapeEngineCollection. /// /// An existing ShapeEngineCollection to partially clone. public ShapeEngineCollection(ShapeEngineCollection passedCEC) { for (int n = 0; n < passedCEC.Count; ++n) { Add (passedCEC[n].Clone ()); } } /// /// Clone the necessary data in each of the ShapeEngines in the collection. /// /// The partially cloned ShapeEngineCollection. public ShapeEngineCollection PartialClone() { return new ShapeEngineCollection(this); } /// /// Calculate the closest ControlPoint to currentPoint. /// /// The point to calculate the closest ControlPoint to. /// The index of the shape with the closest ControlPoint. /// The index of the closest ControlPoint. /// The closest ControlPoint to currentPoint. /// The closest ControlPoint's distance from currentPoint. public void FindClosestControlPoint(PointD currentPoint, out int closestCPShapeIndex, out int closestCPIndex, out ControlPoint closestControlPoint, out double closestCPDistance) { closestCPShapeIndex = 0; closestCPIndex = 0; closestControlPoint = null; closestCPDistance = double.MaxValue; double currentDistance; for (int shapeIndex = 0; shapeIndex < Count; ++shapeIndex) { List controlPoints = this[shapeIndex].ControlPoints; for (int cPIndex = 0; cPIndex < controlPoints.Count; ++cPIndex) { currentDistance = controlPoints[cPIndex].Position.Distance(currentPoint); if (currentDistance < closestCPDistance) { closestCPShapeIndex = shapeIndex; closestCPIndex = cPIndex; closestControlPoint = controlPoints[cPIndex]; closestCPDistance = currentDistance; } } } } } public abstract class ShapeEngine { //A collection of the original ControlPoints that the shape is based on and that the user interacts with. public List ControlPoints = new List(); //A collection of calculated GeneratedPoints that make up the entirety of the shape being drawn. public GeneratedPoint[] GeneratedPoints = new GeneratedPoint[0]; //An organized collection of the GeneratedPoints's points for optimized nearest point detection. public OrganizedPointCollection OrganizedPoints = new OrganizedPointCollection(); private UserLayer parent_layer; public ReEditableLayer DrawingLayer; public bool AntiAliasing; public string DashPattern = "-"; public bool Closed; public Color OutlineColor, FillColor; public int BrushWidth; public BaseEditEngine.ShapeTypes ShapeType; /// /// Create a new ShapeEngine. /// /// The parent UserLayer for the ReEditable DrawingLayer. /// An existing ReEditableLayer to reuse. This is for cloning only. If not cloning, pass in null. /// The type of shape to create. /// Whether or not antialiasing is enabled. /// Whether or not the shape is closed (first and last points are connected). /// The outline color for the shape. /// The fill color for the shape. /// The width of the outline of the shape. public ShapeEngine (UserLayer parent_layer, ReEditableLayer drawing_layer, BaseEditEngine.ShapeTypes shape_type, bool antialiasing, bool closed, Color outline_color, Color fill_color, int brush_width) { this.parent_layer = parent_layer; if (drawing_layer == null) DrawingLayer = new ReEditableLayer (parent_layer); else DrawingLayer = drawing_layer; ShapeType = shape_type; AntiAliasing = antialiasing; Closed = closed; OutlineColor = outline_color.Clone(); FillColor = fill_color.Clone(); BrushWidth = brush_width; } protected ShapeEngine (ShapeEngine src) { DrawingLayer = src.DrawingLayer; ShapeType = src.ShapeType; AntiAliasing = src.AntiAliasing; Closed = src.Closed; OutlineColor = src.OutlineColor.Clone (); FillColor = src.OutlineColor.Clone (); BrushWidth = src.BrushWidth; // Don't clone the GeneratedPoints or OrganizedPoints, as they will be calculated. ControlPoints = src.ControlPoints.Select (i => i.Clone ()).ToList (); DashPattern = src.DashPattern; } public abstract ShapeEngine Clone (); /// /// Converts the ShapeEngine instance into a new instance of a different /// ShapeEngine (child) type, copying the common data. /// /// The new ShapeEngine type to create. /// The index to insert the ShapeEngine clone into SEngines at. /// This ensures that the clone is as transparent as possible. /// A new ShapeEngine instance of the specified type with the common data copied over. public ShapeEngine Convert (BaseEditEngine.ShapeTypes newShapeType, int shapeIndex) { //Remove the old ShapeEngine instance. BaseEditEngine.SEngines.Remove (this); ShapeEngine clone; switch (newShapeType) { case BaseEditEngine.ShapeTypes.ClosedLineCurveSeries: clone = new LineCurveSeriesEngine (parent_layer, DrawingLayer, newShapeType, AntiAliasing, true, OutlineColor, FillColor, BrushWidth); break; case BaseEditEngine.ShapeTypes.Ellipse: clone = new EllipseEngine (parent_layer, DrawingLayer, AntiAliasing, OutlineColor, FillColor, BrushWidth); break; case BaseEditEngine.ShapeTypes.RoundedLineSeries: clone = new RoundedLineEngine (parent_layer, DrawingLayer, RoundedLineEditEngine.DefaultRadius, AntiAliasing, OutlineColor, FillColor, BrushWidth); break; default: //Defaults to OpenLineCurveSeries. clone = new LineCurveSeriesEngine (parent_layer, DrawingLayer, newShapeType, AntiAliasing, false, OutlineColor, FillColor, BrushWidth); break; } // Don't clone the GeneratedPoints or OrganizedPoints, as they will be calculated. clone.ControlPoints = ControlPoints.Select (i => i.Clone ()).ToList (); clone.DashPattern = DashPattern; // Add the new ShapeEngine instance at the specified index to // ensure as transparent of a cloning as possible. BaseEditEngine.SEngines.Insert (shapeIndex, clone); return clone; } /// /// Generate the points that make up the entirety of the shape being drawn. /// The width of the brush that will be used to draw the shape. /// public abstract void GeneratePoints (int brush_width); public PointD[] GetActualPoints () { int n = GeneratedPoints.Length; PointD[] points = new PointD[n]; for (int i = 0; i < n; ++i) points[i] = GeneratedPoints[i].Position; return points; } } } pinta-1.6/Pinta.Tools/Editable/Shapes/EllipseEngine.cs0000664000175000017500000002631512474706675024040 0ustar00cameroncameron00000000000000// // EllipseEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class EllipseEngine : ShapeEngine { /// /// Create a new EllipseEngine. /// /// The parent UserLayer for the re-editable DrawingLayer. /// An existing ReEditableLayer to reuse. This is for cloning only. If not cloning, pass in null. /// Whether or not antialiasing is enabled. /// The outline color for the shape. /// The fill color for the shape. /// The width of the outline of the shape. public EllipseEngine (UserLayer parent_layer, ReEditableLayer drawing_layer, bool antialiasing, Color outline_color, Color fill_color, int brush_width) : base (parent_layer, drawing_layer, BaseEditEngine.ShapeTypes.Ellipse, antialiasing, true, outline_color, fill_color, brush_width) { } private EllipseEngine (EllipseEngine src) : base (src) { } public override ShapeEngine Clone () { return new EllipseEngine (this); } /// /// Generate each point in an elliptic shape and store the result in GeneratedPoints. /// The width of the brush that will be used to draw the shape. /// public override void GeneratePoints (int brush_width) { List points = new List(); //An ellipse requires exactly 4 control points in order to draw anything. if (ControlPoints.Count == 4) { //This is mostly for time efficiency/optimization, but it can also help readability. PointD cp0 = ControlPoints[0].Position, cp1 = ControlPoints[1].Position, cp2 = ControlPoints[2].Position, cp3 = ControlPoints[3].Position; //An ellipse also requires that all 4 control points compose a perfect rectangle parallel/perpendicular to the window. //So, confirm that it is indeed a perfect rectangle. bool perfectRectangle = false; if (cp0.X == cp1.X) { if (cp0.Y == cp3.Y && cp1.Y == cp2.Y && cp2.X == cp3.X) { perfectRectangle = true; } } else if (cp0.Y == cp1.Y) { if (cp0.X == cp3.X && cp1.X == cp2.X && cp2.Y == cp3.Y) { perfectRectangle = true; } } if (perfectRectangle) { //It is expected that the 4 control points always form a perfect rectangle parallel/perpendicular to the window. //However, we must first determine which control point is at the top left and which is at the bottom right. //It is also expected that the 4 control points are adjacent to each other by index and position, e.g.: 0, 1, 2, 3. PointD topLeft = cp0; PointD bottomRight = cp0; //Compare the second point with the first. if (cp1.X < topLeft.X || cp1.Y < topLeft.Y) { //The second point is either more left or more up than the first. topLeft = cp1; //Compare the third point with the second. if (cp2.X < topLeft.X || cp2.Y < topLeft.Y) { //The third point is either more left or more up than the second. topLeft = cp2; //The first point remains the bottom right. } else { //The third point is neither more left nor more up than the second. //The second point remains the top left. bottomRight = cp3; } } else { //The second point is neither more left nor more up than the first. PointD secondPoint = cp1; //Compare the third point with the second. if (cp2.X < secondPoint.X || cp2.Y < secondPoint.Y) { //The third point is either more left or more up than the second. topLeft = cp3; bottomRight = cp1; } else { //The third point is neither more left nor more up than the second. //The first point remains the top left. bottomRight = cp2; } } //Now we can calculate the width and height. double width = bottomRight.X - topLeft.X; double height = bottomRight.Y - topLeft.Y; //Some elliptic math code taken from Cairo Extensions, and some from DocumentSelection code written for GSoC 2013. //Calculate an appropriate interval at which to increment t based on //the bounding rectangle's width and height properties. The increment //for t determines how many intermediate Points to calculate for the //ellipse. For each curve, t will go from tInterval to 1. The lower //the value of tInterval, the higher number of intermediate Points //that will be calculated and stored into the Polygon collection. double tInterval = .02d; double rx = width / 2d; //1/2 of the bounding Rectangle Width. double ry = height / 2d; //1/2 of the bounding Rectangle Height. double cx = topLeft.X + rx; //The middle of the bounding Rectangle, horizontally speaking. double cy = topLeft.Y + ry; //The middle of the bounding Rectangle, vertically speaking. double c1 = 0.5522847498307933984022516322796d; //tan(pi / 8d) * 4d / 3d ~= 0.5522847498307933984022516322796d points.AddRange(calculateCurvePoints(tInterval, cx + rx, cy, cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry, 3)); points.AddRange(calculateCurvePoints(tInterval, cx, cy - ry, cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy, 0)); points.AddRange(calculateCurvePoints(tInterval, cx - rx, cy, cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry, 1)); points.AddRange(calculateCurvePoints(tInterval, cx, cy + ry, cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy, 2)); // Close the curve. points.Add(new GeneratedPoint(new PointD(cx + rx, cy), 3)); } } //Make sure there are now generated points; otherwise, one of the ellipse conditions was not met. if (points.Count == 0) { //Something went wrong. Just copy the control points. Note: it's important that there be many generated points even if //everything is just a linear connection of control points. This is because the generated points are used in the check //that determines if the mouse clicks on the shape. int nextNum; PointD currentPoint, nextPoint; //Go through each control point. for (int currentNum = 0; currentNum < ControlPoints.Count; ++currentNum) { //Determine the next control point. nextNum = currentNum + 1; if (nextNum >= ControlPoints.Count) { nextNum = 0; } currentPoint = ControlPoints[currentNum].Position; nextPoint = ControlPoints[nextNum].Position; //Lerp from the current point to the next point. for (float lerpPos = 0.0f; lerpPos < 1.0f; lerpPos += 0.01f) { points.Add(new GeneratedPoint(Utility.Lerp(currentPoint, nextPoint, lerpPos), currentNum)); } } } GeneratedPoints = points.ToArray(); } /// /// Calculate each intermediate Point in the specified curve, returning Math.Round(1d / tInterval - 1d) number of Points. /// /// The increment value for t (should be between 0-1). /// Starting point X (not included in the returned Point(s)). /// Starting point Y (not included in the returned Point(s)). /// Control point 1 X. /// Control point 1 Y. /// Control point 2 X. /// Control point 2 Y. /// Ending point X (included in the returned Point(s)). /// Ending point Y (included in the returned Point(s)). /// The index of the previous ControlPoint to the generated points. /// protected List calculateCurvePoints( double tInterval, double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3, int cPIndex) { List calculatedPoints = new List((int)(1d / tInterval)); double oneMinusT; double oneMinusTSquared; double oneMinusTCubed; double tSquared; double tCubed; double oneMinusTSquaredTimesTTimesThree; double oneMinusTTimesTSquaredTimesThree; for (double t = 0; t < 1d; t += tInterval) { //There are 3 "layers" in a cubic Bezier curve's calculation. These "layers" //must be calculated for each intermediate Point (for each value of t from //tInterval to 1d). The Points in each "layer" store [the distance between //two consecutive Points from the previous "layer" multipled by the value //of t (which is between 0d-1d)] plus [the position of the first Point of //the two consecutive Points from the previous "layer"]. This must be //calculated for the X and Y of every consecutive Point in every layer //until the last Point possible is reached, which is the Point on the curve. //Note: the code below is an optimized version of the commented explanation above. oneMinusT = 1d - t; oneMinusTSquared = oneMinusT * oneMinusT; oneMinusTCubed = oneMinusTSquared * oneMinusT; tSquared = t * t; tCubed = tSquared * t; oneMinusTSquaredTimesTTimesThree = oneMinusTSquared * t * 3d; oneMinusTTimesTSquaredTimesThree = oneMinusT * tSquared * 3d; calculatedPoints.Add(new GeneratedPoint(new PointD( (oneMinusTCubed * x0 + oneMinusTSquaredTimesTTimesThree * x1 + oneMinusTTimesTSquaredTimesThree * x2 + tCubed * x3), (oneMinusTCubed * y0 + oneMinusTSquaredTimesTTimesThree * y1 + oneMinusTTimesTSquaredTimesThree * y2 + tCubed * y3)), cPIndex)); } //Return the partial Polygon containing the calculated Points in the curve. return calculatedPoints; } } } pinta-1.6/Pinta.Tools/Editable/Shapes/Arrow.cs0000664000175000017500000001024112474706675022376 0ustar00cameroncameron00000000000000// // Arrow.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class Arrow { public bool Show = false; public double ArrowSize = 10d, AngleOffset = 15d, LengthOffset = 10d; private const double radiansToDegrees = Math.PI / 180d; private const double invRadiansToDegrees = 180d / Math.PI; /// /// Returns a clone of the Arrow. /// /// A clone of the Arrow. public Arrow Clone() { Arrow clonedA = new Arrow(); clonedA.Show = Show; clonedA.ArrowSize = ArrowSize; clonedA.AngleOffset = AngleOffset; clonedA.LengthOffset = LengthOffset; return clonedA; } /// /// Draws the arrow. /// /// The drawing context. /// The end point of a shape. /// The point right before the end point. public Rectangle? Draw(Context g, Color outlineColor, PointD endPoint, PointD almostEndPoint) { //First, calculate the ending angle. double endingAngle = Math.Atan(Math.Abs(endPoint.Y - almostEndPoint.Y) / Math.Abs(endPoint.X - almostEndPoint.X)) * invRadiansToDegrees; //This is necessary to have a properly calculated ending angle. if (endPoint.Y - almostEndPoint.Y > 0) { if (endPoint.X - almostEndPoint.X > 0) { endingAngle = 180d - endingAngle; } } else { if (endPoint.X - almostEndPoint.X > 0) { endingAngle += 180d; } else { endingAngle = 360d - endingAngle; } } //Calculate the points of the arrow. PointD[] arrowPoints = { endPoint, new PointD( endPoint.X + Math.Cos((endingAngle + 270 + AngleOffset) * radiansToDegrees) * ArrowSize, endPoint.Y + Math.Sin((endingAngle + 270 + AngleOffset) * radiansToDegrees) * ArrowSize * -1d), new PointD( endPoint.X + Math.Cos((endingAngle + 180) * radiansToDegrees) * (ArrowSize + LengthOffset), endPoint.Y + Math.Sin((endingAngle + 180) * radiansToDegrees) * (ArrowSize + LengthOffset) * -1d), new PointD( endPoint.X + Math.Cos((endingAngle + 90 - AngleOffset) * radiansToDegrees) * ArrowSize, endPoint.Y + Math.Sin((endingAngle + 90 - AngleOffset) * radiansToDegrees) * ArrowSize * -1d) }; //Draw the arrow. g.FillPolygonal(arrowPoints, outlineColor); //Calculate the minimum bounding rectangle for the arrowhead and return it so //that it can be unioned with the existing invalidation rectangle. double minX = Math.Min(Math.Min(arrowPoints[1].X, arrowPoints[2].X), arrowPoints[3].X); double minY = Math.Min(Math.Min(arrowPoints[1].Y, arrowPoints[2].Y), arrowPoints[3].Y); return new Rectangle(minX, minY, Math.Max(Math.Max(arrowPoints[1].X, arrowPoints[2].X), arrowPoints[3].X) - minX, Math.Max(Math.Max(arrowPoints[1].Y, arrowPoints[2].Y), arrowPoints[3].Y) - minY); } } } pinta-1.6/Pinta.Tools/Editable/Shapes/LineCurveSeriesEngine.cs0000664000175000017500000002351712474706675025513 0ustar00cameroncameron00000000000000// // LineCurveSeriesEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class LineCurveSeriesEngine: ShapeEngine { public Arrow Arrow1 = new Arrow(), Arrow2 = new Arrow(); /// /// Create a new LineCurveSeriesEngine. /// /// The parent UserLayer for the re-editable DrawingLayer. /// An existing ReEditableLayer to reuse. This is for cloning only. If not cloning, pass in null. /// The owner EditEngine. /// Whether or not antialiasing is enabled. /// Whether or not the shape is closed (first and last points are connected). /// The outline color for the shape. /// The fill color for the shape. /// The width of the outline of the shape. public LineCurveSeriesEngine(UserLayer parentLayer, ReEditableLayer passedDrawingLayer, BaseEditEngine.ShapeTypes passedShapeType, bool passedAA, bool passedClosed, Color passedOutlineColor, Color passedFillColor, int passedBrushWidth) : base(parentLayer, passedDrawingLayer, passedShapeType, passedAA, passedClosed, passedOutlineColor, passedFillColor, passedBrushWidth) { } private LineCurveSeriesEngine (LineCurveSeriesEngine src) : base (src) { Arrow1 = src.Arrow1.Clone (); Arrow2 = src.Arrow2.Clone (); } public override ShapeEngine Clone () { return new LineCurveSeriesEngine (this); } /// /// Generate each point in an line/curve series (cardinal spline polynomial curve) shape that passes through the control points, /// and store the result in GeneratedPoints. /// The width of the brush that will be used to draw the shape. /// public override void GeneratePoints (int brush_width) { List generatedPoints = new List(); if (ControlPoints.Count < 2) { generatedPoints.Add(new GeneratedPoint(ControlPoints[0].Position, 0)); } else { //Generate tangents for each of the smaller cubic Bezier curves that make up each segment of the resulting curve. //The tension calculated for each point is a gradient between the previous //control point's tension and the following control point's tension. //Stores all of the tangent values. List bezierTangents = new List(); int pointCount = ControlPoints.Count - 1; double pointCountDouble = (double)pointCount; double tensionForPoint; //Calculate the first tangent. if (Closed) { bezierTangents.Add(new PointD( ControlPoints[0].Tension * (ControlPoints[1].Position.X - ControlPoints[pointCount].Position.X), ControlPoints[0].Tension * (ControlPoints[1].Position.Y - ControlPoints[pointCount].Position.Y))); } else { bezierTangents.Add(new PointD( ControlPoints[0].Tension * (ControlPoints[1].Position.X - ControlPoints[0].Position.X), ControlPoints[0].Tension * (ControlPoints[1].Position.Y - ControlPoints[0].Position.Y))); } //Calculate all of the middle tangents. for (int i = 1; i < pointCount; ++i) { tensionForPoint = ControlPoints[i].Tension * (double)i / pointCountDouble; bezierTangents.Add(new PointD( tensionForPoint * (ControlPoints[i + 1].Position.X - ControlPoints[i - 1].Position.X), tensionForPoint * (ControlPoints[i + 1].Position.Y - ControlPoints[i - 1].Position.Y))); } //Calculate the last tangent. if (Closed) { bezierTangents.Add(new PointD( ControlPoints[pointCount].Tension * (ControlPoints[0].Position.X - ControlPoints[pointCount - 1].Position.X), ControlPoints[pointCount].Tension * (ControlPoints[0].Position.Y - ControlPoints[pointCount - 1].Position.Y))); } else { bezierTangents.Add(new PointD( ControlPoints[pointCount].Tension * (ControlPoints[pointCount].Position.X - ControlPoints[pointCount - 1].Position.X), ControlPoints[pointCount].Tension * (ControlPoints[pointCount].Position.Y - ControlPoints[pointCount - 1].Position.Y))); } int iMinusOne; //Generate the resulting curve's points with consecutive cubic Bezier curves that //use the given points as end points and the calculated tangents as control points. for (int i = 1; i < ControlPoints.Count; ++i) { iMinusOne = i - 1; generatedPoints.AddRange(GenerateCubicBezierCurvePoints( ControlPoints[iMinusOne].Position, new PointD( ControlPoints[iMinusOne].Position.X + bezierTangents[iMinusOne].X, ControlPoints[iMinusOne].Position.Y + bezierTangents[iMinusOne].Y), new PointD( ControlPoints[i].Position.X - bezierTangents[i].X, ControlPoints[i].Position.Y - bezierTangents[i].Y), ControlPoints[i].Position, i)); } if (Closed) { // Close the shape. iMinusOne = ControlPoints.Count - 1; generatedPoints.AddRange(GenerateCubicBezierCurvePoints( ControlPoints[iMinusOne].Position, new PointD( ControlPoints[iMinusOne].Position.X + bezierTangents[iMinusOne].X, ControlPoints[iMinusOne].Position.Y + bezierTangents[iMinusOne].Y), new PointD( ControlPoints[0].Position.X - bezierTangents[0].X, ControlPoints[0].Position.Y - bezierTangents[0].Y), ControlPoints[0].Position, 0)); } } GeneratedPoints = generatedPoints.ToArray(); } /// /// Generate each point in a cubic Bezier curve given the end points and control points. /// /// The first end point that the curve passes through. /// The first control point that the curve does not necessarily pass through. /// The second control point that the curve does not necessarily pass through. /// The second end point that the curve passes through. /// The index of the previous ControlPoint to the generated points. /// The List of generated points. protected static List GenerateCubicBezierCurvePoints(PointD p0, PointD p1, PointD p2, PointD p3, int cPIndex) { List resultList = new List(); //Note: this must be low enough for mouse clicks to be properly considered on/off the curve at any given point. double tInterval = .025d; double oneMinusT; double oneMinusTSquared; double oneMinusTCubed; double tSquared; double tCubed; double oneMinusTSquaredTimesTTimesThree; double oneMinusTTimesTSquaredTimesThree; //t will go from 0d to 1d at the interval of tInterval. for (double t = 0d; t < 1d + tInterval; t += tInterval) { //There are 3 "layers" in a cubic Bezier curve's calculation. These "layers" //must be calculated for each intermediate Point (for each value of t from //tInterval to 1d). The Points in each "layer" store [the distance between //two consecutive Points from the previous "layer" multipled by the value //of t (which is between 0d-1d)] plus [the position of the first Point of //the two consecutive Points from the previous "layer"]. This must be //calculated for the X and Y of every consecutive Point in every layer //until the last Point possible is reached, which is the Point on the curve. //Note: the code below is an optimized version of the commented explanation above. oneMinusT = 1d - t; oneMinusTSquared = oneMinusT * oneMinusT; oneMinusTCubed = oneMinusTSquared * oneMinusT; tSquared = t * t; tCubed = tSquared * t; oneMinusTSquaredTimesTTimesThree = oneMinusTSquared * t * 3d; oneMinusTTimesTSquaredTimesThree = oneMinusT * tSquared * 3d; //Resulting Point = (1 - t) ^ 3 * p0 + 3 * (1 - t) ^ 2 * t * p1 + 3 * (1 - t) * t ^ 2 * p2 + t ^ 3 * p3 //This is done for both the X and Y given a value t going from 0d to 1d at a very small interval //and given 4 points p0, p1, p2, and p3, where p0 and p3 are end points and p1 and p2 are control points. resultList.Add(new GeneratedPoint(new PointD( oneMinusTCubed * p0.X + oneMinusTSquaredTimesTTimesThree * p1.X + oneMinusTTimesTSquaredTimesThree * p2.X + tCubed * p3.X, oneMinusTCubed * p0.Y + oneMinusTSquaredTimesTTimesThree * p1.Y + oneMinusTTimesTSquaredTimesThree * p2.Y + tCubed * p3.Y), cPIndex)); } return resultList; } } } pinta-1.6/Pinta.Tools/Editable/Shapes/RoundedLineEngine.cs0000664000175000017500000002276112474706675024654 0ustar00cameroncameron00000000000000// // RoundedLineEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 Cairo; using Pinta.Core; namespace Pinta.Tools { public class RoundedLineEngine: ShapeEngine { public double Radius; /// /// Create a new RoundedLineEngine. /// /// The parent UserLayer for the re-editable DrawingLayer. /// An existing ReEditableLayer to reuse. This is for cloning only. If not cloning, pass in null. /// The radius of the corners. /// Whether or not antialiasing is enabled. /// The outline color for the shape. /// The fill color for the shape. /// The width of the outline of the shape. public RoundedLineEngine(UserLayer parentLayer, ReEditableLayer passedDrawingLayer, double passedRadius, bool passedAA, Color passedOutlineColor, Color passedFillColor, int passedBrushWidth) : base(parentLayer, passedDrawingLayer, BaseEditEngine.ShapeTypes.RoundedLineSeries, passedAA, true, passedOutlineColor, passedFillColor, passedBrushWidth) { Radius = passedRadius; } public RoundedLineEngine (RoundedLineEngine src) : base (src) { Radius = src.Radius; } public override ShapeEngine Clone () { return new RoundedLineEngine (this); } /// /// Generate each point in a rounded line shape and store the result in GeneratedPoints. /// The width of the brush that will be used to draw the shape. /// public override void GeneratePoints (int brush_width) { List generatedPoints = new List(); int nextIndex; PointD lineEndPoint, cornerEndPoint; //Calculate the last ControlPoint's segment end points. calculateSegmentEndPoints(ControlPoints.Count - 1, out nextIndex, out lineEndPoint, out cornerEndPoint); //Start the first line at the last rounded corner's end point. PointD lineStartPoint = cornerEndPoint; for (int currentIndex = 0; currentIndex < ControlPoints.Count; ++currentIndex) { calculateSegmentEndPoints(currentIndex, out nextIndex, out lineEndPoint, out cornerEndPoint); //Add the line. generatedPoints.AddRange(GenerateQuadraticBezierCurvePoints(lineStartPoint, lineEndPoint, lineEndPoint, nextIndex)); //Add the rounded corner. generatedPoints.AddRange(GenerateQuadraticBezierCurvePoints( lineEndPoint, ControlPoints[nextIndex].Position, cornerEndPoint, nextIndex)); lineStartPoint = cornerEndPoint; } GeneratedPoints = generatedPoints.ToArray(); } /// /// Generate each point in a quadratic Bezier curve given the end points and control point. /// /// The first end point that the curve passes through. /// The control point that the curve does not necessarily pass through. /// The second end point that the curve passes through. /// The index of the previous ControlPoint to the generated points. /// The List of generated points. protected static List GenerateQuadraticBezierCurvePoints(PointD p0, PointD p1, PointD p2, int cPIndex) { List resultList = new List(); //Note: this must be low enough for mouse clicks to be properly considered on/off the curve at any given point. double tInterval = .03d; double oneMinusT; double oneMinusTSquared; double tSquared; double oneMinusTTimesTTimesTwo; //t will go from 0d to 1d at the interval of tInterval. for (double t = 0d; t < 1d + tInterval; t += tInterval) { //There are 2 "layers" in a quadratic Bezier curve's calculation. These "layers" //must be calculated for each intermediate Point (for each value of t from //tInterval to 1d). The Points in each "layer" store [the distance between //two consecutive Points from the previous "layer" multipled by the value //of t (which is between 0d-1d)] plus [the position of the first Point of //the two consecutive Points from the previous "layer"]. This must be //calculated for the X and Y of every consecutive Point in every layer //until the last Point possible is reached, which is the Point on the curve. //Note: the code below is an optimized version of the commented explanation above. oneMinusT = 1d - t; oneMinusTSquared = oneMinusT * oneMinusT; tSquared = t * t; oneMinusTTimesTTimesTwo = oneMinusT * t * 2d; //Resulting Point = (1 - t) ^ 2 * p0 + 2 * (1 - t) * t * p1 + t ^ 2 * p2 //This is done for both the X and Y given a value t going from 0d to 1d at a very small interval //and given 3 points p0, p1, and p2, where p0 and p2 are end points and p1 is a control point. resultList.Add(new GeneratedPoint(new PointD( oneMinusTSquared * p0.X + oneMinusTTimesTTimesTwo * p1.X + tSquared * p2.X, oneMinusTSquared * p0.Y + oneMinusTTimesTTimesTwo * p1.Y + tSquared * p2.Y), cPIndex)); } return resultList; } /// /// Calculates the given index's segment end point data. /// /// The index of the ControlPoint to calculate the segment end point data of. /// The index of the next ControlPoint. /// The end point of the line prior to the given ControlPoint's index. /// The end point of the rounded corner at the given ControlPoint's index. private void calculateSegmentEndPoints(int currentIndex, out int nextIndex, out PointD lineEndPoint, out PointD cornerEndPoint) { //Determine the positions of the current, next, and double next ControlPoints. nextIndex = currentIndex + 1; if (nextIndex >= ControlPoints.Count) { nextIndex = 0; } int doubleNextIndex = nextIndex + 1; if (doubleNextIndex >= ControlPoints.Count) { doubleNextIndex = 0; } PointD currentPosition = ControlPoints[currentIndex].Position; PointD nextPosition = ControlPoints[nextIndex].Position; PointD doubleNextPosition = ControlPoints[doubleNextIndex].Position; //Calculate the distance between the current and next point and the next and double next point. double currentDistance = currentPosition.Distance(nextPosition); double nextDistance = nextPosition.Distance(doubleNextPosition); //Calculate the smaller of the two distances. double minDistance = Math.Min(currentDistance, nextDistance); //The radius value used can change between ControlPoints depending on their proximity to each other. double currentRadius = Radius; //Reduce the radius according to the distance between adjacent ControlPoints if necessary. if (currentRadius > minDistance / 2d) { currentRadius = minDistance / 2d; } //Calculate the current offset ratio, which is the ratio of the radius to the distance between the current and next points. double currentOffsetRatio; //Prevent a divide by 0 error. if (currentDistance < 0d) { currentOffsetRatio = 0d; } else { currentOffsetRatio = currentRadius / currentDistance; if (currentOffsetRatio > 1d) { currentOffsetRatio = 1d; } } //Calculate the next offset ratio, which is the ratio of the radius to the distance between the next and double next points. double nextOffsetRatio; //Prevent a divide by 0 error. if (nextDistance < 0d) { nextOffsetRatio = 0d; } else { nextOffsetRatio = currentRadius / nextDistance; if (nextOffsetRatio > 1d) { nextOffsetRatio = 1d; } } //Calculate the end point of the straight line before the rounded corner. lineEndPoint = new PointD(nextPosition.X - (nextPosition.X - currentPosition.X) * currentOffsetRatio, nextPosition.Y - (nextPosition.Y - currentPosition.Y) * currentOffsetRatio); //Calculate the end point of the rounded corner after the straight line. cornerEndPoint = new PointD(nextPosition.X + (doubleNextPosition.X - nextPosition.X) * nextOffsetRatio, nextPosition.Y + (doubleNextPosition.Y - nextPosition.Y) * nextOffsetRatio); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/0000775000175000017500000000000012474706675021732 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Editable/EditEngines/LineCurveEditEngine.cs0000664000175000017500000000500212474706675026106 0ustar00cameroncameron00000000000000// // LineCurveEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { public class LineCurveEditEngine: ArrowedEditEngine { protected override string ShapeName { get { return Catalog.GetString("Open Curve Shape"); } } public LineCurveEditEngine(ShapeTool passedOwner): base(passedOwner) { } protected override ShapeEngine CreateShape(bool ctrlKey, bool clickedOnControlPoint, PointD prevSelPoint) { Document doc = PintaCore.Workspace.ActiveDocument; LineCurveSeriesEngine newEngine = new LineCurveSeriesEngine(doc.CurrentUserLayer, null, BaseEditEngine.ShapeTypes.OpenLineCurveSeries, owner.UseAntialiasing, false, BaseEditEngine.OutlineColor, BaseEditEngine.FillColor, owner.EditEngine.BrushWidth); AddLinePoints(ctrlKey, clickedOnControlPoint, newEngine, prevSelPoint); //Set the new shape's DashPattern option. newEngine.DashPattern = dash_pattern_box.comboBox.ComboBox.ActiveText; //Set the new arrow's settings to be the same as what's in the toolbar settings. setNewArrowSettings(newEngine); return newEngine; } protected override void MovePoint(List controlPoints) { base.MovePoint(controlPoints); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/ArrowedEditEngine.cs0000664000175000017500000004660412474706675025632 0ustar00cameroncameron00000000000000// // ArrowedEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { public abstract class ArrowedEditEngine : BaseEditEngine { private Gtk.SeparatorToolItem arrowSep; private ToolBarLabel arrowLabel; private Gtk.CheckButton showArrowOneBox, showArrowTwoBox; private bool showOtherArrowOptions; private ToolBarComboBox arrowSize; private ToolBarLabel arrowSizeLabel; private ToolBarButton arrowSizeMinus, arrowSizePlus; private ToolBarComboBox arrowAngleOffset; private ToolBarLabel arrowAngleOffsetLabel; private ToolBarButton arrowAngleOffsetMinus, arrowAngleOffsetPlus; private ToolBarComboBox arrowLengthOffset; private ToolBarLabel arrowLengthOffsetLabel; private ToolBarButton arrowLengthOffsetMinus, arrowLengthOffsetPlus; private Arrow previousSettings1 = new Arrow(); private Arrow previousSettings2 = new Arrow(); #region ToolbarEventHandlers void arrowSizeMinus_Clicked(object sender, EventArgs e) { double newSize = 10d; if (Double.TryParse(arrowSize.ComboBox.ActiveText, out newSize)) { --newSize; if (newSize < 1d) { newSize = 1d; } } else { newSize = 10d; } (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newSize.ToString(); } void arrowSizePlus_Clicked(object sender, EventArgs e) { double newSize = 10d; if (Double.TryParse(arrowSize.ComboBox.ActiveText, out newSize)) { ++newSize; if (newSize > 100d) { newSize = 100d; } } else { newSize = 10d; } (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newSize.ToString(); } void arrowAngleOffsetMinus_Clicked(object sender, EventArgs e) { double newAngle = 0d; if (Double.TryParse(arrowAngleOffset.ComboBox.ActiveText, out newAngle)) { --newAngle; if (newAngle < -89d) { newAngle = -89d; } } else { newAngle = 0d; } (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newAngle.ToString(); } void arrowAngleOffsetPlus_Clicked(object sender, EventArgs e) { double newAngle = 0d; if (Double.TryParse(arrowAngleOffset.ComboBox.ActiveText, out newAngle)) { ++newAngle; if (newAngle > 89d) { newAngle = 89d; } } else { newAngle = 0d; } (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newAngle.ToString(); } void arrowLengthOffsetMinus_Clicked(object sender, EventArgs e) { double newLength = 10d; if (Double.TryParse(arrowLengthOffset.ComboBox.ActiveText, out newLength)) { --newLength; if (newLength < -100d) { newLength = -100d; } } else { newLength = 10d; } (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newLength.ToString(); } void arrowLengthOffsetPlus_Clicked(object sender, EventArgs e) { double newLength = 10d; if (Double.TryParse(arrowLengthOffset.ComboBox.ActiveText, out newLength)) { ++newLength; if (newLength > 100d) { newLength = 100d; } } else { newLength = 10d; } (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newLength.ToString(); } #endregion ToolbarEventHandlers public override void HandleBuildToolBar(Gtk.Toolbar tb) { base.HandleBuildToolBar(tb); #region Show Arrows //Arrow separator. if (arrowSep == null) { arrowSep = new Gtk.SeparatorToolItem(); showOtherArrowOptions = false; } tb.AppendItem(arrowSep); if (arrowLabel == null) { arrowLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Arrow"))); } tb.AppendItem(arrowLabel); //Show arrow 1. showArrowOneBox = new Gtk.CheckButton("1"); showArrowOneBox.Active = previousSettings1.Show; showArrowOneBox.Toggled += (o, e) => { //Determine whether to change the visibility of Arrow options in the toolbar based on the updated Arrow showing/hiding. if (!showArrowOneBox.Active && !showArrowTwoBox.Active) { if (showOtherArrowOptions) { tb.Remove(arrowSizeLabel); tb.Remove(arrowSizeMinus); tb.Remove(arrowSize); tb.Remove(arrowSizePlus); tb.Remove(arrowAngleOffsetLabel); tb.Remove(arrowAngleOffsetMinus); tb.Remove(arrowAngleOffset); tb.Remove(arrowAngleOffsetPlus); tb.Remove(arrowLengthOffsetLabel); tb.Remove(arrowLengthOffsetMinus); tb.Remove(arrowLengthOffset); tb.Remove(arrowLengthOffsetPlus); showOtherArrowOptions = false; } } else { if (!showOtherArrowOptions) { tb.Add(arrowSizeLabel); tb.Add(arrowSizeMinus); tb.Add(arrowSize); tb.Add(arrowSizePlus); tb.Add(arrowAngleOffsetLabel); tb.Add(arrowAngleOffsetMinus); tb.Add(arrowAngleOffset); tb.Add(arrowAngleOffsetPlus); tb.Add(arrowLengthOffsetLabel); tb.Add(arrowLengthOffsetMinus); tb.Add(arrowLengthOffset); tb.Add(arrowLengthOffsetPlus); showOtherArrowOptions = true; } } LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine; if (activeEngine != null) { activeEngine.Arrow1.Show = showArrowOneBox.Active; DrawActiveShape(false, false, true, false, false); StorePreviousSettings(); } }; tb.AddWidgetItem(showArrowOneBox); //Show arrow 2. showArrowTwoBox = new Gtk.CheckButton("2"); showArrowTwoBox.Active = previousSettings2.Show; showArrowTwoBox.Toggled += (o, e) => { //Determine whether to change the visibility of Arrow options in the toolbar based on the updated Arrow showing/hiding. if (!showArrowOneBox.Active && !showArrowTwoBox.Active) { if (showOtherArrowOptions) { tb.Remove(arrowSizeLabel); tb.Remove(arrowSizeMinus); tb.Remove(arrowSize); tb.Remove(arrowSizePlus); tb.Remove(arrowAngleOffsetLabel); tb.Remove(arrowAngleOffsetMinus); tb.Remove(arrowAngleOffset); tb.Remove(arrowAngleOffsetPlus); tb.Remove(arrowLengthOffsetLabel); tb.Remove(arrowLengthOffsetMinus); tb.Remove(arrowLengthOffset); tb.Remove(arrowLengthOffsetPlus); showOtherArrowOptions = false; } } else { if (!showOtherArrowOptions) { tb.Add(arrowSizeLabel); tb.Add(arrowSizeMinus); tb.Add(arrowSize); tb.Add(arrowSizePlus); tb.Add(arrowAngleOffsetLabel); tb.Add(arrowAngleOffsetMinus); tb.Add(arrowAngleOffset); tb.Add(arrowAngleOffsetPlus); tb.Add(arrowLengthOffsetLabel); tb.Add(arrowLengthOffsetMinus); tb.Add(arrowLengthOffset); tb.Add(arrowLengthOffsetPlus); showOtherArrowOptions = true; } } LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine; if (activeEngine != null) { activeEngine.Arrow2.Show = showArrowTwoBox.Active; DrawActiveShape(false, false, true, false, false); StorePreviousSettings(); } }; tb.AddWidgetItem(showArrowTwoBox); #endregion Show Arrows #region Arrow Size if (arrowSizeLabel == null) { arrowSizeLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Size"))); } if (arrowSizeMinus == null) { arrowSizeMinus = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease arrow size")); arrowSizeMinus.Clicked += new EventHandler(arrowSizeMinus_Clicked); } if (arrowSize == null) { arrowSize = new ToolBarComboBox(65, 7, true, "3", "4", "5", "6", "7", "8", "9", "10", "12", "15", "18", "20", "25", "30", "40", "50", "60", "70", "80", "90", "100"); arrowSize.ComboBox.Changed += (o, e) => { if (arrowSize.ComboBox.ActiveText.Length < 1) { //Ignore the change until the user enters something. return; } else { double newSize = 10d; if (arrowSize.ComboBox.ActiveText == "-") { //The user is trying to enter a negative value: change it to 1. newSize = 1d; } else { if (Double.TryParse(arrowSize.ComboBox.ActiveText, out newSize)) { if (newSize < 1d) { //Less than 1: change it to 1. newSize = 1d; } else if (newSize > 100d) { //Greater than 100: change it to 100. newSize = 100d; } } else { //Not a number: wait until the user enters something. return; } } (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newSize.ToString(); LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine; if (activeEngine != null) { activeEngine.Arrow1.ArrowSize = newSize; activeEngine.Arrow2.ArrowSize = newSize; DrawActiveShape(false, false, true, false, false); StorePreviousSettings(); } } }; } if (arrowSizePlus == null) { arrowSizePlus = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase arrow size")); arrowSizePlus.Clicked += new EventHandler(arrowSizePlus_Clicked); } #endregion Arrow Size #region Angle Offset if (arrowAngleOffsetLabel == null) { arrowAngleOffsetLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Angle"))); } if (arrowAngleOffsetMinus == null) { arrowAngleOffsetMinus = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease angle offset")); arrowAngleOffsetMinus.Clicked += new EventHandler(arrowAngleOffsetMinus_Clicked); } if (arrowAngleOffset == null) { arrowAngleOffset = new ToolBarComboBox(65, 9, true, "-30", "-25", "-20", "-15", "-10", "-5", "0", "5", "10", "15", "20", "25", "30"); arrowAngleOffset.ComboBox.Changed += (o, e) => { if (arrowAngleOffset.ComboBox.ActiveText.Length < 1) { //Ignore the change until the user enters something. return; } else if (arrowAngleOffset.ComboBox.ActiveText == "-") { //The user is trying to enter a negative value: ignore the change until the user enters more. return; } else { double newAngle = 15d; if (Double.TryParse(arrowAngleOffset.ComboBox.ActiveText, out newAngle)) { if (newAngle < -89d) { //Less than -89: change it to -89. newAngle = -89d; } else if (newAngle > 89d) { //Greater than 89: change it to 89. newAngle = 89d; } } else { //Not a number: wait until the user enters something. return; } (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newAngle.ToString(); LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine; if (activeEngine != null) { activeEngine.Arrow1.AngleOffset = newAngle; activeEngine.Arrow2.AngleOffset = newAngle; DrawActiveShape(false, false, true, false, false); StorePreviousSettings(); } } }; } if (arrowAngleOffsetPlus == null) { arrowAngleOffsetPlus = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase angle offset")); arrowAngleOffsetPlus.Clicked += new EventHandler(arrowAngleOffsetPlus_Clicked); } #endregion Angle Offset #region Length Offset if (arrowLengthOffsetLabel == null) { arrowLengthOffsetLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Length"))); } if (arrowLengthOffsetMinus == null) { arrowLengthOffsetMinus = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease length offset")); arrowLengthOffsetMinus.Clicked += new EventHandler(arrowLengthOffsetMinus_Clicked); } if (arrowLengthOffset == null) { arrowLengthOffset = new ToolBarComboBox(65, 8, true, "-30", "-25", "-20", "-15", "-10", "-5", "0", "5", "10", "15", "20", "25", "30"); arrowLengthOffset.ComboBox.Changed += (o, e) => { if (arrowLengthOffset.ComboBox.ActiveText.Length < 1) { //Ignore the change until the user enters something. return; } else if (arrowLengthOffset.ComboBox.ActiveText == "-") { //The user is trying to enter a negative value: ignore the change until the user enters more. return; } else { double newLength = 10d; if (Double.TryParse(arrowLengthOffset.ComboBox.ActiveText, out newLength)) { if (newLength < -100d) { //Less than -100: change it to -100. newLength = -100d; } else if (newLength > 100d) { //Greater than 100: change it to 100. newLength = 100d; } } else { //Not a number: wait until the user enters something. return; } (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newLength.ToString(); LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine; if (activeEngine != null) { activeEngine.Arrow1.LengthOffset = newLength; activeEngine.Arrow2.LengthOffset = newLength; DrawActiveShape(false, false, true, false, false); StorePreviousSettings(); } } }; } if (arrowLengthOffsetPlus == null) { arrowLengthOffsetPlus = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase length offset")); arrowLengthOffsetPlus.Clicked += new EventHandler(arrowLengthOffsetPlus_Clicked); } #endregion Length Offset if (showOtherArrowOptions) { tb.Add(arrowSizeLabel); tb.Add(arrowSizeMinus); tb.Add(arrowSize); tb.Add(arrowSizePlus); tb.Add(arrowAngleOffsetLabel); tb.Add(arrowAngleOffsetMinus); tb.Add(arrowAngleOffset); tb.Add(arrowAngleOffsetPlus); tb.Add(arrowLengthOffsetLabel); tb.Add(arrowLengthOffsetMinus); tb.Add(arrowLengthOffset); tb.Add(arrowLengthOffsetPlus); } } public ArrowedEditEngine(ShapeTool passedOwner): base(passedOwner) { } /// /// Set the new arrow's settings to be the same as what's in the toolbar settings. /// protected void setNewArrowSettings(LineCurveSeriesEngine newEngine) { if (showArrowOneBox != null) { newEngine.Arrow1.Show = showArrowOneBox.Active; newEngine.Arrow2.Show = showArrowTwoBox.Active; Double.TryParse((arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out newEngine.Arrow1.ArrowSize); Double.TryParse((arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out newEngine.Arrow1.AngleOffset); Double.TryParse((arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out newEngine.Arrow1.LengthOffset); newEngine.Arrow1.ArrowSize = Utility.Clamp(newEngine.Arrow1.ArrowSize, 1d, 100d); newEngine.Arrow2.ArrowSize = newEngine.Arrow1.ArrowSize; newEngine.Arrow1.AngleOffset = Utility.Clamp(newEngine.Arrow1.AngleOffset, -89d, 89d); newEngine.Arrow2.AngleOffset = newEngine.Arrow1.AngleOffset; newEngine.Arrow1.LengthOffset = Utility.Clamp(newEngine.Arrow1.LengthOffset, -100d, 100d); newEngine.Arrow2.LengthOffset = newEngine.Arrow1.LengthOffset; } } public override void UpdateToolbarSettings(ShapeEngine engine) { if (engine != null && engine.ShapeType == ShapeTypes.OpenLineCurveSeries) { if (showArrowOneBox != null) { LineCurveSeriesEngine lCSEngine = (LineCurveSeriesEngine)engine; showArrowOneBox.Active = lCSEngine.Arrow1.Show; showArrowTwoBox.Active = lCSEngine.Arrow2.Show; if (showOtherArrowOptions) { (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = lCSEngine.Arrow1.ArrowSize.ToString(); (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = lCSEngine.Arrow1.AngleOffset.ToString(); (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = lCSEngine.Arrow1.LengthOffset.ToString(); } } base.UpdateToolbarSettings(engine); } } protected override void RecallPreviousSettings() { if (showArrowOneBox != null) { showArrowOneBox.Active = previousSettings1.Show; showArrowTwoBox.Active = previousSettings2.Show; if (showOtherArrowOptions) { (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = previousSettings1.ArrowSize.ToString(); (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = previousSettings1.AngleOffset.ToString(); (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = previousSettings1.LengthOffset.ToString(); } } base.RecallPreviousSettings(); } protected override void StorePreviousSettings() { if (showArrowOneBox != null) { previousSettings1.Show = showArrowOneBox.Active; previousSettings2.Show = showArrowTwoBox.Active; Double.TryParse((arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out previousSettings1.ArrowSize); Double.TryParse((arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out previousSettings1.AngleOffset); Double.TryParse((arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text, out previousSettings1.LengthOffset); //Other Arrow2 settings are unnecessary since they are the same as Arrow1's. } base.StorePreviousSettings(); } protected override void DrawExtras(ref Rectangle? dirty, Context g, ShapeEngine engine) { LineCurveSeriesEngine lCSEngine = engine as LineCurveSeriesEngine; if (lCSEngine != null && engine.ControlPoints.Count > 0) { // Draw the arrows for the currently active shape. GeneratedPoint[] genPoints = engine.GeneratedPoints; if (lCSEngine.Arrow1.Show) { if (genPoints.Length > 1) { dirty = dirty.UnionRectangles(lCSEngine.Arrow1.Draw(g, lCSEngine.OutlineColor, genPoints[0].Position, genPoints[1].Position)); } } if (lCSEngine.Arrow2.Show) { if (genPoints.Length > 1) { dirty = dirty.UnionRectangles(lCSEngine.Arrow2.Draw(g, lCSEngine.OutlineColor, genPoints[genPoints.Length - 1].Position, genPoints[genPoints.Length - 2].Position)); } } } base.DrawExtras(ref dirty, g, engine); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/RoundedLineEditEngine.cs0000664000175000017500000001325212474706675026430 0ustar00cameroncameron00000000000000// // RoundedLineEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { public class RoundedLineEditEngine: BaseEditEngine { protected override string ShapeName { get { return Catalog.GetString("Rounded Line Shape"); } } public const double DefaultRadius = 20d; protected double previousRadius = DefaultRadius; protected ToolBarComboBox radius; protected ToolBarLabel radius_label; protected ToolBarButton radius_minus; protected ToolBarButton radius_plus; protected Gtk.SeparatorToolItem radius_sep; public double Radius { get { double rad; if (radius != null) { 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; } } else { return BrushWidth; } } set { if (radius != null) { (radius.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString(); ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null && selEngine.ShapeType == ShapeTypes.RoundedLineSeries) { ((RoundedLineEngine)selEngine).Radius = Radius; StorePreviousSettings(); DrawActiveShape(false, false, true, false, false); } } } } public override void HandleBuildToolBar(Gtk.Toolbar tb) { base.HandleBuildToolBar(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 shape's corner radius")); radius_minus.Clicked += RadiusMinusButtonClickedEvent; } tb.AppendItem(radius_minus); if (radius == null) { radius = new ToolBarComboBox(65, 16, true, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "20", "25", "30", "40", "50", "60", "70", "80"); radius.ComboBox.Changed += (o, e) => { //Go through the Get/Set routine. Radius = Radius; }; } tb.AppendItem(radius); if (radius_plus == null) { radius_plus = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase shape's corner radius")); radius_plus.Clicked += RadiusPlusButtonClickedEvent; } tb.AppendItem(radius_plus); } 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; } public RoundedLineEditEngine(ShapeTool passedOwner): base(passedOwner) { } protected override ShapeEngine CreateShape(bool ctrlKey, bool clickedOnControlPoint, PointD prevSelPoint) { Document doc = PintaCore.Workspace.ActiveDocument; ShapeEngine newEngine = new RoundedLineEngine(doc.CurrentUserLayer, null, Radius, owner.UseAntialiasing, BaseEditEngine.OutlineColor, BaseEditEngine.FillColor, owner.EditEngine.BrushWidth); AddRectanglePoints(ctrlKey, clickedOnControlPoint, newEngine, prevSelPoint); //Set the new shape's DashPattern option. newEngine.DashPattern = dash_pattern_box.comboBox.ComboBox.ActiveText; return newEngine; } protected override void MovePoint(List controlPoints) { MoveRectangularPoint(controlPoints); base.MovePoint(controlPoints); } public override void UpdateToolbarSettings(ShapeEngine engine) { if (engine != null && engine.ShapeType == ShapeTypes.RoundedLineSeries) { RoundedLineEngine rLEngine = (RoundedLineEngine)engine; Radius = rLEngine.Radius; base.UpdateToolbarSettings(engine); } } protected override void RecallPreviousSettings() { Radius = previousRadius; base.RecallPreviousSettings(); } protected override void StorePreviousSettings() { previousRadius = Radius; base.StorePreviousSettings(); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/EllipseEditEngine.cs0000664000175000017500000000452512474706675025620 0ustar00cameroncameron00000000000000// // EllipseEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { public class EllipseEditEngine: BaseEditEngine { protected override string ShapeName { get { return Catalog.GetString ("Ellipse"); } } public EllipseEditEngine (ShapeTool owner) : base (owner) { } protected override ShapeEngine CreateShape (bool ctrlKey, bool clickedOnControlPoint, PointD prevSelPoint) { Document doc = PintaCore.Workspace.ActiveDocument; ShapeEngine newEngine = new EllipseEngine(doc.CurrentUserLayer, null, owner.UseAntialiasing, BaseEditEngine.OutlineColor, BaseEditEngine.FillColor, owner.EditEngine.BrushWidth); AddRectanglePoints(ctrlKey, clickedOnControlPoint, newEngine, prevSelPoint); //Set the new shape's DashPattern option. newEngine.DashPattern = dash_pattern_box.comboBox.ComboBox.ActiveText; return newEngine; } protected override void MovePoint (List controlPoints) { MoveRectangularPoint(controlPoints); base.MovePoint(controlPoints); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/RectangleEditEngine.cs0000664000175000017500000000465312474706675026131 0ustar00cameroncameron00000000000000// // RectangleEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { public class RectangleEditEngine: BaseEditEngine { protected override string ShapeName { get { return Catalog.GetString("Closed Curve Shape"); } } public RectangleEditEngine(ShapeTool passedOwner): base(passedOwner) { } protected override ShapeEngine CreateShape(bool ctrlKey, bool clickedOnControlPoint, PointD prevSelPoint) { Document doc = PintaCore.Workspace.ActiveDocument; ShapeEngine newEngine = new LineCurveSeriesEngine(doc.CurrentUserLayer, null, BaseEditEngine.ShapeTypes.ClosedLineCurveSeries, owner.UseAntialiasing, true, BaseEditEngine.OutlineColor, BaseEditEngine.FillColor, owner.EditEngine.BrushWidth); AddRectanglePoints(ctrlKey, clickedOnControlPoint, newEngine, prevSelPoint); //Set the new shape's DashPattern option. newEngine.DashPattern = dash_pattern_box.comboBox.ComboBox.ActiveText; return newEngine; } protected override void MovePoint(List controlPoints) { MoveRectangularPoint(controlPoints); base.MovePoint(controlPoints); } } } pinta-1.6/Pinta.Tools/Editable/EditEngines/BaseEditEngine.cs0000664000175000017500000021132612474706675025074 0ustar00cameroncameron00000000000000// // BaseEditEngine.cs // // Author: // Andrew Davis // // Copyright (c) 2014 Andrew Davis, GSoC 2014 // // 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 System.Collections.Generic; using System.Linq; using System.Text; using Mono.Unix; namespace Pinta.Tools { //The EditEngine was created for tools that wish to utilize any of the control point, line/curve, hover point (reacting to the mouse), //and etc. code that was originally used in the LineCurveTool for editability. If a class wishes to use it, it should create and instantiate //a protected instance of the EditEngine inside the class and then utilize it in a similar fashion to any of the editable tools. public abstract class BaseEditEngine { static BaseEditEngine () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Tools.Line.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.Line.png"))); fact.Add ("Tools.Rectangle.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.Rectangle.png"))); fact.Add ("Tools.Ellipse.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.Ellipse.png"))); fact.Add ("Tools.RoundedRectangle.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.RoundedRectangle.png"))); fact.AddDefault (); } public enum ShapeTypes { OpenLineCurveSeries, ClosedLineCurveSeries, Ellipse, RoundedLineSeries } public static Dictionary CorrespondingTools = new Dictionary(); protected abstract string ShapeName { get; } protected readonly ShapeTool owner; protected bool is_drawing = false; protected Rectangle? last_dirty = null; protected Rectangle? last_hover = null; protected double last_control_pt_size = 0d; protected PointD shape_origin; protected PointD current_point; public static Color OutlineColor { get { return PintaCore.Palette.PrimaryColor; } set { PintaCore.Palette.PrimaryColor = value; } } public static Color FillColor { get { return PintaCore.Palette.SecondaryColor; } set { PintaCore.Palette.SecondaryColor = value; } } 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 ToolBarLabel shape_type_label; protected ToolBarDropDownButton shape_type_button; protected Gtk.SeparatorToolItem shape_type_sep; protected DashPatternBox dash_pattern_box = new DashPatternBox(); private string prev_dash_pattern = "-"; private bool prev_antialiasing = true; public int BrushWidth { get { if (brush_width != null) { 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 = BaseTool.DEFAULT_BRUSH_WIDTH.ToString(); } return BaseTool.DEFAULT_BRUSH_WIDTH; } set { if (brush_width != null) { (brush_width.ComboBox as Gtk.ComboBoxEntry).Entry.Text = value.ToString(); } } } private int prev_brush_width = BaseTool.DEFAULT_BRUSH_WIDTH; private bool StrokeShape { get { return (int)fill_button.SelectedItem.Tag % 2 == 0; } } private bool FillShape { get { return (int)fill_button.SelectedItem.Tag >= 1; } } private ShapeTypes ShapeType { get { return (ShapeTypes)(int)shape_type_button.SelectedItem.Tag; } } protected static readonly Color hover_color = new Color(ToolControl.FillColor.R, ToolControl.FillColor.G, ToolControl.FillColor.B, ToolControl.FillColor.A * 2d / 3d); public const double ShapeClickStartingRange = 10d; public const double ShapeClickThicknessFactor = 1d; public const double DefaultEndPointTension = 0d; public const double DefaultMidPointTension = 1d / 3d; public int SelectedPointIndex, SelectedShapeIndex; protected int prev_selected_shape_index; /// /// The selected ControlPoint. /// public ControlPoint SelectedPoint { get { ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null && selEngine.ControlPoints.Count > SelectedPointIndex) { return selEngine.ControlPoints[SelectedPointIndex]; } else { return null; } } set { ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null && selEngine.ControlPoints.Count > SelectedPointIndex) { selEngine.ControlPoints[SelectedPointIndex] = value; } } } /// /// The active shape's ShapeEngine. A point does not have to be selected here, only a shape. This can be null. /// public ShapeEngine ActiveShapeEngine { get { if (SelectedShapeIndex > -1 && SEngines.Count > SelectedShapeIndex) { return SEngines[SelectedShapeIndex]; } else { return null; } } } /// /// The selected shape's ShapeEngine. This requires that a point in the shape be selected and should be used in most cases. This can be null. /// public ShapeEngine SelectedShapeEngine { get { if (SelectedPointIndex > -1) { return ActiveShapeEngine; } else { return null; } } } protected PointD hover_point = new PointD(-1d, -1d); protected int hovered_pt_as_control_pt = -1; protected bool changing_tension = false; protected PointD last_mouse_pos = new PointD(0d, 0d); //Helps to keep track of the first modification on a shape after the mouse is clicked, to prevent unnecessary history items. protected bool clicked_without_modifying = false; //Stores the editable shape data. public static ShapeEngineCollection SEngines = new ShapeEngineCollection(); #region ToolbarEventHandlers protected virtual void BrushMinusButtonClickedEvent(object o, EventArgs args) { if (BrushWidth > 1) BrushWidth--; //No need to store previous settings or redraw, as this is done in the Changed event handler. } protected virtual void BrushPlusButtonClickedEvent(object o, EventArgs args) { BrushWidth++; //No need to store previous settings or redraw, as this is done in the Changed event handler. } protected void Palette_PrimaryColorChanged(object sender, EventArgs e) { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { activeEngine.OutlineColor = OutlineColor.Clone(); DrawActiveShape(false, false, true, false, false); } } protected void Palette_SecondaryColorChanged(object sender, EventArgs e) { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { activeEngine.FillColor = FillColor.Clone(); DrawActiveShape(false, false, true, false, false); } } #endregion ToolbarEventHandlers public BaseEditEngine(ShapeTool passedOwner) { owner = passedOwner; owner.IsEditableShapeTool = true; ResetShapes(); } public virtual void HandleBuildToolBar(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 += BrushMinusButtonClickedEvent; } 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"); brush_width.ComboBox.Changed += (o, e) => { ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null) { selEngine.BrushWidth = BrushWidth; StorePreviousSettings (); DrawActiveShape (false, false, true, false, false); } }; } 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 += BrushPlusButtonClickedEvent; } tb.AppendItem(brush_width_plus); 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); if (shape_type_sep == null) shape_type_sep = new Gtk.SeparatorToolItem(); tb.AppendItem(shape_type_sep); if (shape_type_label == null) shape_type_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Shape Type"))); tb.AppendItem(shape_type_label); if (shape_type_button == null) { shape_type_button = new ToolBarDropDownButton(); shape_type_button.AddItem(Catalog.GetString("Open Line/Curve Series"), "Tools.Line.png", 0); shape_type_button.AddItem(Catalog.GetString("Closed Line/Curve Series"), "Tools.Rectangle.png", 1); shape_type_button.AddItem(Catalog.GetString("Ellipse"), "Tools.Ellipse.png", 2); shape_type_button.AddItem(Catalog.GetString("Rounded Line Series"), "Tools.RoundedRectangle.png", 3); shape_type_button.SelectedItemChanged += (o, e) => { ShapeTypes newShapeType = ShapeType; ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null) { //Verify that the tool needs to be switched. if (GetCorrespondingTool(newShapeType) != this.owner) { //Create a new ShapesModifyHistoryItem so that the changing of the shape type can be undone. PintaCore.Workspace.ActiveDocument.History.PushNewItem(new ShapesModifyHistoryItem( this, owner.Icon, Catalog.GetString("Changed Shape Type"))); //Clone the old shape; it should be automatically garbage-collected. newShapeType already has the updated value. selEngine = selEngine.Convert(newShapeType, SelectedShapeIndex); int previousSSI = SelectedShapeIndex; ActivateCorrespondingTool(selEngine.ShapeType, true); SelectedShapeIndex = previousSSI; //Draw the updated shape with organized points generation (for mouse detection). DrawActiveShape(true, false, true, false, true); } } }; } shape_type_button.SelectedItem = shape_type_button.Items[(int)owner.ShapeType]; tb.AppendItem(shape_type_button); Gtk.ComboBox dpbBox = dash_pattern_box.SetupToolbar(tb); if (dpbBox != null) { dpbBox.Changed += (o, e) => { ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null) { selEngine.DashPattern = dpbBox.ActiveText; StorePreviousSettings (); DrawActiveShape (false, false, true, false, false); } }; } } public virtual void HandleActivated() { RecallPreviousSettings(); PintaCore.Palette.PrimaryColorChanged += new EventHandler(Palette_PrimaryColorChanged); PintaCore.Palette.SecondaryColorChanged += new EventHandler(Palette_SecondaryColorChanged); } public virtual void HandleDeactivated(BaseTool newTool) { SelectedPointIndex = -1; SelectedShapeIndex = -1; StorePreviousSettings(); //Determine if the tool being switched to will be another editable tool. if (PintaCore.Workspace.HasOpenDocuments && !newTool.IsEditableShapeTool) { //The tool being switched to is not editable. Finalize every editable shape not yet finalized. FinalizeAllShapes(); } PintaCore.Palette.PrimaryColorChanged -= Palette_PrimaryColorChanged; PintaCore.Palette.SecondaryColorChanged -= Palette_SecondaryColorChanged; } public virtual void HandleAfterSave() { //When saving, everything will be finalized, which is good; however, afterwards, the user will expect //everything to remain editable. Currently, a finalization history item will always be added. PintaCore.Actions.Edit.Undo.Activate(); //Redraw all of the editable shapes in case saving caused some extra/unexpected behavior. DrawAllShapes(); } public virtual void HandleCommit() { //Finalize every editable shape not yet finalized. FinalizeAllShapes(); } public virtual bool HandleBeforeUndo() { return false; } public virtual bool HandleBeforeRedo() { return false; } public virtual void HandleAfterUndo() { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { UpdateToolbarSettings(activeEngine); } //Draw the current state. DrawActiveShape(true, false, true, false, false); } public virtual void HandleAfterRedo() { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { UpdateToolbarSettings(activeEngine); } //Draw the current state. DrawActiveShape(true, false, true, false, false); } public virtual bool HandleKeyDown(Gtk.DrawingArea canvas, Gtk.KeyPressEventArgs args) { Gdk.Key keyPressed = args.Event.Key; if (keyPressed == Gdk.Key.Delete) { if (SelectedPointIndex > -1) { List controlPoints = SelectedShapeEngine.ControlPoints; //Either delete a ControlPoint or an entire shape (if there's only 1 ControlPoint left). if (controlPoints.Count > 1) { //Create a new ShapesModifyHistoryItem so that the deletion of a control point can be undone. PintaCore.Workspace.ActiveDocument.History.PushNewItem( new ShapesModifyHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Point Deleted"))); //Delete the selected point from the shape. controlPoints.RemoveAt(SelectedPointIndex); //Set the newly selected point to be the median-most point on the shape, order-wise. if (SelectedPointIndex > controlPoints.Count / 2) { --SelectedPointIndex; } } else { Document doc = PintaCore.Workspace.ActiveDocument; //Create a new ShapesHistoryItem so that the deletion of a shape can be undone. doc.History.PushNewItem( new ShapesHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Deleted"), doc.CurrentUserLayer.Surface.Clone(), doc.CurrentUserLayer, SelectedPointIndex, SelectedShapeIndex, false)); //Since the shape itself will be deleted, remove its ReEditableLayer from the drawing loop. ReEditableLayer removeMe = SEngines.ElementAt(SelectedShapeIndex).DrawingLayer; if (removeMe.InTheLoop) { SEngines.ElementAt(SelectedShapeIndex).DrawingLayer.TryRemoveLayer(); } //Delete the selected shape. SEngines.RemoveAt(SelectedShapeIndex); //Redraw the workspace. doc.Workspace.Invalidate(); SelectedPointIndex = -1; SelectedShapeIndex = -1; } hover_point = new PointD(-1d, -1d); DrawActiveShape(true, false, true, false, false); } args.RetVal = true; } else if (keyPressed == Gdk.Key.Return) { //Finalize every editable shape not yet finalized. FinalizeAllShapes(); args.RetVal = true; } else if (keyPressed == Gdk.Key.space) { ControlPoint selPoint = SelectedPoint; if (selPoint != null) { //This can be assumed not to be null since selPoint was not null. ShapeEngine selEngine = SelectedShapeEngine; //Create a new ShapesModifyHistoryItem so that the adding of a control point can be undone. PintaCore.Workspace.ActiveDocument.History.PushNewItem( new ShapesModifyHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Point Added"))); bool shiftKey = (args.Event.State & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask; bool ctrlKey = (args.Event.State & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask; PointD newPointPos; if (ctrlKey) { //Ctrl + space combo: same position as currently selected point. newPointPos = new PointD(selPoint.Position.X, selPoint.Position.Y); } else { shape_origin = new PointD(selPoint.Position.X, selPoint.Position.Y); if (shiftKey) { CalculateModifiedCurrentPoint(); } //Space only: position of mouse (after any potential shift alignment). newPointPos = new PointD(current_point.X, current_point.Y); } //Place the new point on the outside-most end, order-wise. if ((double)SelectedPointIndex < (double)selEngine.ControlPoints.Count / 2d) { SelectedShapeEngine.ControlPoints.Insert(SelectedPointIndex, new ControlPoint(new PointD(newPointPos.X, newPointPos.Y), DefaultMidPointTension)); } else { SelectedShapeEngine.ControlPoints.Insert(SelectedPointIndex + 1, new ControlPoint(new PointD(newPointPos.X, newPointPos.Y), DefaultMidPointTension)); ++SelectedPointIndex; } DrawActiveShape(true, false, true, shiftKey, false); } args.RetVal = true; } else if (keyPressed == Gdk.Key.Up) { //Make sure a control point is selected. if (SelectedPointIndex > -1) { //Move the selected control point. SelectedPoint.Position.Y -= 1d; DrawActiveShape(true, false, true, false, false); } args.RetVal = true; } else if (keyPressed == Gdk.Key.Down) { //Make sure a control point is selected. if (SelectedPointIndex > -1) { //Move the selected control point. SelectedPoint.Position.Y += 1d; DrawActiveShape(true, false, true, false, false); } args.RetVal = true; } else if (keyPressed == Gdk.Key.Left) { //Make sure a control point is selected. if (SelectedPointIndex > -1) { if ((args.Event.State & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask) { //Change the selected control point to be the previous one. --SelectedPointIndex; if (SelectedPointIndex < 0) { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { SelectedPointIndex = activeEngine.ControlPoints.Count - 1; } } } else { //Move the selected control point. SelectedPoint.Position.X -= 1d; } DrawActiveShape(true, false, true, false, false); } args.RetVal = true; } else if (keyPressed == Gdk.Key.Right) { //Make sure a control point is selected. if (SelectedPointIndex > -1) { if ((args.Event.State & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask) { //Change the selected control point to be the following one. ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { ++SelectedPointIndex; if (SelectedPointIndex > activeEngine.ControlPoints.Count - 1) { SelectedPointIndex = 0; } } } else { //Move the selected control point. SelectedPoint.Position.X += 1d; } DrawActiveShape(true, false, true, false, false); } args.RetVal = true; } else { return false; } return true; } public virtual bool HandleKeyUp(Gtk.DrawingArea canvas, Gtk.KeyReleaseEventArgs args) { Gdk.Key keyReleased = args.Event.Key; if (keyReleased == Gdk.Key.Delete || keyReleased == Gdk.Key.Return || keyReleased == Gdk.Key.space || keyReleased == Gdk.Key.Up || keyReleased == Gdk.Key.Down || keyReleased == Gdk.Key.Left || keyReleased == Gdk.Key.Right) { args.RetVal = true; return true; } else { return false; } } public virtual void HandleMouseDown(Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { //If we are already drawing, ignore any additional mouse down events. if (is_drawing) { return; } //Redraw the previously (and possibly currently) active shape without any control points in case another shape is made active. DrawActiveShape(false, false, false, false, false); Document doc = PintaCore.Workspace.ActiveDocument; shape_origin = new PointD(Utility.Clamp(point.X, 0, doc.ImageSize.Width - 1), Utility.Clamp(point.Y, 0, doc.ImageSize.Height - 1)); current_point = shape_origin; bool shiftKey = (args.Event.State & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask; if (shiftKey) { CalculateModifiedCurrentPoint(); } is_drawing = true; //Right clicking changes tension. if (args.Event.Button == 1) { changing_tension = false; } else { changing_tension = true; } bool ctrlKey = (args.Event.State & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask; int closestCPIndex, closestCPShapeIndex; ControlPoint closestControlPoint; double closestCPDistance; SEngines.FindClosestControlPoint(current_point, out closestCPShapeIndex, out closestCPIndex, out closestControlPoint, out closestCPDistance); int closestShapeIndex, closestPointIndex; PointD closestPoint; double closestDistance; OrganizedPointCollection.FindClosestPoint(SEngines, current_point, out closestShapeIndex, out closestPointIndex, out closestPoint, out closestDistance); bool clickedOnControlPoint = false; double currentClickRange = ShapeClickStartingRange + BrushWidth * ShapeClickThicknessFactor; //Determine if the closest ControlPoint is within the expected click range. if (closestControlPoint != null && closestCPDistance < currentClickRange) { //User clicked directly on a ControlPoint on a shape. clicked_without_modifying = true; SelectedPointIndex = closestCPIndex; SelectedShapeIndex = closestCPShapeIndex; clickedOnControlPoint = true; } else if (closestDistance < currentClickRange) //Determine if the user clicked close enough to a shape. { //User clicked on a generated point on a shape. List controlPoints = SEngines[closestShapeIndex].ControlPoints; //Note: compare the currentPoint's distance here because it's the actual mouse position. if (controlPoints.Count > closestPointIndex && current_point.Distance(controlPoints[closestPointIndex].Position) < currentClickRange) { //User clicked on a control point (on the "previous order" side of the point). clicked_without_modifying = true; SelectedPointIndex = closestPointIndex; SelectedShapeIndex = closestShapeIndex; clickedOnControlPoint = true; } else if (closestPointIndex > 0) { if (current_point.Distance(controlPoints[closestPointIndex - 1].Position) < currentClickRange) { //User clicked on a control point (on the "following order" side of the point). clicked_without_modifying = true; SelectedPointIndex = closestPointIndex - 1; SelectedShapeIndex = closestShapeIndex; clickedOnControlPoint = true; } else if (controlPoints.Count > 0 && current_point.Distance(controlPoints[controlPoints.Count - 1].Position) < currentClickRange) { //User clicked on a control point (on the "following order" side of the point). clicked_without_modifying = true; SelectedPointIndex = closestPointIndex - 1; SelectedShapeIndex = closestShapeIndex; clickedOnControlPoint = true; } } //Check for clicking on a non-control point. Don't do anything here if right clicked. if (!changing_tension && !clickedOnControlPoint && closestShapeIndex > -1 && closestPointIndex > -1 && SEngines.Count > closestShapeIndex) { //User clicked on a non-control point on a shape. //Determine if the currently active tool matches the clicked on shape's corresponding tool, and if not, switch to it. if (ActivateCorrespondingTool(closestShapeIndex, true) != null) { //Pass on the event and its data to the newly activated tool. PintaCore.Tools.CurrentTool.DoMouseDown(canvas, args, point); //Don't do anything else here once the tool is switched and the event is passed on. return; } //The currently active tool matches the clicked on shape's corresponding tool. //Only create a new shape if the user isn't holding the control key down. if (!ctrlKey) { //Create a new ShapesModifyHistoryItem so that the adding of a control point can be undone. doc.History.PushNewItem(new ShapesModifyHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Point Added"))); controlPoints.Insert(closestPointIndex, new ControlPoint(new PointD(current_point.X, current_point.Y), DefaultMidPointTension)); } //These should be set after creating the history item. SelectedPointIndex = closestPointIndex; SelectedShapeIndex = closestShapeIndex; ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { UpdateToolbarSettings(activeEngine); } } } //Create a new shape if the user control + clicks on a shape or if the user simply clicks outside of any shapes. if (!changing_tension && (ctrlKey || (closestCPDistance >= currentClickRange && closestDistance >= currentClickRange))) { //Verify that the user clicked inside the image bounds or that the user is //holding the Ctrl key (to ignore the Image bounds and draw on the edge). if ((point.X == shape_origin.X && point.Y == shape_origin.Y) || ctrlKey) { PointD prevSelPoint; //First, store the position of the currently selected point. if (SelectedPoint != null && ctrlKey) { prevSelPoint = new PointD(SelectedPoint.Position.X, SelectedPoint.Position.Y); } else { //This doesn't matter, other than the fact that it gets set to a value in order for the code to build. prevSelPoint = new PointD(0d, 0d); } //Create a new ShapesHistoryItem so that the creation of a new shape can be undone. doc.History.PushNewItem(new ShapesHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Added"), doc.CurrentUserLayer.Surface.Clone(), doc.CurrentUserLayer, SelectedPointIndex, SelectedShapeIndex, false)); //Create the shape, add its starting points, and add it to SEngines. SEngines.Add(CreateShape(ctrlKey, clickedOnControlPoint, prevSelPoint)); //Select the new shape. SelectedShapeIndex = SEngines.Count - 1; ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { //Set the AntiAliasing. activeEngine.AntiAliasing = owner.UseAntialiasing; } StorePreviousSettings(); } } else if (clickedOnControlPoint) { //Since the user is not creating a new shape or control point but rather modifying an existing control point, it should be determined //whether the currently active tool matches the clicked on shape's corresponding tool, and if not, switch to it. if (ActivateCorrespondingTool(SelectedShapeIndex, true) != null) { //Pass on the event and its data to the newly activated tool. PintaCore.Tools.CurrentTool.DoMouseDown(canvas, args, point); //Don't do anything else here once the tool is switched and the event is passed on. return; } //The currently active tool matches the clicked on shape's corresponding tool. ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { UpdateToolbarSettings(activeEngine); } } //Determine if the user right clicks outside of any shapes (neither on their control points nor on their generated points). if ((closestCPDistance >= currentClickRange && closestDistance >= currentClickRange) && changing_tension) { clicked_without_modifying = true; } DrawActiveShape(false, false, true, shiftKey, false); } public virtual void HandleMouseUp(Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { is_drawing = false; changing_tension = false; DrawActiveShape(true, false, true, args.Event.IsShiftPressed(), false); } public virtual void HandleMouseMove(object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; current_point = new PointD(Utility.Clamp(point.X, 0, doc.ImageSize.Width - 1), Utility.Clamp(point.Y, 0, doc.ImageSize.Height - 1)); bool shiftKey = (args.Event.State & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask; if (shiftKey) { CalculateModifiedCurrentPoint(); } if (!is_drawing) { //Redraw the active shape to show a (temporary) highlighted control point (over any shape) when applicable. DrawActiveShape(false, false, true, shiftKey, false); } else { ControlPoint selPoint = SelectedPoint; //Make sure a control point is selected. if (selPoint != null) { if (clicked_without_modifying) { //Create a new ShapesModifyHistoryItem so that the modification of the shape can be undone. doc.History.PushNewItem( new ShapesModifyHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Modified"))); clicked_without_modifying = false; } List controlPoints = SelectedShapeEngine.ControlPoints; if (!changing_tension) { //Moving a control point. //Make sure the control point was moved. if (current_point.X != selPoint.Position.X || current_point.Y != selPoint.Position.Y) { MovePoint(controlPoints); } } else { //Changing a control point's tension. //Unclamp the mouse position when changing tension. current_point = new PointD(point.X, point.Y); //Calculate the new tension based off of the movement of the mouse that's //perpendicular to the previous and following control points. PointD curPoint = selPoint.Position; PointD prevPoint, nextPoint; //Calculate the previous control point. if (SelectedPointIndex > 0) { prevPoint = controlPoints[SelectedPointIndex - 1].Position; } else { //There is none. prevPoint = curPoint; } //Calculate the following control point. if (SelectedPointIndex < controlPoints.Count - 1) { nextPoint = controlPoints[SelectedPointIndex + 1].Position; } else { //There is none. nextPoint = curPoint; } //The x and y differences are used as factors for the x and y change in the mouse position. double xDiff = prevPoint.X - nextPoint.X; double yDiff = prevPoint.Y - nextPoint.Y; double totalDiff = xDiff + yDiff; //Calculate the midpoint in between the previous and following points. PointD midPoint = new PointD((prevPoint.X + nextPoint.X) / 2d, (prevPoint.Y + nextPoint.Y) / 2d); double xChange = 0d, yChange = 0d; //Calculate the x change in the mouse position. if (curPoint.X <= midPoint.X) { xChange = current_point.X - last_mouse_pos.X; } else { xChange = last_mouse_pos.X - current_point.X; } //Calculate the y change in the mouse position. if (curPoint.Y <= midPoint.Y) { yChange = current_point.Y - last_mouse_pos.Y; } else { yChange = last_mouse_pos.Y - current_point.Y; } //Update the control point's tension. //Note: the difference factors are to be inverted for x and y change because this is perpendicular motion. controlPoints[SelectedPointIndex].Tension += Math.Round(Utility.Clamp((xChange * yDiff + yChange * xDiff) / totalDiff, -1d, 1d)) / 50d; //Restrict the new tension to range from 0d to 1d. controlPoints[SelectedPointIndex].Tension = Utility.Clamp(selPoint.Tension, 0d, 1d); } DrawActiveShape(false, false, true, shiftKey, false); } } last_mouse_pos = current_point; } /// /// Draw the currently active shape. /// /// Whether to calculate the spatially organized /// points for mouse detection after drawing the shape. /// Whether to finalize the drawing. /// Whether to draw any hover point or selected point. /// Whether the shift key is being pressed. This is for width/height constraining/equalizing. /// Whether to prevent switching back to the old tool if a tool change is necessary. public void DrawActiveShape(bool calculateOrganizedPoints, bool finalize, bool drawHoverSelection, bool shiftKey, bool preventSwitchBack) { ShapeTool oldTool = BaseEditEngine.ActivateCorrespondingTool(SelectedShapeIndex, calculateOrganizedPoints); //First, determine if the currently active tool matches the shape's corresponding tool, and if not, switch to it. if (oldTool != null) { //The tool has switched, so call DrawActiveShape again but inside that tool. ((ShapeTool)PintaCore.Tools.CurrentTool).EditEngine.DrawActiveShape( calculateOrganizedPoints, finalize, drawHoverSelection, shiftKey, preventSwitchBack); //Afterwards, switch back to the old tool, unless specified otherwise. if (!preventSwitchBack) { ActivateCorrespondingTool(oldTool.ShapeType, true); } return; } //The currently active tool should now match the shape's corresponding tool. BeforeDraw(); ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine == null) { //No shape will be drawn; however, the hover point still needs to be drawn if drawHoverSelection is true. if (drawHoverSelection) { DrawTemporaryHoverPoint(); } } else { //Clear any temporary drawing, because something new will be drawn. activeEngine.DrawingLayer.Layer.Clear(); Rectangle dirty; //Determine if the drawing should be for finalizing the shape onto the image or drawing it temporarily. if (finalize) { dirty = DrawFinalized(activeEngine, true, shiftKey); } else { dirty = DrawUnfinalized(activeEngine, drawHoverSelection, shiftKey); } //Determine if the organized (spatially hashed) points should be generated. This is for mouse interaction detection after drawing. if (calculateOrganizedPoints) { OrganizePoints(activeEngine); } InvalidateAfterDraw(dirty); } } /// /// Do not call. Use DrawActiveShape. /// private void BeforeDraw() { //Clear the ToolLayer if it was used previously (e.g. for hover points when there was no active shape). PintaCore.Workspace.ActiveDocument.ToolLayer.Clear(); //Invalidate the old hover point bounds, if any. if (last_hover != null) { PintaCore.Workspace.Invalidate(last_hover.Value.ToGdkRectangle()); last_hover = null; } //Check to see if a new shape is selected. if (prev_selected_shape_index != SelectedShapeIndex) { //A new shape is selected, so clear the previous dirty Rectangle. last_dirty = null; prev_selected_shape_index = SelectedShapeIndex; } } /// /// Do not call. Use DrawActiveShape. /// private void DrawTemporaryHoverPoint() { Document doc = PintaCore.Workspace.ActiveDocument; //Since there is no active ShapeEngine, the ToolLayer's surface will be used to draw the hover point on. using (Context g = new Context(doc.ToolLayer.Surface)) { g.AppendPath(doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip(); CalculateHoverPoint(); //Draw the hover point. Note: the hover point has its own invalidation. DrawHoverPoint(g); } doc.ToolLayer.Hidden = false; } /// /// Do not call. Use DrawActiveShape. /// /// /// /// private Rectangle DrawFinalized(ShapeEngine engine, bool createHistoryItem, bool shiftKey) { Document doc = PintaCore.Workspace.ActiveDocument; //Finalize the shape onto the CurrentUserLayer. ImageSurface undoSurface = null; if (createHistoryItem) { //We only need to create a history item if there was a previous shape. if (engine.ControlPoints.Count > 0) { undoSurface = doc.CurrentUserLayer.Surface.Clone(); } } //Draw the finalized shape. Rectangle dirty = DrawShape(engine, doc.CurrentUserLayer, false, false); if (createHistoryItem) { //Make sure that the undo surface isn't null. if (undoSurface != null) { //Create a new ShapesHistoryItem so that the finalization of the shape can be undone. doc.History.PushNewItem(new ShapesHistoryItem(this, owner.Icon, ShapeName + " " + Catalog.GetString("Finalized"), undoSurface, doc.CurrentUserLayer, SelectedPointIndex, SelectedShapeIndex, false)); } } return dirty; } /// /// Do not call. Use DrawActiveShape. /// /// /// /// /// private Rectangle DrawUnfinalized(ShapeEngine engine, bool drawHoverSelection, bool shiftKey) { //Not finalizing the shape; drawing it on the temporary DrawingLayer. //Calculate the hover point unless told otherwise. if (drawHoverSelection) { CalculateHoverPoint(); } else { //Do not draw the hover point. Instead, reset the hover point. NOTE: this is necessary even though the hover point //is reset later. It affects the DrawShape call. hover_point = new PointD(-1d, -1d); hovered_pt_as_control_pt = -1; } //Draw the shape onto the temporary DrawingLayer. Rectangle dirty = DrawShape(engine, engine.DrawingLayer.Layer, true, drawHoverSelection); //Reset the hover point after each drawing. hover_point = new PointD(-1d, -1d); hovered_pt_as_control_pt = -1; return dirty; } /// /// Calculate the hover point, if any. Result is stored in hover_point. /// private void CalculateHoverPoint() { if (SEngines.Count > 0) { hover_point = new PointD(-1d, -1d); int closestCPIndex, closestCPShapeIndex; ControlPoint closestControlPoint; double closestCPDistance; SEngines.FindClosestControlPoint(current_point, out closestCPShapeIndex, out closestCPIndex, out closestControlPoint, out closestCPDistance); int closestShapeIndex, closestPointIndex; PointD closestPoint; double closestDistance; OrganizedPointCollection.FindClosestPoint(SEngines, current_point, out closestShapeIndex, out closestPointIndex, out closestPoint, out closestDistance); double currentClickRange = ShapeClickStartingRange + BrushWidth * ShapeClickThicknessFactor; List controlPoints = SEngines[closestShapeIndex].ControlPoints; //Determine if the closest ControlPoint is within the expected click range. if (closestControlPoint != null && closestCPDistance < currentClickRange) { //User clicked directly on a ControlPoint on a shape. hover_point.X = closestControlPoint.Position.X; hover_point.Y = closestControlPoint.Position.Y; hovered_pt_as_control_pt = closestCPIndex; } else if (closestDistance < currentClickRange) //Determine if the user is hovering the mouse close enough to a shape. { //User is hovering over a generated point on a shape. if (controlPoints.Count > closestPointIndex) { //Note: compare the currentPoint's distance here because it's the actual mouse position. if (current_point.Distance(controlPoints[closestPointIndex].Position) < currentClickRange) { //Mouse hovering over a control point (on the "previous order" side of the point). hover_point.X = controlPoints[closestPointIndex].Position.X; hover_point.Y = controlPoints[closestPointIndex].Position.Y; hovered_pt_as_control_pt = closestPointIndex; } else if (closestPointIndex > 0) { if (current_point.Distance(controlPoints[closestPointIndex - 1].Position) < currentClickRange) { //Mouse hovering over a control point (on the "following order" side of the point). hover_point.X = controlPoints[closestPointIndex - 1].Position.X; hover_point.Y = controlPoints[closestPointIndex - 1].Position.Y; hovered_pt_as_control_pt = closestPointIndex - 1; } } else if (controlPoints.Count > 0 && current_point.Distance(controlPoints[controlPoints.Count - 1].Position) < currentClickRange) { //Mouse hovering over a control point (on the "following order" side of the point). hovered_pt_as_control_pt = controlPoints.Count - 1; hover_point.X = controlPoints[hovered_pt_as_control_pt].Position.X; hover_point.Y = controlPoints[hovered_pt_as_control_pt].Position.Y; } } if (hover_point.X < 0d) { hover_point.X = closestPoint.X; hover_point.Y = closestPoint.Y; } } } } /// /// Do not call. Use DrawActiveShape. /// /// private void OrganizePoints(ShapeEngine engine) { Document doc = PintaCore.Workspace.ActiveDocument; //Organize the generated points for quick mouse interaction detection. //First, clear the previously organized points, if any. engine.OrganizedPoints.ClearCollection(); foreach (GeneratedPoint gp in engine.GeneratedPoints) { //For each generated point on the shape, calculate the spatial hashing for it and then store this information for later usage. engine.OrganizedPoints.StoreAndOrganizePoint(new OrganizedPoint(new PointD(gp.Position.X, gp.Position.Y), gp.ControlPointIndex)); } } private void InvalidateAfterDraw(Rectangle dirty) { Document doc = PintaCore.Workspace.ActiveDocument; //Inflate to accomodate for previously drawn control points, if any. int inflate = (int)(last_control_pt_size * 8d); dirty = dirty.Inflate(inflate, inflate); // Increase the size of the dirty rect to account for antialiasing. if (owner.UseAntialiasing) { dirty = dirty.Inflate(1, 1); } //Combine, clamp, and invalidate the dirty Rectangle. dirty = ((Rectangle?)dirty).UnionRectangles(last_dirty).Value; dirty = dirty.Clamp(); doc.Workspace.Invalidate(dirty.ToGdkRectangle()); last_dirty = dirty; } protected Rectangle DrawShape(ShapeEngine engine, Layer l, bool drawCP, bool drawHoverSelection) { Document doc = PintaCore.Workspace.ActiveDocument; Rectangle? dirty = null; ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { using (Context g = new Context(l.Surface)) { g.AppendPath(doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip(); g.Antialias = activeEngine.AntiAliasing ? Antialias.Subpixel : Antialias.None; g.SetDash(DashPatternBox.GenerateDashArray(activeEngine.DashPattern, activeEngine.BrushWidth), 0.0); g.LineWidth = activeEngine.BrushWidth; //Draw the shape. if (activeEngine.ControlPoints.Count > 0) { //Generate the points that make up the shape. activeEngine.GeneratePoints(activeEngine.BrushWidth); PointD[] points = activeEngine.GetActualPoints (); //Expand the invalidation rectangle as necessary. if (FillShape) { Color fill_color = StrokeShape ? activeEngine.FillColor : activeEngine.OutlineColor; dirty = dirty.UnionRectangles (g.FillPolygonal (points, fill_color)); } if (StrokeShape) { dirty = dirty.UnionRectangles(g.DrawPolygonal(points, activeEngine.OutlineColor)); } } g.SetDash(new double[] { }, 0.0); //Draw anything extra (that not every shape has), like arrows. DrawExtras(ref dirty, g, engine); if (drawCP) { DrawControlPoints(g, drawHoverSelection); } } } return dirty ?? new Rectangle(0d, 0d, 0d, 0d); } protected void DrawControlPoints(Context g, bool drawHoverSelection) { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { last_control_pt_size = Math.Min(activeEngine.BrushWidth + 1, 3); } else { last_control_pt_size = Math.Min(BrushWidth + 1, 3); } double controlPointOffset = (double)last_control_pt_size / 2d; if (activeEngine != null) { //Draw the control points for the active shape. if (drawHoverSelection) { ControlPoint selPoint = SelectedPoint; if (selPoint != null) { //Draw a ring around the selected point. g.FillStrokedEllipse( new Rectangle( selPoint.Position.X - controlPointOffset * 4d, selPoint.Position.Y - controlPointOffset * 4d, controlPointOffset * 8d, controlPointOffset * 8d), ToolControl.FillColor, ToolControl.StrokeColor, 1); } } List controlPoints = activeEngine.ControlPoints; //Determine if the shape has one or more points. if (controlPoints.Count > 0) { //Draw the control points for the shape. for (int i = 0; i < controlPoints.Count; ++i) { //Skip drawing the hovered control point. if (drawHoverSelection && hovered_pt_as_control_pt > -1 && hover_point.Distance(controlPoints[i].Position) < 1d) { continue; } //Draw each control point. g.FillStrokedEllipse( new Rectangle( controlPoints[i].Position.X - controlPointOffset, controlPoints[i].Position.Y - controlPointOffset, last_control_pt_size, last_control_pt_size), ToolControl.FillColor, ToolControl.StrokeColor, (int)last_control_pt_size); } } if (drawHoverSelection) { //Draw the hover point. DrawHoverPoint(g); } } } /// /// Draws the hover point, if any. /// /// protected void DrawHoverPoint(Context g) { ShapeEngine activeEngine = ActiveShapeEngine; if (activeEngine != null) { last_control_pt_size = Math.Min(activeEngine.BrushWidth + 1, 5); } else { last_control_pt_size = Math.Min(BrushWidth + 1, 5); } double controlPointOffset = (double)last_control_pt_size / 2d; //Verify that the user isn't changing the tension of a control point and that there is a hover point to draw. if (!changing_tension && hover_point.X > -1d) { Rectangle hoverOuterEllipseRect = new Rectangle( hover_point.X - controlPointOffset * 3d, hover_point.Y - controlPointOffset * 3d, controlPointOffset * 6d, controlPointOffset * 6d); g.FillStrokedEllipse(hoverOuterEllipseRect, hover_color, hover_color, 1); g.FillStrokedEllipse(new Rectangle( hover_point.X - controlPointOffset, hover_point.Y - controlPointOffset, last_control_pt_size, last_control_pt_size), hover_color, hover_color, (int)last_control_pt_size); hoverOuterEllipseRect = hoverOuterEllipseRect.Inflate(1, 1); //Since the hover point can be outside of the active shape's bounds (hovering over a different shape), a special //invalidation call needs to be made for the hover point in order to ensure its visibility at all times. PintaCore.Workspace.Invalidate(hoverOuterEllipseRect.ToGdkRectangle()); last_hover = hoverOuterEllipseRect; last_hover = last_hover.Value.Clamp(); } } /// /// Go through every editable shape and draw it. /// public void DrawAllShapes() { Document doc = PintaCore.Workspace.ActiveDocument; //Store the SelectedShapeIndex value for later restoration. int previousToolSI = SelectedShapeIndex; //Draw all of the shapes. for (SelectedShapeIndex = 0; SelectedShapeIndex < SEngines.Count; ++SelectedShapeIndex) { //Only draw the selected point for the selected shape. DrawActiveShape(true, false, previousToolSI == SelectedShapeIndex, false, true); } //Restore the previous SelectedShapeIndex value. SelectedShapeIndex = previousToolSI; //Determine if the currently active tool matches the shape's corresponding tool, and if not, switch to it. BaseEditEngine.ActivateCorrespondingTool(SelectedShapeIndex, false); //The currently active tool should now match the shape's corresponding tool. } /// /// Go through every editable shape not yet finalized and finalize it. /// protected void FinalizeAllShapes() { if (SEngines.Count == 0) return; Document doc = PintaCore.Workspace.ActiveDocument; ImageSurface undoSurface = doc.CurrentUserLayer.Surface.Clone(); int previousSelectedPointIndex = SelectedPointIndex; Rectangle? dirty = null; //Finalize all of the shapes. for (SelectedShapeIndex = 0; SelectedShapeIndex < SEngines.Count; ++SelectedShapeIndex) { //Get a reference to each shape's corresponding tool. ShapeTool correspondingTool = GetCorrespondingTool(SEngines[SelectedShapeIndex].ShapeType); if (correspondingTool != null) { //Finalize the now active shape using its corresponding tool's EditEngine. BaseEditEngine correspondingEngine = correspondingTool.EditEngine; correspondingEngine.SelectedShapeIndex = SelectedShapeIndex; correspondingEngine.BeforeDraw(); //Clear any temporary drawing, because something new will be drawn. SEngines[SelectedShapeIndex].DrawingLayer.Layer.Clear(); //Draw the current shape with the corresponding tool's EditEngine. dirty = dirty.UnionRectangles((Rectangle?)correspondingEngine.DrawFinalized( SEngines[SelectedShapeIndex], false, false)); } } //Make sure that the undo surface isn't null. if (undoSurface != null) { //Create a new ShapesHistoryItem so that the finalization of the shapes can be undone. doc.History.PushNewItem(new ShapesHistoryItem(this, owner.Icon, Catalog.GetString("Finalized"), undoSurface, doc.CurrentUserLayer, previousSelectedPointIndex, prev_selected_shape_index, true)); } if (dirty.HasValue) { InvalidateAfterDraw(dirty.Value); } // Ensure the ToolLayer gets hidden now that we're done with it doc.ToolLayer.Hidden = true; //Clear out all of the data. ResetShapes(); } /// /// Calculate the modified position of currentPoint such that the angle between the adjacent point /// (if any) and currentPoint is snapped to the closest angle out of a certain number of angles. /// protected void CalculateModifiedCurrentPoint() { ShapeEngine selEngine = SelectedShapeEngine; //Don't bother calculating a modified point if there is no selected shape. if (selEngine != null) { ControlPoint adjacentPoint; if (SelectedPointIndex > 0) { //Previous point. adjacentPoint = selEngine.ControlPoints[SelectedPointIndex - 1]; } else if (selEngine.ControlPoints.Count > 1) { //Previous point (looping around to the end) if there is more than 1 point. adjacentPoint = selEngine.ControlPoints[selEngine.ControlPoints.Count - 1]; } else { //Don't bother calculating a modified point because there is no reference point to align it with (there is only 1 point). return; } PointD dir = new PointD(current_point.X - adjacentPoint.Position.X, current_point.Y - adjacentPoint.Position.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((adjacentPoint.Position.X + len * Math.Cos(theta)), (adjacentPoint.Position.Y + len * Math.Sin(theta))); } } /// /// Resets the editable data. /// protected void ResetShapes() { SEngines = new ShapeEngineCollection(); //The fields are modified instead of the properties here because a redraw call is undesired (for speed/efficiency). SelectedPointIndex = -1; SelectedShapeIndex = -1; is_drawing = false; last_dirty = null; } /// /// Activates the corresponding tool to the given shapeIndex value if the tool is not already active, and then returns the previous tool /// if a tool switch has occurred or null otherwise. If a switch did occur and this was called in e.g. an event handler, it should most /// likely pass the event data on to the newly activated tool (accessing it using PintaCore.Tools.CurrentTool) and then return. /// /// The index of the shape in SEngines to find the corresponding tool to and switch to. /// Whether the tool switch is permanent or just temporary (for drawing). /// The *previous* tool if a tool switch has occurred or null otherwise. public static ShapeTool ActivateCorrespondingTool(int shapeIndex, bool permanentSwitch) { //First make sure that there is a validly selectable tool. if (shapeIndex > -1 && SEngines.Count > shapeIndex) { return ActivateCorrespondingTool(SEngines[shapeIndex].ShapeType, permanentSwitch); } //Let the caller know that the active tool has not been switched. return null; } /// /// Activates the corresponding tool to the given shapeType value if the tool is not already active, and then returns the previous tool /// if a tool switch has occurred or null otherwise. If a switch did occur and this was called in e.g. an event handler, it should most /// likely pass the event data on to the newly activated tool (accessing it using PintaCore.Tools.CurrentTool) and then return. /// /// The index of the shape in SEngines to find the corresponding tool to and switch to. /// Whether the tool switch is permanent or just temporary (for drawing). /// The *previous* tool if a tool switch has occurred or null otherwise. public static ShapeTool ActivateCorrespondingTool(ShapeTypes shapeType, bool permanentSwitch) { ShapeTool correspondingTool = GetCorrespondingTool(shapeType); //Verify that the corresponding tool is valid and that it doesn't match the currently active tool. if (correspondingTool != null && PintaCore.Tools.CurrentTool != correspondingTool) { ShapeTool oldTool = PintaCore.Tools.CurrentTool as ShapeTool; //The active tool needs to be switched to the corresponding tool. PintaCore.Tools.SetCurrentTool(correspondingTool); ShapeTool newTool = (ShapeTool)PintaCore.Tools.CurrentTool; //What happens next depends on whether the old tool was an editable ShapeTool. if (oldTool != null && oldTool.IsEditableShapeTool) { if (permanentSwitch) { //Set the new tool's active shape and point to the old shape and point. newTool.EditEngine.SelectedPointIndex = oldTool.EditEngine.SelectedPointIndex; newTool.EditEngine.SelectedShapeIndex = oldTool.EditEngine.SelectedShapeIndex; //Make sure neither tool thinks it is drawing anything. newTool.EditEngine.is_drawing = false; oldTool.EditEngine.is_drawing = false; } ShapeEngine activeEngine = newTool.EditEngine.ActiveShapeEngine; if (activeEngine != null) { newTool.EditEngine.UpdateToolbarSettings(activeEngine); } } else { if (permanentSwitch) { //Make sure that the new tool doesn't think it is drawing anything. newTool.EditEngine.is_drawing = false; } } //Let the caller know that the active tool has been switched. return oldTool; } //Let the caller know that the active tool has not been switched. return null; } /// /// Gets the corresponding tool to the given shape type and then returns that tool. /// /// The shape type to find the corresponding tool to. /// The corresponding tool to the given shape type. public static ShapeTool GetCorrespondingTool(ShapeTypes shapeType) { ShapeTool correspondingTool = null; //Get the corresponding BaseTool reference to the shape type. CorrespondingTools.TryGetValue(shapeType, out correspondingTool); return correspondingTool; } /// /// Copy the given shape's settings to the toolbar settings. Calls StorePreviousSettings. /// /// public virtual void UpdateToolbarSettings(ShapeEngine engine) { if (engine != null) { owner.UseAntialiasing = engine.AntiAliasing; //Update the DashPatternBox to represent the current shape's DashPattern. (dash_pattern_box.comboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = engine.DashPattern; OutlineColor = engine.OutlineColor.Clone(); FillColor = engine.FillColor.Clone(); BrushWidth = engine.BrushWidth; StorePreviousSettings(); } } /// /// Copy the previous settings to the toolbar settings. /// protected virtual void RecallPreviousSettings() { if (dash_pattern_box.comboBox != null) { (dash_pattern_box.comboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = prev_dash_pattern; } owner.UseAntialiasing = prev_antialiasing; BrushWidth = prev_brush_width; } /// /// Copy the toolbar settings to the previous settings. /// protected virtual void StorePreviousSettings() { if (dash_pattern_box.comboBox != null) { prev_dash_pattern = (dash_pattern_box.comboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text; } prev_antialiasing = owner.UseAntialiasing; prev_brush_width = BrushWidth; } /// /// Creates a new shape, adds its starting points, and returns it. /// /// /// /// protected abstract ShapeEngine CreateShape(bool ctrlKey, bool clickedOnControlPoint, PointD prevSelPoint); protected virtual void MovePoint(List controlPoints) { //Update the control point's position. controlPoints.ElementAt(SelectedPointIndex).Position = new PointD(current_point.X, current_point.Y); } protected virtual void DrawExtras(ref Rectangle? dirty, Context g, ShapeEngine engine) { } protected void AddLinePoints(bool ctrlKey, bool clickedOnControlPoint, ShapeEngine selEngine, PointD prevSelPoint) { PointD startingPoint; //Create the initial points of the shape. The second point will follow the mouse around until released. if (ctrlKey && clickedOnControlPoint) { startingPoint = prevSelPoint; clicked_without_modifying = false; } else { startingPoint = shape_origin; } selEngine.ControlPoints.Add(new ControlPoint(new PointD(startingPoint.X, startingPoint.Y), DefaultEndPointTension)); selEngine.ControlPoints.Add( new ControlPoint(new PointD(startingPoint.X + .01d, startingPoint.Y + .01d), DefaultEndPointTension)); SelectedPointIndex = 1; SelectedShapeIndex = SEngines.Count - 1; } protected void AddRectanglePoints(bool ctrlKey, bool clickedOnControlPoint, ShapeEngine selEngine, PointD prevSelPoint) { PointD startingPoint; //Create the initial points of the shape. The second point will follow the mouse around until released. if (ctrlKey && clickedOnControlPoint) { startingPoint = prevSelPoint; clicked_without_modifying = false; } else { startingPoint = shape_origin; } selEngine.ControlPoints.Add(new ControlPoint(new PointD(startingPoint.X, startingPoint.Y), 0.0)); selEngine.ControlPoints.Add( new ControlPoint(new PointD(startingPoint.X, startingPoint.Y + .01d), 0.0)); selEngine.ControlPoints.Add( new ControlPoint(new PointD(startingPoint.X + .01d, startingPoint.Y + .01d), 0.0)); selEngine.ControlPoints.Add( new ControlPoint(new PointD(startingPoint.X + .01d, startingPoint.Y), 0.0)); SelectedPointIndex = 2; SelectedShapeIndex = SEngines.Count - 1; } protected void MoveRectangularPoint(List controlPoints) { ShapeEngine selEngine = SelectedShapeEngine; if (selEngine != null && selEngine.Closed && controlPoints.Count == 4) { //Figure out the indeces of the surrounding points. The lowest point index should be 0 and the highest 3. int previousPointIndex = SelectedPointIndex - 1; int nextPointIndex = SelectedPointIndex + 1; int oppositePointIndex = SelectedPointIndex + 2; if (previousPointIndex < 0) { previousPointIndex = controlPoints.Count - 1; } if (nextPointIndex >= controlPoints.Count) { nextPointIndex = 0; oppositePointIndex = 1; } else if (oppositePointIndex >= controlPoints.Count) { oppositePointIndex = 0; } ControlPoint previousPoint = controlPoints.ElementAt(previousPointIndex); ControlPoint oppositePoint = controlPoints.ElementAt(oppositePointIndex); ControlPoint nextPoint = controlPoints.ElementAt(nextPointIndex); //Now that we know the indexed order of the points, we can align everything properly. if (SelectedPointIndex == 2 || SelectedPointIndex == 0) { //Control point visual order (counter-clockwise order always goes selectedPoint, previousPoint, oppositePoint, nextPoint, //where moving point == selectedPoint): // //static (opposite) point horizontally aligned point //vertically aligned point moving point //OR //moving point vertically aligned point //horizontally aligned point static (opposite) point //Update the previous control point's position. previousPoint.Position = new PointD(previousPoint.Position.X, current_point.Y); //Update the next control point's position. nextPoint.Position = new PointD(current_point.X, nextPoint.Position.Y); //Even though it's supposed to be static, just in case the points get out of order //(they do sometimes), update the opposite control point's position. oppositePoint.Position = new PointD(previousPoint.Position.X, nextPoint.Position.Y); } else { //Control point visual order (counter-clockwise order always goes selectedPoint, previousPoint, oppositePoint, nextPoint, //where moving point == selectedPoint): // //horizontally aligned point static (opposite) point //moving point vertically aligned point //OR //vertically aligned point moving point //static (opposite) point horizontally aligned point //Update the previous control point's position. previousPoint.Position = new PointD(current_point.X, previousPoint.Position.Y); //Update the next control point's position. nextPoint.Position = new PointD(nextPoint.Position.X, current_point.Y); //Even though it's supposed to be static, just in case the points get out of order //(they do sometimes), update the opposite control point's position. oppositePoint.Position = new PointD(nextPoint.Position.X, previousPoint.Position.Y); } } } } } pinta-1.6/Pinta.Tools/Dashes/0000775000175000017500000000000012474706675017232 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Dashes/DashPatternBox.cs0000664000175000017500000001612212474706675022451 0ustar00cameroncameron00000000000000// // DashPatternBox.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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; using Mono.Unix; namespace Pinta.Tools { public class DashPatternBox { private bool dashChangeSetup = false; //The number to multiply each dash and space character by when generating the dash pattern double[]. //This makes it easier to set the standard size of a single dash or space. private static double dashFactor = 1.0; private ToolBarLabel dashPatternLabel; private ToolItem dashPatternSep; public ToolBarComboBox comboBox; /// /// Sets up the DashPatternBox in the Toolbar. /// /// Note that the dash pattern change event response code must be created manually outside of the DashPatternBox /// (using the returned Gtk.ComboBox from the SetupToolbar method) so that each tool that uses it /// can react to the change in pattern according to its usage. /// /// Returns null if the DashPatternBox has already been setup; otherwise, returns the DashPatternBox itself. /// /// The Toolbar to add the DashPatternBox to. /// null if the DashPatternBox has already been setup; otherwise, returns the DashPatternBox itself. public Gtk.ComboBox SetupToolbar(Toolbar tb) { if (dashPatternSep == null) { dashPatternSep = new SeparatorToolItem(); } tb.AppendItem(dashPatternSep); if (dashPatternLabel == null) { dashPatternLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Dash"))); } tb.AppendItem(dashPatternLabel); if (comboBox == null) { comboBox = new ToolBarComboBox(100, 0, true, "-", " -", " --", " ---", " -", " -", " - --", " - - --------", " - - ---- - ----"); } tb.AppendItem(comboBox); if (dashChangeSetup) { return null; } else { dashChangeSetup = true; return comboBox.ComboBox; } } /// /// Generates a double[] given a string pattern that consists of any combination of dashes and spaces. /// /// The dash pattern string. /// The width of the brush. /// The double[] generated. public static double[] GenerateDashArray(string dashPattern, double brushWidth) { List dashList = new List(); //For each consecutive dash character, extent will increase by 1. //For each consecutive space character, extent will dicrease by 1. int extent = 0; /* The expected input for the dash pattern string is any combination of dashes and spaces; however, every character is allowed to * be entered. Only dash characters will count as dashes, and any non-dash character (including spaces, 'a', '$', '=', or etc.) will * be counted as if it were a space, so to speak. So, "-- - --- -" is considered the same as "--b-$---=-". * * This code goes through the string, character by character, counting up the number of consecutive dashes and spaces. Whenever a * series of one or more dashes or spaces (exclusively) is followed by the opposing type (e.g. "----" is then followed by ' '), * the extent as to how far the series went (how many consecutive characters were met; in this case, 4) is then added to the * resulting dashList. * * To understand this code, it is necessary to first understand how Cairo's dashing system works. I myself have only bothered to * understand it (as it can become slightly difficult) only to the extent as to which is necessary to be able to systematically * derive the resembling dash pattern array from the given string. Here are the rules that I have come up with that work: * * 1. Alternate the number of consecutive dashes and spaces. "--- - " would result in { 3.0, 2.0, 1.0, 1.0 }. * * 2. Every pattern must start with a dash representation and end with a space representation. If the pattern started * with a space and/or ended with a dash, use 0.0 as a placeholder (the result of a 0.0 will not be directly visual). * " ---- --" would thus result in { 0.0, 1.0, 4.0, 1.0, 2.0, 0.0 }. This order AND ending is mandatory; I don't * understand why, but I do know that this way it works perfectly well and that it wasn't working perfectly otherwise. * * Note: "extent" is only ever 0 at the very beginning; otherwise, it will always be > 0 or < 0. After the foreach loop, "extent" will * never be equal to 0, and the final series must be added onto the dash pattern array outside of the loop, thus tying off the loose end. */ foreach (char c in dashPattern) { if (c == '-') { //Dash character. if (extent >= 0) { ++extent; } else { //There were previously one or more non-dash characters. dashList.Add((double)-extent * brushWidth * dashFactor); extent = 1; } } else { //Non-dash character. if (extent == 0) { //Pattern is starting with a non-dash character. Resulting double[] pattern must end //with a dash representation for this to be accurate: 0.0 is merely a placeholder. dashList.Add(0.0); --extent; } else if (extent < 0) { --extent; } else { //There were previously one or more dash characters. dashList.Add((double)extent * brushWidth * dashFactor); extent = -1; } } } //At this point, extent != 0. if (extent > 0) { //extent > 0. Pattern ended with a dash character. dashList.Add((double)extent * brushWidth * dashFactor); //Resulting double[] pattern must end with a space representation for this to be accurate: 0.0 is merely a placeholder. dashList.Add(0.0); } else { //extent < 0. Pattern ended with a non-dash character. dashList.Add((double)-extent * brushWidth * dashFactor); } return dashList.ToArray(); } } } pinta-1.6/Pinta.Tools/.gitignore0000664000175000017500000000003312474706675020007 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.6/Pinta.Tools/Brushes/0000775000175000017500000000000012474706675017436 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Brushes/GridBrush.cs0000664000175000017500000000403512474706675021660 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 : BasePaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Grid"); } } public override double StrokeAlphaMultiplier { get { return 0.05; } } protected override Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, 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.6/Pinta.Tools/Brushes/CircleBrush.cs0000664000175000017500000000411012474706675022166 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 : BasePaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Circles"); } } public override double StrokeAlphaMultiplier { get { return 0.05; } } protected override Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, 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.6/Pinta.Tools/Brushes/SplatterBrush.cs0000664000175000017500000000521312474706675022570 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 : BasePaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Splatter"); } } public override double StrokeAlphaMultiplier { get { return 0.5; } } protected override Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, 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.FixedStrokeExtents (); g.Fill (); g.Restore (); return dirty.ToGdkRectangle (); } } } pinta-1.6/Pinta.Tools/Brushes/SquaresBrush.cs0000664000175000017500000000405212474706675022415 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 : BasePaintBrush { private static double theta = Math.PI / 2; public override string Name { get { return Mono.Unix.Catalog.GetString ("Squares"); } } protected override Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, 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.FixedStrokeExtents ().ToGdkRectangle (); } } } pinta-1.6/Pinta.Tools/Brushes/PlainBrush.cs0000664000175000017500000000470512474706675022042 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 : BasePaintBrush { public override string Name { get { return Mono.Unix.Catalog.GetString ("Normal"); } } public override int Priority { get { return -100; } } protected override Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, 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 && PintaCore.Workspace.ActiveWorkspace.PointInCanvas (new PointD(x,y))) { surface.Flush (); ColorBgra source = surface.GetColorBgraUnchecked (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 (); Gdk.Rectangle dirty = g.FixedStrokeExtents ().ToGdkRectangle (); // For some reason (?!) we need to inflate the dirty // rectangle for small brush widths in zoomed images dirty.Inflate (1, 1); return dirty; } } } pinta-1.6/Pinta.Tools/Properties/0000775000175000017500000000000012474707505020150 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Properties/AssemblyInfo.cs0000664000175000017500000000315212474707505023073 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.6.0.0")] [assembly: AssemblyFileVersion ("1.6.0.0")] [assembly: Addin ("DefaultTools", "1.6", Category = "Core")] [assembly: AddinName ("Default Tools")] [assembly: AddinDescription ("The default tools and brushes that ship with Pinta")] [assembly: AddinDependency ("Pinta", "1.6")] pinta-1.6/Pinta.Tools/Tools/0000775000175000017500000000000012474706675017123 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Tools/EllipseSelectTool.cs0000664000175000017500000000411312474706675023044 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 Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.EllipseSelect.png"), 9, 18); } } public override int Priority { get { return 13; } } protected override Rectangle DrawShape (Rectangle r, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; doc.Selection.CreateEllipseSelection(l.Surface, r); return r; } } } pinta-1.6/Pinta.Tools/Tools/GradientTool.cs0000664000175000017500000002016212474706675022046 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 Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Gradient.png"), 9, 18); } } 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; if (!doc.Workspace.PointInCanvas(point)) return; tracking = true; button = args.Event.Button; undo_surface = doc.CurrentUserLayer.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.CurrentUserLayerIndex)); } 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.6/Pinta.Tools/Tools/RectangleTool.cs0000664000175000017500000000574112474706675022223 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("Left click to draw a shape with the primary color." + "\nLeft click on a shape to add a control point." + "\nLeft click on a control point and drag to move it." + "\nRight click on a control point and drag to change its tension." + "\nHold Shift to snap to angles." + "\nUse arrow keys to move the selected control point." + "\nPress Ctrl + left/right arrows to select control points by order." + "\nPress Delete to delete the selected control point." + "\nPress Space to add a new control point at the mouse position." + "\nHold Ctrl while pressing Space to create the control point at the exact same position." + "\nHold Ctrl while left clicking on a control point to create a new shape at the exact same position." + "\nHold Ctrl while clicking outside of the image bounds to create a new shape starting at the edge." + "\nPress Enter to finalize the shape."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Rectangle.png"), 9, 18); } } public override int Priority{ get { return 41; } } public override BaseEditEngine.ShapeTypes ShapeType { get { return BaseEditEngine.ShapeTypes.ClosedLineCurveSeries; } } public RectangleTool() { EditEngine = new RectangleEditEngine(this); BaseEditEngine.CorrespondingTools.Add(ShapeType, this); } } } pinta-1.6/Pinta.Tools/Tools/MagicWandTool.cs0000664000175000017500000000637412474706675022154 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; using ClipperLibrary; using System.Collections.Generic; namespace Pinta.Tools { public class MagicWandTool : FloodTool { private Gtk.ToolItem selection_sep; private CombineMode combine_mode; public override Gdk.Key ShortcutKey { get { return Gdk.Key.S; } } public MagicWandTool() { LimitToSelection = false; } protected override void OnBuildToolBar(Gtk.Toolbar tb) { base.OnBuildToolBar(tb); if (selection_sep == null) selection_sep = new Gtk.SeparatorToolItem(); tb.AppendItem(selection_sep); PintaCore.Workspace.SelectionHandler.BuildToolbar(tb); } 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("Cursor.MagicWand.png"), 21, 10); } } public override int Priority { get { return 17; } } protected override void OnMouseDown(Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; combine_mode = PintaCore.Workspace.SelectionHandler.DetermineCombineMode (args); 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(); doc.PreviousSelection.Dispose (); doc.PreviousSelection = doc.Selection.Clone (); doc.Selection.SelectionPolygons.Clear (); SelectionModeHandler.PerformSelectionMode (combine_mode, polygonSet); doc.History.PushNewItem(undoAction); doc.Workspace.Invalidate(); } } } pinta-1.6/Pinta.Tools/Tools/FreeformShapeTool.cs0000664000175000017500000001615512474706675023046 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; private DashPatternBox dashPBox = new DashPatternBox(); private string dashPattern = "-"; 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"), 9, 18); } } 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); Gtk.ComboBox dpbBox = dashPBox.SetupToolbar(tb); if (dpbBox != null) { dpbBox.Changed += (o, e) => { dashPattern = dpbBox.ActiveText; }; } } #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.CurrentUserLayer.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; } 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)) { doc.Selection.Clip(g); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; g.SetDash(DashPatternBox.GenerateDashArray(dashPattern, BrushWidth), 0.0); if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); } else { g.MoveTo (x, y); } g.LineTo (x, y); path = g.CopyPath (); g.ClosePath (); g.LineWidth = BrushWidth; g.FillRule = FillRule.EvenOdd; if (FillShape && StrokeShape) { g.SetSourceColor (fill_color); g.FillPreserve (); g.SetSourceColor (outline_color); g.Stroke (); } else if (FillShape) { g.SetSourceColor (outline_color); g.FillPreserve(); g.SetSourceColor (outline_color); g.Stroke(); } else { g.SetSourceColor (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.Clear (); doc.ToolLayer.Hidden = true; ImageSurface surf = doc.CurrentUserLayer.Surface; using (Context g = new Context (surf)) { g.AppendPath (doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; g.SetDash(DashPatternBox.GenerateDashArray(dashPattern, BrushWidth), 0.0); if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); path = null; } g.ClosePath (); g.LineWidth = BrushWidth; g.FillRule = FillRule.EvenOdd; if (FillShape && StrokeShape) { g.SetSourceColor (fill_color); g.FillPreserve (); g.SetSourceColor (outline_color); g.Stroke (); } else if (FillShape) { g.SetSourceColor (outline_color); g.FillPreserve(); g.SetSourceColor (outline_color); g.Stroke(); } else { g.SetSourceColor (outline_color); g.Stroke (); } } if (surface_modified) PintaCore.History.PushNewItem (new SimpleHistoryItem (Icon, Name, undo_surface, doc.CurrentUserLayerIndex)); else if (undo_surface != null) (undo_surface as IDisposable).Dispose (); surface_modified = false; 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.6/Pinta.Tools/Tools/FloodTool.cs0000664000175000017500000002523712474706675021364 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; #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.CurrentUserLayer.Surface; using (var 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.GetColorBgraUnchecked (pos.X, pos.Y), tol, out boundingBox, currentRegion, LimitToSelection); 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.GetColorBgraUnchecked (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.6/Pinta.Tools/Tools/ZoomTool.cs0000664000175000017500000001322412474706675021236 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.6/Pinta.Tools/Tools/MoveSelectionTool.cs0000664000175000017500000000711012474706675023063 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; using ClipperLibrary; using System.Collections.Generic; namespace Pinta.Tools { public class MoveSelectionTool : BaseTransformTool { private SelectionHistoryItem hist; private List> original_selection; 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 ("Left click and drag the selection to move selection outline. Right click and drag the selection to rotate 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 Rectangle GetSourceRectangle () { Document doc = PintaCore.Workspace.ActiveDocument; return doc.Selection.SelectionPath.GetBounds().ToCairoRectangle(); } protected override void OnStartTransform () { base.OnStartTransform (); Document doc = PintaCore.Workspace.ActiveDocument; original_selection = new List> (doc.Selection.SelectionPolygons); hist = new SelectionHistoryItem (Icon, Name); hist.TakeSnapshot (); } protected override void OnUpdateTransform (Matrix transform) { base.OnUpdateTransform (transform); List> newSelectionPolygons = DocumentSelection.Transform (original_selection, transform); Document doc = PintaCore.Workspace.ActiveDocument; doc.Selection.SelectionClipper.Clear (); doc.Selection.SelectionPolygons = newSelectionPolygons; using (var g = new Cairo.Context (doc.CurrentUserLayer.Surface)) { doc.Selection.SelectionPath = g.CreatePolygonPath (DocumentSelection.ConvertToPolygonSet (newSelectionPolygons)); g.FillRule = FillRule.EvenOdd; g.AppendPath (doc.Selection.SelectionPath); } doc.ShowSelection = true; PintaCore.Workspace.Invalidate (); } protected override void OnFinishTransform () { base.OnFinishTransform (); if (hist != null) PintaCore.Workspace.ActiveDocument.History.PushNewItem (hist); hist = null; original_selection = null; } #endregion } } pinta-1.6/Pinta.Tools/Tools/EraserTool.cs0000664000175000017500000001004012474706675021524 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 () { } protected override void OnBuildToolBar(Toolbar tb) { base.OnBuildToolBar(tb); // Change the cursor when the BrushWidth is changed. brush_width.ComboBox.Changed += (sender, e) => SetCursor (DefaultCursor); } #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.Cursor DefaultCursor { get { int iconOffsetX, iconOffsetY; var icon = CreateIconWithShape ("Cursor.Eraser.png", CursorShape.Ellipse, BrushWidth, 8, 22, out iconOffsetX, out iconOffsetY); return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, icon, iconOffsetX, iconOffsetY); } } public override bool CursorChangesOnZoom { get { return true; } } 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; } 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.CurrentUserLayer.Surface; using (Context g = new Context (surf)) { g.AppendPath (doc.Selection.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.SetSourceColor (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)); if (doc.Workspace.IsPartiallyOffscreen (r)) { doc.Workspace.Invalidate (); } else { doc.Workspace.Invalidate (doc.ClampToImageSize (r)); } last_point = new Point (x, y); } #endregion } } pinta-1.6/Pinta.Tools/Tools/LassoSelectTool.cs0000664000175000017500000001211012474706675022524 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; using ClipperLibrary; using System.Collections.Generic; using System.Linq; namespace Pinta.Tools { public class LassoSelectTool : BaseTool { private bool is_drawing = false; private CombineMode combine_mode; private SelectionHistoryItem hist; private Path path; private List lasso_polygon = new List(); 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"), 9, 18); } } public override int Priority { get { return 9; } } #endregion protected override void OnBuildToolBar (Toolbar tb) { base.OnBuildToolBar (tb); PintaCore.Workspace.SelectionHandler.BuildToolbar (tb); } #region Mouse Handlers protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { if (is_drawing) return; hist = new SelectionHistoryItem (Icon, Name); hist.TakeSnapshot (); combine_mode = PintaCore.Workspace.SelectionHandler.DetermineCombineMode (args); path = null; is_drawing = true; var doc = PintaCore.Workspace.ActiveDocument; doc.PreviousSelection.Dispose (); doc.PreviousSelection = doc.Selection.Clone(); } 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.SelectionLayer.Surface; using (Context g = new Context (surf)) { g.Antialias = Antialias.Subpixel; if (path != null) { g.AppendPath (path); (path as IDisposable).Dispose (); } else { g.MoveTo (x, y); } g.LineTo (x, y); lasso_polygon.Add(new IntPoint((long)x, (long)y)); path = g.CopyPath (); g.FillRule = FillRule.EvenOdd; g.ClosePath (); doc.Selection.SelectionPath = g.CopyPath (); } doc.Selection.SelectionPolygons.Clear (); doc.Selection.SelectionPolygons.Add (lasso_polygon.ToList ()); SelectionModeHandler.PerformSelectionMode (combine_mode, DocumentSelection.ConvertToPolygonSet (doc.Selection.SelectionPolygons)); doc.Workspace.Invalidate (); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; ImageSurface surf = doc.SelectionLayer.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 (); doc.Selection.SelectionPath = g.CopyPath (); } doc.Selection.SelectionPolygons.Clear (); doc.Selection.SelectionPolygons.Add(lasso_polygon.ToList()); SelectionModeHandler.PerformSelectionMode (combine_mode, DocumentSelection.ConvertToPolygonSet (doc.Selection.SelectionPolygons)); doc.Workspace.Invalidate (); if (hist != null) { doc.History.PushNewItem (hist); hist = null; } lasso_polygon.Clear(); is_drawing = false; } #endregion } } pinta-1.6/Pinta.Tools/Tools/RectangleSelectTool.cs0000664000175000017500000000426012474706675023356 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 Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.RectangleSelect.png"), 9, 18); } } public override int Priority { get { return 5; } } protected override Rectangle DrawShape (Rectangle r, Layer l) { Document doc = PintaCore.Workspace.ActiveDocument; doc.Selection.CreateRectangleSelection(l.Surface, r); // Add some padding for invalidation return new Rectangle (r.X, r.Y, r.Width + 2, r.Height + 2); } } } pinta-1.6/Pinta.Tools/Tools/ColorPickerTool.cs0000664000175000017500000002101712474706675022525 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 System.Collections.Generic; using Cairo; using Mono.Unix; using Pinta.Core; namespace Pinta.Tools { public class ColorPickerTool : BaseTool { private int button_down = 0; private ToolBarDropDownButton tool_select; private ToolBarLabel tool_select_label; private ToolBarLabel sampling_label; private ToolBarDropDownButton sample_size; private ToolBarDropDownButton sample_type; private Gtk.ToolItem sample_sep; public ColorPickerTool () { Gtk.IconFactory fact = new Gtk.IconFactory (); fact.Add ("Toolbar.Sampling.1x1.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.Sampling.1x1.png"))); fact.Add ("Toolbar.Sampling.3x3.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.Sampling.3x3.png"))); fact.Add ("Toolbar.Sampling.5x5.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.Sampling.5x5.png"))); fact.Add ("Toolbar.Sampling.7x7.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.Sampling.7x7.png"))); fact.Add ("Toolbar.Sampling.9x9.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Toolbar.Sampling.9x9.png"))); fact.Add ("ResizeCanvas.Image.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("ResizeCanvas.Image.png"))); fact.Add ("Tools.ColorPicker.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.ColorPicker.png"))); fact.Add ("Tools.ColorPicker.PreviousTool.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.ColorPicker.PreviousTool.png"))); fact.Add ("Tools.Pencil.png", new Gtk.IconSet (PintaCore.Resources.GetIcon ("Tools.Pencil.png"))); fact.AddDefault (); } #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 { int iconOffsetX, iconOffsetY; var icon = CreateIconWithShape ("Cursor.ColorPicker.png", CursorShape.Rectangle, SampleSize, 7, 27, out iconOffsetX, out iconOffsetY); return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, icon, iconOffsetX, iconOffsetY); } } public override bool CursorChangesOnZoom { get { return true; } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.K; } } public override int Priority { get { return 31; } } private int SampleSize { get { if (sample_size != null) { return (int)sample_size.SelectedItem.Tag; } else { return 1; } } } private bool SampleLayerOnly { get { return (bool)sample_type.SelectedItem.Tag; } } #endregion #region ToolBar protected override void OnBuildToolBar (Gtk.Toolbar tb) { base.OnBuildToolBar (tb); if (sampling_label == null) sampling_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Sampling"))); tb.AppendItem (sampling_label); if (sample_size == null) { sample_size = new ToolBarDropDownButton (true); // Change the cursor when the SampleSize is changed. sample_size.SelectedItemChanged += (sender, e) => SetCursor (DefaultCursor); sample_size.AddItem (Catalog.GetString ("Single Pixel"), "Toolbar.Sampling.1x1.png", 1); sample_size.AddItem (Catalog.GetString ("3 x 3 Region"), "Toolbar.Sampling.3x3.png", 3); sample_size.AddItem (Catalog.GetString ("5 x 5 Region"), "Toolbar.Sampling.5x5.png", 5); sample_size.AddItem (Catalog.GetString ("7 x 7 Region"), "Toolbar.Sampling.7x7.png", 7); sample_size.AddItem (Catalog.GetString ("9 x 9 Region"), "Toolbar.Sampling.9x9.png", 9); } tb.AppendItem (sample_size); if (sample_type == null) { sample_type = new ToolBarDropDownButton (true); sample_type.AddItem (Catalog.GetString ("Layer"), "Menu.Layers.MergeLayerDown.png", true); sample_type.AddItem (Catalog.GetString ("Image"), "ResizeCanvas.Image.png", false); } tb.AppendItem (sample_type); if (sample_sep == null) sample_sep = new Gtk.SeparatorToolItem (); tb.AppendItem (sample_sep); if (tool_select_label == null) tool_select_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("After select"))); tb.AppendItem (tool_select_label); if (tool_select == null) { tool_select = new ToolBarDropDownButton (true); tool_select.AddItem (Catalog.GetString ("Do not switch tool"), "Tools.ColorPicker.png", 0); tool_select.AddItem (Catalog.GetString ("Switch to previous tool"), "Tools.ColorPicker.PreviousTool.png", 1); tool_select.AddItem (Catalog.GetString ("Switch to Pencil tool"), "Tools.Pencil.png", 2); } 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; var color = GetColorFromPoint (point); 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; var color = GetColorFromPoint (point); 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 ((int)tool_select.SelectedItem.Tag == 1) PintaCore.Tools.SetCurrentTool(PintaCore.Tools.PreviousTool); else if ((int)tool_select.SelectedItem.Tag == 2) PintaCore.Tools.SetCurrentTool(Catalog.GetString("Pencil")); } #endregion #region Private Methods private unsafe Color GetColorFromPoint (PointD point) { var pixels = GetPixelsFromPoint (point); fixed (ColorBgra* ptr = pixels) return ColorBgra.Blend (ptr, pixels.Length).ToCairoColor (); } private ColorBgra[] GetPixelsFromPoint (PointD point) { var doc = PintaCore.Workspace.ActiveDocument; var x = (int)point.X; var y = (int)point.Y; var size = SampleSize; var half = size / 2; // Short circuit for single pixel if (size == 1) return new ColorBgra[] { GetPixel (x, y) }; // Find the pixels we need (clamp to the size of the image) var rect = new Gdk.Rectangle (x - half, y - half, size, size); rect.Intersect (new Gdk.Rectangle (Gdk.Point.Zero, doc.ImageSize)); var pixels = new List (); for (int i = rect.Left; i <= rect.GetRight (); i++) for (int j = rect.Top; j <= rect.GetBottom (); j++) pixels.Add (GetPixel (i, j)); return pixels.ToArray (); } private ColorBgra GetPixel (int x, int y) { if (SampleLayerOnly) return PintaCore.Workspace.ActiveDocument.CurrentUserLayer.Surface.GetColorBgraUnchecked (x, y); else return PintaCore.Workspace.ActiveDocument.GetComputedPixel (x, y); } #endregion } } pinta-1.6/Pinta.Tools/Tools/PencilTool.cs0000664000175000017500000001411712474706675021526 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; protected uint mouse_button; 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"), 7, 24); } } 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 we are already drawing, ignore any additional mouse down events if (mouse_button > 0) return; surface_modified = false; undo_surface = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.Surface.Clone (); mouse_button = args.Event.Button; Color tool_color; if (mouse_button == 1) { tool_color = PintaCore.Palette.PrimaryColor; } else if (mouse_button == 3) { 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 (mouse_button == 1) { tool_color = PintaCore.Palette.PrimaryColor; } else if (mouse_button == 3) { 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.CurrentUserLayer.Surface; if (first_pixel && doc.Workspace.PointInCanvas (point)) { // 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.GetColorBgraUnchecked (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.Selection.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.SetSourceColor (tool_color); g.LineWidth = 1; g.LineCap = LineCap.Square; g.Stroke (); } } Gdk.Rectangle r = GetRectangleFromPoints (last_point, new Point (x, y)); doc.Workspace.Invalidate (doc.ClampToImageSize (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 (undo_surface != null) { if (surface_modified) doc.History.PushNewItem(new SimpleHistoryItem(Icon, Name, undo_surface, doc.CurrentUserLayerIndex)); else if (undo_surface != null) (undo_surface as IDisposable).Dispose(); } surface_modified = false; undo_surface = null; mouse_button = 0; } #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.6/Pinta.Tools/Tools/PaintBrushTool.cs0000664000175000017500000001500712474706675022372 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.Cursor DefaultCursor { get { int iconOffsetX, iconOffsetY; var icon = CreateIconWithShape ("Cursor.Paintbrush.png", CursorShape.Ellipse, BrushWidth, 8, 24, out iconOffsetX, out iconOffsetY); return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, icon, iconOffsetX, iconOffsetY); } } public override bool CursorChangesOnZoom { get { return true; } } public override Gdk.Key ShortcutKey { get { return Gdk.Key.B; } } public override int Priority { get { return 25; } } #endregion private BasePaintBrush default_brush; private BasePaintBrush active_brush; private ToolBarLabel brush_label; private ToolBarComboBox brush_combo_box; private Color stroke_color; private Point last_point; protected override void OnActivated () { base.OnActivated (); PintaCore.PaintBrushes.BrushAdded += HandleBrushAddedOrRemoved; PintaCore.PaintBrushes.BrushRemoved += HandleBrushAddedOrRemoved; } protected override void OnDeactivated (BaseTool newTool) { base.OnDeactivated (newTool); PintaCore.PaintBrushes.BrushAdded -= HandleBrushAddedOrRemoved; PintaCore.PaintBrushes.BrushRemoved -= HandleBrushAddedOrRemoved; } protected override void OnBuildToolBar (Toolbar tb) { base.OnBuildToolBar (tb); // Change the cursor when the BrushWidth is changed. brush_width.ComboBox.Changed += (sender, e) => SetCursor (DefaultCursor); tb.AppendItem (new Gtk.SeparatorToolItem ()); 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 = (BasePaintBrush)brush_combo_box.Model.GetValue (iter, 1); } else { active_brush = default_brush; } }; RebuildBrushComboBox (); } tb.AppendItem (brush_label); tb.AppendItem (brush_combo_box); } /// /// Rebuild the list of brushes when a brush is added or removed. /// private void HandleBrushAddedOrRemoved (object sender, BrushEventArgs e) { RebuildBrushComboBox (); } /// /// Rebuild the list of brushes. /// private void RebuildBrushComboBox () { brush_combo_box.Model.Clear (); default_brush = null; foreach (var brush in PintaCore.PaintBrushes) { if (default_brush == null) default_brush = (BasePaintBrush)brush; brush_combo_box.Model.AppendValues (brush.Name, brush); } brush_combo_box.ComboBox.Active = 0; } #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) { stroke_color = PintaCore.Palette.PrimaryColor; } else if (mouse_button == 3) { stroke_color = PintaCore.Palette.SecondaryColor; } else { last_point = point_empty; return; } // TODO: also multiply by pressure stroke_color = new Color (stroke_color.R, stroke_color.G, stroke_color.B, stroke_color.A * active_brush.StrokeAlphaMultiplier); 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; var surf = doc.CurrentUserLayer.Surface; var invalidate_rect = Gdk.Rectangle.Zero; var brush_width = BrushWidth; using (var g = new Context (surf)) { g.AppendPath (doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Clip (); g.Antialias = UseAntialiasing ? Antialias.Subpixel : Antialias.None; g.LineWidth = brush_width; g.LineJoin = LineJoin.Round; g.LineCap = BrushWidth == 1 ? LineCap.Butt : LineCap.Round; g.SetSourceColor (stroke_color); invalidate_rect = active_brush.DoMouseMove (g, stroke_color, surf, x, y, last_point.X, last_point.Y); } // If we draw partially offscreen, Cairo gives us a bogus // dirty rectangle, so redraw everything. if (doc.Workspace.IsPartiallyOffscreen (invalidate_rect)) { doc.Workspace.Invalidate (); } else { doc.Workspace.Invalidate (doc.ClampToImageSize (invalidate_rect)); } last_point = new Point (x, y); } #endregion } } pinta-1.6/Pinta.Tools/Tools/ToolControl/0000775000175000017500000000000012474706675021401 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Tools/Tools/ToolControl/ToolControl.cs0000664000175000017500000000475512474706675024221 0ustar00cameroncameron00000000000000// // ToolControl.cs // // Author: // Olivier Dufour // // Copyright (c) 2011 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 Gdk; using Pinta.Core; namespace Pinta.Tools { public class ToolControl { public ToolControl (MouseHandler moveAction) { this.action = moveAction; Position = new PointD (-5, -5); } private const int Size = 6; private const int Tolerance = 10; public static readonly Cairo.Color FillColor = new Cairo.Color (0, 0, 1, 0.5); public static readonly Cairo.Color StrokeColor = new Cairo.Color (0, 0, 1, 0.7); private MouseHandler action; public PointD Position {get; set;} public bool IsInside (PointD point) { return (Math.Abs (point.X - Position.X) <= Tolerance) && (Math.Abs (point.Y - Position.Y) <= Tolerance); } public void HandleMouseMove (double x, double y, Gdk.ModifierType state) { action (x, y, state); } public void Render (Layer layer) { double scale_factor = (1.0 / PintaCore.Workspace.ActiveWorkspace.Scale); using (Context g = new Context (layer.Surface)) { var rect = new Cairo.Rectangle (Position.X - scale_factor * Size / 2, Position.Y - scale_factor * Size / 2, scale_factor * Size, scale_factor * Size); g.FillStrokedRectangle (rect, FillColor, StrokeColor, 1); } } } } pinta-1.6/Pinta.Tools/Tools/PaintBucketTool.cs0000664000175000017500000000713412474706675022526 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"), 21, 21); } } 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.CurrentUserLayer.Surface); g.Paint (); } SimpleHistoryItem hist = new SimpleHistoryItem (Icon, Name); hist.TakeSnapshotOfLayer (doc.CurrentUserLayer); 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.Height, y => { int stencil_width = stencil.Width; for (int x = 0; x < stencil_width; ++x) { if (stencil.GetUnchecked (x, y)) { surf.SetColorBgraUnchecked (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.6/Pinta.Tools/Tools/ShapeTool.cs0000664000175000017500000001065212474706675021354 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; using System.Collections.Generic; namespace Pinta.Tools { public class ShapeTool : BaseTool { public BaseEditEngine EditEngine; 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 public override Gdk.Key ShortcutKey { get { return Gdk.Key.O; } } protected override bool ShowAntialiasingButton { get { return true; } } public virtual BaseEditEngine.ShapeTypes ShapeType { get { return BaseEditEngine.ShapeTypes.ClosedLineCurveSeries; } } #endregion protected override void OnBuildToolBar(Gtk.Toolbar tb) { base.OnBuildToolBar(tb); EditEngine.HandleBuildToolBar(tb); } protected override void OnMouseDown(Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { EditEngine.HandleMouseDown(canvas, args, point); } protected override void OnMouseUp(Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { EditEngine.HandleMouseUp(canvas, args, point); } protected override void OnMouseMove(object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { EditEngine.HandleMouseMove(o, args, point); } protected override void OnActivated() { EditEngine.HandleActivated(); base.OnActivated(); } protected override void OnDeactivated(BaseTool newTool) { EditEngine.HandleDeactivated(newTool); base.OnDeactivated(newTool); } protected override void AfterSave() { EditEngine.HandleAfterSave(); base.AfterSave(); } protected override void OnCommit() { EditEngine.HandleCommit(); base.OnCommit(); } protected override void OnKeyDown(Gtk.DrawingArea canvas, Gtk.KeyPressEventArgs args) { if (!EditEngine.HandleKeyDown(canvas, args)) { base.OnKeyDown(canvas, args); } } protected override void OnKeyUp(Gtk.DrawingArea canvas, Gtk.KeyReleaseEventArgs args) { if (!EditEngine.HandleKeyUp(canvas, args)) { base.OnKeyUp(canvas, args); } } public override bool TryHandleUndo() { if (!EditEngine.HandleBeforeUndo()) { return base.TryHandleUndo(); } else { return true; } } public override bool TryHandleRedo() { if (!EditEngine.HandleBeforeRedo()) { return base.TryHandleRedo(); } else { return true; } } public override void AfterUndo() { EditEngine.HandleAfterUndo(); base.AfterUndo(); } public override void AfterRedo() { EditEngine.HandleAfterRedo(); base.AfterRedo(); } } } pinta-1.6/Pinta.Tools/Tools/TextTool.cs0000664000175000017500000010745412474706675021247 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 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_cursor_bounds = Rectangle.Zero; //This is used to temporarily store the UserLayer's and TextLayer's previous ImageSurface states. private Cairo.ImageSurface text_undo_surface; private Cairo.ImageSurface user_undo_surface; private TextEngine undo_engine; // The selection from when editing started. This ensures that text doesn't suddenly disappear/appear // if the selection changes before the text is finalized. private DocumentSelection selection; private Gtk.IMMulticontext imContext; private TextLayout layout; private Rectangle CurrentTextBounds { get { return PintaCore.Workspace.ActiveDocument.CurrentUserLayer.textBounds; } set { PintaCore.Workspace.ActiveDocument.CurrentUserLayer.previousTextBounds = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.textBounds; PintaCore.Workspace.ActiveDocument.CurrentUserLayer.textBounds = value; } } private TextEngine CurrentTextEngine { get { return PintaCore.Workspace.HasOpenDocuments ? PintaCore.Workspace.ActiveDocument.CurrentUserLayer.tEngine : null; } set { PintaCore.Workspace.ActiveDocument.CurrentUserLayer.tEngine = value; } } private TextLayout CurrentTextLayout { get { if (layout.Engine != CurrentTextEngine) layout.Engine = CurrentTextEngine; return layout; } } //While this is true, text will not be finalized upon Surface.Clone calls. private bool ignoreCloneFinalizations = false; //Whether or not either (or both) of the Ctrl keys are pressed. private bool ctrlKey = false; //Store the most recent mouse position. private Point lastMousePosition = new Point(0, 0); //Whether or not the previous TextTool mouse cursor shown was the normal one. private bool previousMouseCursorNormal = true; public override string Name { get { return Catalog.GetString ("Text"); } } private string FinalizeName { get { return Catalog.GetString("Text - Finalize"); } } 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"), 16, 16); } } public Gdk.Cursor InvalidEditCursor { get { return new Gdk.Cursor(PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon("Menu.Edit.EraseSelection.png"), 8, 0); } } #region Constructor public TextTool () { cursor_hand = new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Pan.png"), 8, 8); imContext = new Gtk.IMMulticontext (); imContext.Commit += OnIMCommit; layout = new TextLayout (); } 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; } 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); tb.AppendItem (new SeparatorToolItem ()); 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 (); if (PintaCore.Workspace.HasOpenDocuments) { //Make sure the event handler is never added twice. PintaCore.Workspace.ActiveDocument.LayerCloned -= FinalizeText; //When an ImageSurface is Cloned, finalize the re-editable text (if applicable). PintaCore.Workspace.ActiveDocument.LayerCloned += FinalizeText; } } 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) { string text = size_combo.ComboBox.ActiveText; if (int.TryParse (text, out FontSize)) UpdateFont (); } private Pango.FontFamily FontFamily { get { return PintaCore.System.Fonts.GetFamily (font_combo.ComboBox.ActiveText); } } private int FontSize; 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 HandleSelectedLayerChanged(object sender, EventArgs e) { UpdateFont(); } private void UpdateFont () { if (CurrentTextEngine != null) { CurrentTextEngine.Alignment = Alignment; CurrentTextEngine.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; PintaCore.Layers.LayerAdded += HandleSelectedLayerChanged; PintaCore.Layers.LayerRemoved += HandleSelectedLayerChanged; PintaCore.Layers.SelectedLayerChanged += HandleSelectedLayerChanged; // We always start off not in edit mode is_editing = false; } protected override void OnCommit () { StopEditing(false); } protected override void OnDeactivated(BaseTool newTool) { base.OnDeactivated (newTool); // Stop listening for color change events PintaCore.Palette.PrimaryColorChanged -= HandlePintaCorePalettePrimaryColorChanged; PintaCore.Palette.SecondaryColorChanged -= HandlePintaCorePalettePrimaryColorChanged; PintaCore.Layers.LayerAdded -= HandleSelectedLayerChanged; PintaCore.Layers.LayerRemoved -= HandleSelectedLayerChanged; PintaCore.Layers.SelectedLayerChanged -= HandleSelectedLayerChanged; StopEditing(false); } #endregion #region Mouse Handlers protected override void OnMouseDown(DrawingArea canvas, ButtonPressEventArgs args, Cairo.PointD point) { ctrlKey = (args.Event.State & ModifierType.ControlMask) != 0; //Store the mouse position. Point pt = point.ToGdkPoint(); // Grab focus so we can get keystrokes PintaCore.Chrome.Canvas.GrabFocus(); if (selection != null) selection.Dispose (); selection = PintaCore.Workspace.ActiveDocument.Selection.Clone (); // A right click allows you to move the text around if (args.Event.Button == 3) { //The user is dragging text with the right mouse button held down, so track the mouse as it moves. tracking = true; //Remember the position of the mouse before the text is dragged. startMouseXY = point; startClickPoint = clickPoint; //Change the cursor to indicate that the text is being dragged. SetCursor(cursor_hand); return; } // The user clicked the left mouse button if (args.Event.Button == 1) { // If the user is [editing or holding down Ctrl] and clicked //within the text, move the cursor to the click location if ((is_editing || ctrlKey) && CurrentTextBounds.ContainsCorrect(pt)) { StartEditing(); //Change the position of the cursor to where the mouse clicked. TextPosition p = CurrentTextLayout.PointToTextPosition(pt); CurrentTextEngine.SetCursorPosition(p, true); //Redraw the text with the new cursor position. 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 switch (CurrentTextEngine.State) { // We were editing, save and stop case TextMode.Uncommitted: StopEditing(true); break; // We were editing, but nothing had been // keyed. Stop editing. case TextMode.Unchanged: StopEditing(false); break; } if (ctrlKey) { //Go through every UserLayer. foreach (UserLayer ul in PintaCore.Workspace.ActiveDocument.UserLayers) { //Check each UserLayer's editable text boundaries to see if they contain the mouse position. if (ul.textBounds.ContainsCorrect(pt)) { //The mouse clicked on editable text. //Change the current UserLayer to the Layer that contains the text that was clicked on. PintaCore.Workspace.ActiveDocument.SetCurrentUserLayer(ul); //The user is editing text now. is_editing = true; //Set the cursor in the editable text where the mouse was clicked. TextPosition p = CurrentTextLayout.PointToTextPosition(pt); CurrentTextEngine.SetCursorPosition(p, true); //Redraw the editable text with the cursor. RedrawText(true, true); //Don't check any more UserLayers - stop at the first UserLayer that has editable text containing the mouse position. return; } } } else { if (CurrentTextEngine.State == TextMode.NotFinalized) { //The user is making a new text and the old text hasn't been finalized yet. FinalizeText(); } if (!is_editing) { // Start editing at the cursor location clickPoint = pt; CurrentTextEngine.Clear(); clickPoint.Offset (0, -CurrentTextLayout.FontHeight/2); CurrentTextEngine.Origin = clickPoint; StartEditing(); RedrawText(true, true); } } } } protected override void OnMouseMove (object o, MotionNotifyEventArgs args, Cairo.PointD point) { ctrlKey = (args.Event.State & ModifierType.ControlMask) != 0; lastMousePosition = point.ToGdkPoint(); // 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)); CurrentTextEngine.Origin = clickPoint; RedrawText(true, true); } else { UpdateMouseCursor(); } } 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)); CurrentTextEngine.Origin = clickPoint; RedrawText (false, true); tracking = false; SetCursor (null); } } private void UpdateMouseCursor() { //Whether or not to show the normal text cursor. bool showNormalCursor = false; if (ctrlKey && PintaCore.Workspace.HasOpenDocuments) { //Go through every UserLayer. foreach (UserLayer ul in PintaCore.Workspace.ActiveDocument.UserLayers) { //Check each UserLayer's editable text boundaries to see if they contain the mouse position. if (ul.textBounds.ContainsCorrect(lastMousePosition)) { //The mouse is over editable text. showNormalCursor = true; } } } else { showNormalCursor = true; } if (showNormalCursor) { if (!previousMouseCursorNormal) { SetCursor(DefaultCursor); previousMouseCursorNormal = showNormalCursor; if (PintaCore.Workspace.HasOpenDocuments) RedrawText(is_editing, true); } } else { if (previousMouseCursorNormal) { SetCursor(InvalidEditCursor); previousMouseCursorNormal = showNormalCursor; RedrawText(is_editing, true); } } } #endregion #region Keyboard Handlers protected override void OnKeyDown (DrawingArea canvas, KeyPressEventArgs args) { if (!PintaCore.Workspace.HasOpenDocuments) { args.RetVal = false; return; } 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; ctrlKey = (args.Event.Key == Gdk.Key.Control_L || args.Event.Key == Gdk.Key.Control_R); UpdateMouseCursor (); // Assume that we are going to handle the key bool keyHandled = true; if (is_editing) { switch (args.Event.Key) { case Gdk.Key.BackSpace: CurrentTextEngine.PerformBackspace(); break; case Gdk.Key.Delete: CurrentTextEngine.PerformDelete(); break; case Gdk.Key.KP_Enter: case Gdk.Key.Return: CurrentTextEngine.PerformEnter(); break; case Gdk.Key.Left: CurrentTextEngine.PerformLeft((modifier & Gdk.ModifierType.ControlMask) != 0, (modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.Right: CurrentTextEngine.PerformRight((modifier & Gdk.ModifierType.ControlMask) != 0, (modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.Up: CurrentTextEngine.PerformUp((modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.Down: CurrentTextEngine.PerformDown((modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.Home: CurrentTextEngine.PerformHome((modifier & Gdk.ModifierType.ControlMask) != 0, (modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.End: CurrentTextEngine.PerformEnd((modifier & Gdk.ModifierType.ControlMask) != 0, (modifier & Gdk.ModifierType.ShiftMask) != 0); break; case Gdk.Key.Next: case Gdk.Key.Prior: break; case Gdk.Key.Escape: StopEditing(false); return; case Gdk.Key.Insert: if (modifier.IsShiftPressed ()) { Gtk.Clipboard cb = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)); CurrentTextEngine.PerformPaste(cb); } else if (modifier.IsControlPressed ()) { Gtk.Clipboard cb = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)); CurrentTextEngine.PerformCopy(cb); } break; default: if (modifier.IsControlPressed ()) { if (args.Event.Key == Gdk.Key.z) { //Ctrl + Z for undo while editing. TryHandleUndo(); if (PintaCore.Workspace.ActiveDocument.History.CanUndo) PintaCore.Workspace.ActiveDocument.History.Undo(); return; } else if (args.Event.Key == Gdk.Key.i) { italic_btn.Toggle (); UpdateFont (); } else if (args.Event.Key == Gdk.Key.b) { bold_btn.Toggle (); UpdateFont (); } else if (args.Event.Key == Gdk.Key.u) { underscore_btn.Toggle (); UpdateFont (); } else if (args.Event.Key == Gdk.Key.a) { // Select all of the text. CurrentTextEngine.PerformHome (false, false); CurrentTextEngine.PerformEnd (true, true); } else { //Ignore command shortcut. return; } } else { keyHandled = TryHandleChar(args.Event); } 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; } protected override void OnKeyUp(DrawingArea canvas, KeyReleaseEventArgs args) { if (args.Event.Key == Gdk.Key.Control_L || args.Event.Key == Gdk.Key.Control_R || (args.Event.State & ModifierType.ControlMask) != 0) { ctrlKey = false; UpdateMouseCursor(); } } private bool TryHandleChar(EventKey eventKey) { // Try to handle it as a character if (imContext.FilterKeypress (eventKey)) { return true; } // We didn't handle the key return false; } private void OnIMCommit (object o, CommitArgs args) { try { var str = new StringBuilder (); for (int i = 0; i < args.Str.Length; i++) { char utf32Char; if (char.IsHighSurrogate (args.Str, i)) { utf32Char = (char)char.ConvertToUtf32 (args.Str, i); i++; } else { utf32Char = args.Str[i]; } str.Append (utf32Char.ToString ()); } CurrentTextEngine.InsertText (str.ToString ()); } finally { imContext.Reset (); } } #endregion #region Start/Stop Editing private void StartEditing () { is_editing = true; if (selection == null) selection = PintaCore.Workspace.ActiveDocument.Selection.Clone (); //Start ignoring any Surface.Clone calls from this point on (so that it doesn't start to loop). ignoreCloneFinalizations = true; //Store the previous state of the current UserLayer's and TextLayer's ImageSurfaces. user_undo_surface = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.Surface.Clone(); text_undo_surface = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.TextLayer.Layer.Surface.Clone(); //Store the previous state of the Text Engine. undo_engine = CurrentTextEngine.Clone(); //Stop ignoring any Surface.Clone calls from this point on. ignoreCloneFinalizations = false; } private void StopEditing(bool finalize) { if (!PintaCore.Workspace.HasOpenDocuments) return; if (!is_editing) return; is_editing = false; //Make sure that neither undo surface is null, the user is editing, and there are uncommitted changes. if (text_undo_surface != null && user_undo_surface != null && CurrentTextEngine.State == TextMode.Uncommitted) { Document doc = PintaCore.Workspace.ActiveDocument; RedrawText(false, true); //Start ignoring any Surface.Clone calls from this point on (so that it doesn't start to loop). ignoreCloneFinalizations = true; //Create a new TextHistoryItem so that the committing of text can be undone. doc.History.PushNewItem(new TextHistoryItem(Icon, Name, text_undo_surface.Clone(), user_undo_surface.Clone(), undo_engine.Clone(), doc.CurrentUserLayer)); //Stop ignoring any Surface.Clone calls from this point on. ignoreCloneFinalizations = false; //Now that the text has been committed, change its state. CurrentTextEngine.State = TextMode.NotFinalized; } RedrawText(false, true); if (finalize) { FinalizeText(); } } #endregion #region Text Drawing Methods /// /// Clears the entire TextLayer and redraw the previous text boundary. /// private void ClearTextLayer() { //Clear the TextLayer. PintaCore.Workspace.ActiveDocument.CurrentUserLayer.TextLayer.Layer.Surface.Clear(); //Redraw the previous text boundary. InflateAndInvalidate(PintaCore.Workspace.ActiveDocument.CurrentUserLayer.previousTextBounds); } /// /// Draws the text. /// /// Whether or not to show the mouse cursor in the drawing. /// Whether or not to use the TextLayer (as opposed to the Userlayer). private void RedrawText (bool showCursor, bool useTextLayer) { Rectangle r = CurrentTextLayout.GetLayoutBounds(); r.Inflate(10 + OutlineWidth, 10 + OutlineWidth); InflateAndInvalidate(r); CurrentTextBounds = r; Rectangle cursorBounds = Rectangle.Zero; Cairo.ImageSurface surf; if (!useTextLayer) { //Draw text on the current UserLayer's surface as finalized text. surf = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.Surface; } else { //Draw text on the current UserLayer's TextLayer's surface as re-editable text. surf = PintaCore.Workspace.ActiveDocument.CurrentUserLayer.TextLayer.Layer.Surface; ClearTextLayer(); } using (var g = new Cairo.Context (surf)) { g.Save (); // Show selection if on text layer if (useTextLayer) { // Selected Text Cairo.Color c = new Cairo.Color (0.7, 0.8, 0.9, 0.5); foreach (Rectangle rect in CurrentTextLayout.SelectionRectangles) g.FillRectangle (rect.ToCairoRectangle (), c); } if (selection != null) { g.AppendPath (selection.SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); } g.MoveTo (new Cairo.PointD (CurrentTextEngine.Origin.X, CurrentTextEngine.Origin.Y)); g.SetSourceColor (PintaCore.Palette.PrimaryColor); //Fill in background if (BackgroundFill) { using (var g2 = new Cairo.Context (surf)) { g2.FillRectangle(CurrentTextLayout.GetLayoutBounds().ToCairoRectangle(), PintaCore.Palette.SecondaryColor); } } // Draw the text if (FillText) Pango.CairoHelper.ShowLayout (g, CurrentTextLayout.Layout); if (FillText && StrokeText) { g.SetSourceColor (PintaCore.Palette.SecondaryColor); g.LineWidth = OutlineWidth; Pango.CairoHelper.LayoutPath (g, CurrentTextLayout.Layout); g.Stroke (); } else if (StrokeText) { g.SetSourceColor (PintaCore.Palette.PrimaryColor); g.LineWidth = OutlineWidth; Pango.CairoHelper.LayoutPath (g, CurrentTextLayout.Layout); g.Stroke (); } if (showCursor) { var loc = CurrentTextLayout.GetCursorLocation (); var color = PintaCore.Palette.PrimaryColor; g.Antialias = Cairo.Antialias.None; g.DrawLine (new Cairo.PointD (loc.X, loc.Y), new Cairo.PointD (loc.X, loc.Y + loc.Height), color, 1); cursorBounds = Rectangle.Inflate (loc, 2, 10); } g.Restore (); if (useTextLayer && (is_editing || ctrlKey) && !CurrentTextEngine.IsEmpty()) { //Draw the text edit rectangle. g.Save(); g.Translate(.5, .5); using (Cairo.Path p = g.CreateRectanglePath(CurrentTextBounds.ToCairoRectangle ())) { g.AppendPath(p); } g.LineWidth = 1; g.SetSourceColor (new Cairo.Color (1, 1, 1)); g.StrokePreserve(); g.SetDash(new double[] { 2, 4 }, 0); g.SetSourceColor (new Cairo.Color(1, .1, .2)); g.Stroke(); g.Restore(); } } InflateAndInvalidate(PintaCore.Workspace.ActiveDocument.CurrentUserLayer.previousTextBounds); PintaCore.Workspace.Invalidate(old_cursor_bounds); InflateAndInvalidate (r); PintaCore.Workspace.Invalidate(cursorBounds); old_cursor_bounds = cursorBounds; } /// /// Finalize re-editable text (if applicable). /// public void FinalizeText() { //If this is true, don't finalize any text - this is used to prevent the code from looping recursively. if (!ignoreCloneFinalizations) { //Only bother finalizing text if editing. if (CurrentTextEngine.State != TextMode.Unchanged) { //Start ignoring any Surface.Clone calls from this point on (so that it doesn't start to loop). ignoreCloneFinalizations = true; Document doc = PintaCore.Workspace.ActiveDocument; //Create a backup of everything before redrawing the text and etc. Cairo.ImageSurface oldTextSurface = doc.CurrentUserLayer.TextLayer.Layer.Surface.Clone(); Cairo.ImageSurface oldUserSurface = doc.CurrentUserLayer.Surface.Clone(); TextEngine oldTextEngine = CurrentTextEngine.Clone(); //Draw the text onto the UserLayer (without the cursor) rather than the TextLayer. RedrawText(false, false); //Clear the TextLayer. doc.CurrentUserLayer.TextLayer.Layer.Clear(); //Clear the text and its boundaries. CurrentTextEngine.Clear(); CurrentTextBounds = Gdk.Rectangle.Zero; //Create a new TextHistoryItem so that the finalization of the text can be undone. Construct //it on the spot so that it is more memory efficient if the changes are small. TextHistoryItem hist = new TextHistoryItem(Icon, FinalizeName, oldTextSurface, oldUserSurface, oldTextEngine, doc.CurrentUserLayer); //Add the new TextHistoryItem. doc.History.PushNewItem(hist); //Stop ignoring any Surface.Clone calls from this point on. ignoreCloneFinalizations = false; //Now that the text has been finalized, change its state. CurrentTextEngine.State = TextMode.Unchanged; if (selection != null) { selection.Dispose (); selection = null; } } } } private void InflateAndInvalidate(Rectangle passedRectangle) { //Create a new instance to preserve the passed Rectangle. Rectangle r = new Rectangle(passedRectangle.Location, passedRectangle.Size); r.Inflate(2, 2); PintaCore.Workspace.Invalidate(r); } #endregion #region Undo/Redo public override bool TryHandleUndo () { if (is_editing) { // commit a history item to let the undo action undo text history item StopEditing(false); } return false; } public override bool TryHandleRedo() { //Rather than redoing something, if the text has been edited then simply commit and do not redo. if (is_editing && CurrentTextEngine.State == TextMode.Uncommitted) { //Commit a new TextHistoryItem. StopEditing(false); return true; } return false; } #endregion #region Copy/Paste public override bool TryHandlePaste (Clipboard cb) { if (!is_editing) { return false; } if (!CurrentTextEngine.PerformPaste (cb)) { return false; } RedrawText (true, true); return true; } public override bool TryHandleCopy (Clipboard cb) { if (!is_editing) { return false; } CurrentTextEngine.PerformCopy (cb); return true; } public override bool TryHandleCut (Clipboard cb) { if (!is_editing) { return false; } CurrentTextEngine.PerformCut (cb); RedrawText (true, true); return true; } #endregion#endregion } } pinta-1.6/Pinta.Tools/Tools/SelectShapeTool.cs0000664000175000017500000002140412474706675022511 0ustar00cameroncameron00000000000000// // SelectShapeTool.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 SelectShapeTool : 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 SelectShapeTool() { } static SelectShapeTool () { 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.CurrentUserLayer.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.CurrentUserLayer, args.Event.IsShiftPressed ()); 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); // Increase the size of the dirty rect to account for antialiasing. if (UseAntialiasing) { dirty = dirty.Inflate (1, 1); } 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 SimpleHistoryItem (Icon, Name, undo_surface, PintaCore.Workspace.ActiveDocument.CurrentUserLayerIndex); } #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.6/Pinta.Tools/Tools/BaseTransformTool.cs0000664000175000017500000000716012474706675023062 0ustar00cameroncameron00000000000000// // BaseTransformTool.cs // // Author: // Volodymyr <${AuthorEmail}> // // Copyright (c) 2012 Volodymyr // // 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 { public abstract class BaseTransformTool : BaseTool { #region Members private readonly Matrix transform = new Matrix(); private Rectangle source_rect; private PointD original_point; private bool is_dragging = false; private bool is_rotating = false; #endregion #region Constructor /// /// Initializes a new instance of the class. /// public BaseTransformTool () { } #endregion #region Implemenation protected abstract Cairo.Rectangle GetSourceRectangle(); protected virtual void OnStartTransform() { source_rect = GetSourceRectangle(); transform.InitIdentity(); } protected virtual void OnUpdateTransform(Matrix transform) { } protected virtual void OnFinishTransform() { } protected override void OnMouseDown (Gtk.DrawingArea canvas, Gtk.ButtonPressEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if(is_dragging || is_rotating) return; original_point = point; if (!doc.Workspace.PointInCanvas(point)) return; if(args.Event.Button == GtkExtensions.MouseRightButton) { is_rotating = true; } else { is_dragging = true; } OnStartTransform(); } protected override void OnMouseMove (object o, Gtk.MotionNotifyEventArgs args, Cairo.PointD point) { if (!is_dragging && !is_rotating) return; PointD center = source_rect.GetCenter(); double dx = point.X - original_point.X; double dy = point.Y - original_point.Y; double cx1 = original_point.X - center.X; double cy1 = original_point.Y - center.Y; double cx2 = point.X - center.X; double cy2 = point.Y - center.Y; double angle = Math.Atan2(cy1, cx1) - Math.Atan2(cy2, cx2); transform.InitIdentity (); if (is_rotating) { transform.Translate(center.X, center.Y); transform.Rotate(-angle); transform.Translate(-center.X, -center.Y); } else { transform.Translate(dx, dy); } OnUpdateTransform (transform); } protected override void OnMouseUp (Gtk.DrawingArea canvas, Gtk.ButtonReleaseEventArgs args, Cairo.PointD point) { is_dragging = false; is_rotating = false; OnFinishTransform(); } #endregion } } pinta-1.6/Pinta.Tools/Tools/PanTool.cs0000664000175000017500000000551112474706675021030 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 ("Cursor.Pan.png"), 8, 8); } } 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.6/Pinta.Tools/Tools/RecolorTool.cs0000664000175000017500000001651112474706675021721 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. " + "Right click to reverse."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Recolor.png"), 9, 18); } } 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); tb.AppendItem (new Gtk.SeparatorToolItem ()); 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.CurrentUserLayer.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.GetRight (); i++) for (int j = roi.Y; j <= roi.GetBottom (); j++) { if (stencil[i, j]) continue; if (IsColorInTolerance (new_color, surf.GetColorBgraUnchecked (surf_data_ptr, surf_width, i, j))) *tmp_layer.GetPointAddressUnchecked (tmp_data_ptr, tmp_width, i, j) = AdjustColorDifference (new_color, old_color, surf.GetColorBgraUnchecked (surf_data_ptr, surf_width, i, j)); stencil[i, j] = true; } tmp_layer.MarkDirty (); using (Context g = new Context (surf)) { g.AppendPath (doc.Selection.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.6/Pinta.Tools/Tools/EllipseTool.cs0000664000175000017500000000570712474706675021716 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("Left click to draw a shape with the primary color." + "\nLeft click on a shape to add a control point." + "\nLeft click on a control point and drag to move it." + "\nRight click on a control point and drag to change its tension." + "\nHold Shift to snap to angles." + "\nUse arrow keys to move the selected control point." + "\nPress Ctrl + left/right arrows to select control points by order." + "\nPress Delete to delete the selected control point." + "\nPress Space to add a new control point at the mouse position." + "\nHold Ctrl while pressing Space to create the control point at the exact same position." + "\nHold Ctrl while left clicking on a control point to create a new shape at the exact same position." + "\nHold Ctrl while clicking outside of the image bounds to create a new shape starting at the edge." + "\nPress Enter to finalize the shape."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Ellipse.png"), 9, 18); } } public override int Priority { get { return 45; } } public override BaseEditEngine.ShapeTypes ShapeType { get { return BaseEditEngine.ShapeTypes.Ellipse; } } public EllipseTool () { EditEngine = new EllipseEditEngine(this); BaseEditEngine.CorrespondingTools.Add(ShapeType, this); } } } pinta-1.6/Pinta.Tools/Tools/BaseBrushTool.cs0000664000175000017500000001236312474706675022173 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 (brush_width != null) { 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.CurrentUserLayerIndex)); 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.CurrentUserLayer.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.6/Pinta.Tools/Tools/CloneStampTool.cs0000664000175000017500000001337312474706675022364 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 { int iconOffsetX, iconOffsetY; var icon = CreateIconWithShape ("Cursor.CloneStamp.png", CursorShape.Ellipse, BrushWidth, 16, 26, out iconOffsetX, out iconOffsetY); return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, icon, iconOffsetX, iconOffsetY); } } public override bool CursorChangesOnZoom { get { return true; } } 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 OnBuildToolBar(Gtk.Toolbar tb) { base.OnBuildToolBar(tb); // Change the cursor when the BrushWidth is changed. brush_width.ComboBox.Changed += (sender, e) => SetCursor (DefaultCursor); } 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.CurrentUserLayer.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.CurrentUserLayer.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.CurrentUserLayer.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, 16, 26); 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(BaseTool newTool) { origin = new Point (int.MinValue, int.MinValue); } } } pinta-1.6/Pinta.Tools/Tools/RoundedRectangleTool.cs0000664000175000017500000000601312474706675023535 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 { 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("Left click to draw a shape with the primary color." + "\nLeft click on a shape to add a control point." + "\nLeft click on a control point and drag to move it." + "\nRight click on a control point and drag to change its tension." + "\nHold Shift to snap to angles." + "\nUse arrow keys to move the selected control point." + "\nPress Ctrl + left/right arrows to select control points by order." + "\nPress Delete to delete the selected control point." + "\nPress Space to add a new control point at the mouse position." + "\nHold Ctrl while pressing Space to create the control point at the exact same position." + "\nHold Ctrl while left clicking on a control point to create a new shape at the exact same position." + "\nHold Ctrl while clicking outside of the image bounds to create a new shape starting at the edge." + "\nPress Enter to finalize the shape."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.RoundedRectangle.png"), 9, 18); } } public override int Priority { get { return 43; } } public override BaseEditEngine.ShapeTypes ShapeType { get { return BaseEditEngine.ShapeTypes.RoundedLineSeries; } } public RoundedRectangleTool() { EditEngine = new RoundedLineEditEngine(this); BaseEditEngine.CorrespondingTools.Add(ShapeType, this); } } } pinta-1.6/Pinta.Tools/Tools/MoveSelectedTool.cs0000664000175000017500000001230612474706675022671 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; using ClipperLibrary; using System.Collections.Generic; namespace Pinta.Tools { public class MoveSelectedTool : BaseTransformTool { private MovePixelsHistoryItem hist; private List> original_selection; private readonly Matrix original_transform = new Matrix (); 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 ("Left click and drag the selection to move selected content. Right click and drag the selection to rotate 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 Rectangle GetSourceRectangle () { Document doc = PintaCore.Workspace.ActiveDocument; return doc.Selection.SelectionPath.GetBounds().ToCairoRectangle(); } protected override void OnStartTransform () { base.OnStartTransform (); Document doc = PintaCore.Workspace.ActiveDocument; // If there is no selection, select the whole image. if (doc.Selection.SelectionPolygons.Count == 0) { doc.Selection.CreateRectangleSelection ( doc.SelectionLayer.Surface, new Cairo.Rectangle (0, 0, doc.ImageSize.Width, doc.ImageSize.Height)); } original_selection = new List> (doc.Selection.SelectionPolygons); original_transform.InitMatrix (doc.SelectionLayer.Transform); 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.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.SetSource (doc.CurrentUserLayer.Surface); g.Clip (); g.Paint (); } Cairo.ImageSurface surf = doc.CurrentUserLayer.Surface; using (Cairo.Context g = new Cairo.Context (surf)) { g.AppendPath (doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.Operator = Cairo.Operator.Clear; g.Fill (); } } PintaCore.Workspace.Invalidate (); } protected override void OnUpdateTransform (Matrix transform) { base.OnUpdateTransform (transform); List> newSelectionPolygons = DocumentSelection.Transform (original_selection, transform); Document doc = PintaCore.Workspace.ActiveDocument; doc.Selection.SelectionClipper.Clear (); doc.Selection.SelectionPolygons = newSelectionPolygons; using (var g = new Cairo.Context (doc.CurrentUserLayer.Surface)) { doc.Selection.SelectionPath = g.CreatePolygonPath (DocumentSelection.ConvertToPolygonSet (newSelectionPolygons)); g.FillRule = FillRule.EvenOdd; g.AppendPath (doc.Selection.SelectionPath); } doc.ShowSelection = true; doc.SelectionLayer.Transform.InitMatrix (original_transform); doc.SelectionLayer.Transform.Multiply (transform); PintaCore.Workspace.Invalidate (); } protected override void OnFinishTransform () { base.OnFinishTransform (); if (hist != null) PintaCore.History.PushNewItem (hist); hist = null; original_selection = null; original_transform.InitIdentity (); } #endregion protected override void OnCommit () { try { PintaCore.Workspace.ActiveDocument.FinishSelection (); } catch (Exception) { // Ignore an error where ActiveDocument fails. } } protected override void OnDeactivated(BaseTool newTool) { base.OnDeactivated (newTool); if (PintaCore.Workspace.HasOpenDocuments) { PintaCore.Workspace.ActiveDocument.FinishSelection (); } } } } pinta-1.6/Pinta.Tools/Tools/LineCurveTool.cs0000664000175000017500000000602412474706675022206 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; using System.Collections.Generic; using System.Linq; namespace Pinta.Tools { public class LineCurveTool : ShapeTool { public override string Name { get { return Catalog.GetString("Line/Curve"); } } public override string Icon { get { return "Tools.Line.png"; } } public override string StatusBarText { get { return Catalog.GetString ("Left click to draw a shape with the primary color." + "\nLeft click on a shape to add a control point." + "\nLeft click on a control point and drag to move it." + "\nRight click on a control point and drag to change its tension." + "\nHold Shift to snap to angles." + "\nUse arrow keys to move the selected control point." + "\nPress Ctrl + left/right arrows to select control points by order." + "\nPress Delete to delete the selected control point." + "\nPress Space to add a new control point at the mouse position." + "\nHold Ctrl while pressing Space to create the control point at the exact same position." + "\nHold Ctrl while left clicking on a control point to create a new shape at the exact same position." + "\nHold Ctrl while clicking outside of the image bounds to create a new shape starting at the edge." + "\nPress Enter to finalize the shape."); } } public override Gdk.Cursor DefaultCursor { get { return new Gdk.Cursor (PintaCore.Chrome.Canvas.Display, PintaCore.Resources.GetIcon ("Cursor.Line.png"), 9, 18); } } public override int Priority { get { return 39; } } public override BaseEditEngine.ShapeTypes ShapeType { get { return BaseEditEngine.ShapeTypes.OpenLineCurveSeries; } } public LineCurveTool() { EditEngine = new LineCurveEditEngine(this); BaseEditEngine.CorrespondingTools.Add(ShapeType, this); } } } pinta-1.6/Pinta.Tools/Tools/SelectTool.cs0000664000175000017500000002737112474706675021541 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; using System.Collections.Generic; using ClipperLibrary; namespace Pinta.Tools { public abstract class SelectTool : SelectShapeTool { private PointD reset_origin; private PointD shape_end; private ToolControl [] controls = new ToolControl [8]; private int? active_control; private SelectionHistoryItem hist; public override Gdk.Key ShortcutKey { get { return Gdk.Key.S; } } protected override bool ShowAntialiasingButton { get { return false; } } private Gdk.Cursor cursor_hand; bool is_hand_cursor = false; private CombineMode combine_mode; 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) { PintaCore.Workspace.SelectionHandler.BuildToolbar (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; Document doc = PintaCore.Workspace.ActiveDocument; hist = new SelectionHistoryItem(Icon, Name); hist.TakeSnapshot(); reset_origin = args.Event.GetPoint(); active_control = HandleResize (point); if (!active_control.HasValue) { combine_mode = PintaCore.Workspace.SelectionHandler.DetermineCombineMode(args); 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); doc.PreviousSelection.Dispose (); doc.PreviousSelection = doc.Selection.Clone(); doc.Selection.SelectionPolygons.Clear(); // The bottom right corner should be selected. active_control = 3; } is_drawing = true; } protected override void OnMouseUp (DrawingArea canvas, ButtonReleaseEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; // 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 (); if (hist != null) { hist.Dispose(); hist = null; } doc.ToolLayer.Clear (); } else { ReDraw(args.Event.State); if (doc.Selection != null) { SelectionModeHandler.PerformSelectionMode (combine_mode, DocumentSelection.ConvertToPolygonSet (doc.Selection.SelectionPolygons)); doc.Selection.selOrigin = shape_origin; doc.Selection.selEnd = shape_end; PintaCore.Workspace.Invalidate(); } if (hist != null) { doc.History.PushNewItem(hist); hist = null; } } is_drawing = false; active_control = null; // Update the mouse cursor. CheckHandlerCursor (point); } protected override void OnDeactivated(BaseTool newTool) { base.OnDeactivated (newTool); if (PintaCore.Workspace.HasOpenDocuments) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); } } protected override void OnCommit () { base.OnCommit (); if (PintaCore.Workspace.HasOpenDocuments) { Document doc = PintaCore.Workspace.ActiveDocument; doc.ToolLayer.Clear (); } } protected override void OnMouseMove (object o, MotionNotifyEventArgs args, Cairo.PointD point) { Document doc = PintaCore.Workspace.ActiveDocument; if (!is_drawing) { CheckHandlerCursor (point); return; } double x = Utility.Clamp(point.X, 0, doc.ImageSize.Width - 1); double y = Utility.Clamp(point.Y, 0, doc.ImageSize.Height - 1); controls[active_control.Value].HandleMouseMove (x, y, args.Event.State); ReDraw(args.Event.State); if (doc.Selection != null) { SelectionModeHandler.PerformSelectionMode (combine_mode, DocumentSelection.ConvertToPolygonSet (doc.Selection.SelectionPolygons)); PintaCore.Workspace.Invalidate(); } } protected void RefreshHandler () { 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); Rectangle dirty = DrawShape (rect, doc.SelectionLayer); updateHandler(); 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 int? HandleResize (PointD point) { for (int i = 0; i < controls.Length; ++i) { if (controls[i].IsInside (point)) return i; } return null; } public void DrawHandler (Layer layer) { layer.Clear (); foreach (ToolControl ct in controls) ct.Render (layer); } public void CheckHandlerCursor (PointD point) { foreach (ToolControl ct in controls) { if (ct.IsInside (point)) { if (!is_hand_cursor) { SetCursor (cursor_hand); is_hand_cursor = true; } return; } } if (is_hand_cursor) { SetCursor (DefaultCursor); is_hand_cursor = false; } } #endregion public override void AfterUndo() { base.AfterUndo(); Document doc = PintaCore.Workspace.ActiveDocument; if (PintaCore.Tools.CurrentTool == this) doc.ToolLayer.Hidden = false; shape_origin = doc.Selection.selOrigin; shape_end = doc.Selection.selEnd; updateHandler(); } public override void AfterRedo() { base.AfterRedo(); Document doc = PintaCore.Workspace.ActiveDocument; if (PintaCore.Tools.CurrentTool == this) doc.ToolLayer.Hidden = false; shape_origin = doc.Selection.selOrigin; shape_end = doc.Selection.selEnd; updateHandler(); } /// /// Update the selection handler positioning and drawing. /// private void updateHandler() { Document doc = PintaCore.Workspace.ActiveDocument; RefreshHandler(); DrawHandler(doc.ToolLayer); PintaCore.Workspace.Invalidate(); } } } pinta-1.6/readme.md0000664000175000017500000000507112474706675015433 0ustar00cameroncameron00000000000000#Pinta - [Simple Gtk# Paint Program](http://pinta-project.com/) [![Build Status](https://travis-ci.org/PintaProject/Pinta.svg)](https://travis-ci.org/PintaProject/Pinta) 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 bug tracker](https://bugs.launchpad.net/pinta/+filebug) - You can make suggestions on the [Future Ideas Page](http://pinta.uservoice.com/forums/105955-general) - You can help translate Pinta to your native language on [Launchpad translations](https://translations.launchpad.net/pinta) - 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. ##Windows Build and Installation Instructions: Be sure to install [Gtk# for Windows](http://download.mono-project.com/gtk-sharp/gtk-sharp-2.12.9-2.win32.msi) when building in Visual Studio. ##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.6/compile0000755000175000017500000001624512261335263015216 0ustar00cameroncameron00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pinta-1.6/xdg/0000775000175000017500000000000012474707543014426 5ustar00cameroncameron00000000000000pinta-1.6/xdg/pinta.10000664000175000017500000000165612474706675015640 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.6/xdg/Makefile.in0000664000175000017500000004051212474707537016500 0ustar00cameroncameron00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = xdg DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(desktop_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 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@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ 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) MAINTAINERCLEANFILES = Makefile.in 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) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^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,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(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|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 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 cscopelist-am \ ctags-am 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 tags-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.6/xdg/Pinta.ico0000664000175000017500000003535612474706675016216 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.6/xdg/pinta.desktop.in0000664000175000017500000000113112474706675017542 0ustar00cameroncameron00000000000000[Desktop Entry] _Name=Pinta _Comment=Easily create and edit images _GenericName=Image Editor _X-GNOME-FullName=Pinta Image Editor Exec=pinta %F 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.6/xdg/32x32/0000775000175000017500000000000012474706675015214 5ustar00cameroncameron00000000000000pinta-1.6/xdg/32x32/pinta.png0000664000175000017500000000321112474706675017032 0ustar00cameroncameron00000000000000PNG  IHDR szzsBIT|d@IDATXW]lWݹ3;&vbjbD7vJҠEBtH}6*V@"BBD*xp"RZZm*TEɮzwgv=;n74}HWj9|sof);Gw&շ.w';1(uv'V[(_BsJO wg6RUTo~ZmjYͤ_|@BGW| w"&ԑ5.HD wrT~nP{̪RPwCI064h XXjiu_VrfB<$9LC5sZ2H)$C߆a4 J)x^x}sE|I Bэ#[-}݃}LRJ(:6oތso;wny-W :эSͺP\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.6/xdg/96x96/0000775000175000017500000000000012474706675015240 5ustar00cameroncameron00000000000000pinta-1.6/xdg/96x96/pinta.png0000664000175000017500000001416712474706675017072 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ڴ(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) ~: 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.6/xdg/24x24/0000775000175000017500000000000012474706675015216 5ustar00cameroncameron00000000000000pinta-1.6/xdg/24x24/pinta.png0000664000175000017500000000222212474706675017035 0ustar00cameroncameron00000000000000PNG  IHDRw=sRGBbKGD pHYs B(xtIME  nIDATHT]hUfnf7M4i6ƥ&DdV@[*HG)U`5%>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 O&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/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.in $(srcdir)/Makefile.am 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 = AM_V_P = $(am__v_P_$(V)) am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(desktop_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = ${SHELL} /home/cameron/code/PintaProject/Pinta/missing aclocal-1.14 ALL_LINGUAS = af ar ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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 = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 AUTOCONF = ${SHELL} /home/cameron/code/PintaProject/Pinta/missing autoconf AUTOHEADER = ${SHELL} /home/cameron/code/PintaProject/Pinta/missing autoheader AUTOMAKE = ${SHELL} /home/cameron/code/PintaProject/Pinta/missing automake-1.14 AWK = mawk CATALOGS = af.gmo ar.gmo ast.gmo az.gmo be.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 eo.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 ka.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.6\" -DPACKAGE_STRING=\"pinta\ 1.6\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pinta\" -DVERSION=\"1.6\" -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 ast.gmo az.gmo be.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 eo.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 ka.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 INTLTOOL_V_MERGE = $(INTLTOOL__v_MERGE_$(V)) INTLTOOL_V_MERGE_OPTIONS = $(intltool__v_merge_options_$(V)) INTLTOOL__v_MERGE_ = $(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MERGE_0 = @echo " ITMRG " $@; LDFLAGS = LIBOBJS = LIBS = LTLIBOBJS = MAKEINFO = ${SHELL} /home/cameron/code/PintaProject/Pinta/missing makeinfo MKDIR_P = /bin/mkdir -p MKINSTALLDIRS = ./mkinstalldirs MONO = /usr/bin/mono MONO_CAIRO_CFLAGS = MONO_CAIRO_LIBS = -r:Mono.Cairo 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.6 PACKAGE_TARNAME = pinta PACKAGE_URL = PACKAGE_VERSION = 1.6 PATH_SEPARATOR = : PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG_LIBDIR = PKG_CONFIG_PATH = POFILES = af.po ar.po ast.po az.po be.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 eo.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 ka.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.6 XBUILD = /usr/bin/xbuild XGETTEXT = /usr/bin/xgettext abs_builddir = /home/cameron/code/PintaProject/Pinta/xdg abs_srcdir = /home/cameron/code/PintaProject/Pinta/xdg abs_top_builddir = /home/cameron/code/PintaProject/Pinta abs_top_srcdir = /home/cameron/code/PintaProject/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/PintaProject/Pinta/install-sh intltool__v_merge_options_ = $(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY)) intltool__v_merge_options_0 = -q libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var mandir = ${datarootdir}/man mkdir_p = $(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) MAINTAINERCLEANFILES = Makefile.in 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) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^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,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(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|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 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 cscopelist-am \ ctags-am 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 tags-am uninstall \ uninstall-am uninstall-desktopDATA uninstall-man \ uninstall-man1 %.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@ # 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.6/xdg/16x16/0000775000175000017500000000000012474706675015220 5ustar00cameroncameron00000000000000pinta-1.6/xdg/16x16/pinta.png0000664000175000017500000000106412474706675017042 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.6/xdg/Makefile.am0000664000175000017500000000061312474706675016467 0ustar00cameroncameron00000000000000desktopdir = $(datadir)/applications desktop_in_files = pinta.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ man_MANS = pinta.1 EXTRA_DIST = \ $(desktop_in_files) \ $(man_MANS) CLEANFILES = $(desktop_DATA) DISTCLEANFILES = $(desktop_DATA) MAINTAINERCLEANFILES = Makefile.in pinta-1.6/xdg/scalable/0000775000175000017500000000000012474706675016201 5ustar00cameroncameron00000000000000pinta-1.6/xdg/scalable/pinta.svg0000664000175000017500000006415112474706675020044 0ustar00cameroncameron00000000000000 image/svg+xml Graphics Category Jakub Steiner graphics category pixel vector editor draw paint http://tango-project.org pinta-1.6/Pinta.Effects/0000775000175000017500000000000012474706675016302 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Utilities/0000775000175000017500000000000012474706675020255 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Utilities/EffectHelper.cs0000664000175000017500000000672212474706675023147 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 Mono.Addins; using Mono.Addins.Localization; using Pinta.Core; using Pinta.Gui.Widgets; using System.ComponentModel; namespace Pinta { public static class EffectHelper { /// /// Launchs an effect dialog. /// /// /// The localizer for the effect add-in. This is used to fetch translations for the /// strings in the dialog. /// public static bool LaunchSimpleEffectDialog (BaseEffect effect, AddinLocalizer localizer) { return LaunchSimpleEffectDialog (effect, new AddinLocalizerWrapper (localizer)); } /// /// Launchs an effect dialog using Pinta's translation template. /// internal static bool LaunchSimpleEffectDialog (BaseEffect effect) { return LaunchSimpleEffectDialog (effect, new PintaLocalizer ()); } /// /// Helper function for the above methods. The IAddinLocalizer provides a generic way to /// get translated strings both for Pinta's effects and for effect add-ins. /// private static bool LaunchSimpleEffectDialog (BaseEffect effect, IAddinLocalizer localizer) { 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, localizer); // 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; } /// /// Wrapper around the AddinLocalizer of an add-in. /// private class AddinLocalizerWrapper : IAddinLocalizer { private AddinLocalizer localizer; public AddinLocalizerWrapper (AddinLocalizer localizer) { this.localizer = localizer; } public string GetString (string msgid) { return localizer.GetString (msgid); } }; } } pinta-1.6/Pinta.Effects/gtk-gui/0000775000175000017500000000000012474706675017651 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/gtk-gui/Pinta.Effects.LevelsDialog.cs0000664000175000017500000005516312474706675025214 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.6/Pinta.Effects/gtk-gui/gui.stetic0000664000175000017500000012557012474706675021664 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 pinta-1.6/Pinta.Effects/gtk-gui/generated.cs0000664000175000017500000000106712474706675022142 0ustar00cameroncameron00000000000000 // This file has been generated by the GUI designer. Do not modify. 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 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.6/Pinta.Effects/gtk-gui/Pinta.Effects.CurvesDialog.cs0000664000175000017500000002143412474706675025223 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.6/Pinta.Effects/CoreEffectsExtension.cs0000664000175000017500000001550012474706675022717 0ustar00cameroncameron00000000000000// // CoreEffectsExtension.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 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 SoftenPortraitEffect ()); PintaCore.Effects.RegisterEffect (new TileEffect ()); PintaCore.Effects.RegisterEffect (new TwistEffect ()); PintaCore.Effects.RegisterEffect (new UnfocusEffect ()); PintaCore.Effects.RegisterEffect (new ZoomBlurEffect ()); } public void Uninitialize () { // Remove the adjustments PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (AutoLevelEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (BlackAndWhiteEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (BrightnessContrastEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (CurvesEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (HueSaturationEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (InvertColorsEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (LevelsEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (PosterizeEffect)); PintaCore.Effects.UnregisterInstanceOfAdjustment (typeof (SepiaEffect)); // Remove the effects PintaCore.Effects.UnregisterInstanceOfEffect (typeof (AddNoiseEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (BulgeEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (CloudsEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (EdgeDetectEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (EmbossEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (FragmentEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (FrostedGlassEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (GaussianBlurEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (GlowEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (InkSketchEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (JuliaFractalEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (MandelbrotFractalEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (MedianEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (MotionBlurEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (OilPaintingEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (OutlineEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (PencilSketchEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (PixelateEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (PolarInversionEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (RadialBlurEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (RedEyeRemoveEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (ReduceNoiseEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (ReliefEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (SharpenEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (SoftenPortraitEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (TileEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (TwistEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (UnfocusEffect)); PintaCore.Effects.UnregisterInstanceOfEffect (typeof (ZoomBlurEffect)); } #endregion } } pinta-1.6/Pinta.Effects/.gitignore0000664000175000017500000000003312474706675020266 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.6/Pinta.Effects/Dialogs/0000775000175000017500000000000012474706675017664 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Dialogs/Effects.PosterizeDialog.cs0000664000175000017500000000747312474706675024710 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 Gtk; using Mono.Unix; using Pinta.Core; using Pinta.Gui.Widgets; namespace Pinta.Effects { public class PosterizeDialog : Gtk.Dialog { private HScaleSpinButtonWidget red_spinbox; private HScaleSpinButtonWidget green_spinbox; private HScaleSpinButtonWidget blue_spinbox; private CheckButton link_button; public int Red { get { return red_spinbox.ValueAsInt; } } public int Green { get { return green_spinbox.ValueAsInt; } } public int Blue { get { return blue_spinbox.ValueAsInt; } } public PosterizeData EffectData { get; set; } public PosterizeDialog () : base (Catalog.GetString ("Posterize"), PintaCore.Chrome.MainWindow, DialogFlags.Modal) { Build (); red_spinbox.ValueChanged += HandleValueChanged; green_spinbox.ValueChanged += HandleValueChanged; blue_spinbox.ValueChanged += HandleValueChanged; AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel }; DefaultResponse = Gtk.ResponseType.Ok; } private void HandleValueChanged (object sender, EventArgs e) { var widget = sender as HScaleSpinButtonWidget; if (link_button.Active) green_spinbox.Value = blue_spinbox.Value = red_spinbox.Value = widget.Value; UpdateEffectData (); } private void UpdateEffectData () { if (EffectData == null) return; EffectData.Red = red_spinbox.ValueAsInt; EffectData.Green = green_spinbox.ValueAsInt; EffectData.Blue = blue_spinbox.ValueAsInt; // Only fire event once, even if all properties have changed. EffectData.FirePropertyChanged ("_all_"); } private void InitSpinBox (HScaleSpinButtonWidget spinbox) { spinbox.DefaultValue = 16; spinbox.MaximumValue = 64; spinbox.MinimumValue = 2; VBox.Add (spinbox); } private void Build () { Resizable = false; VBox.WidthRequest = 400; VBox.BorderWidth = 6; VBox.Spacing = 6; red_spinbox = new HScaleSpinButtonWidget (); red_spinbox.Label = Catalog.GetString ("Red"); InitSpinBox (red_spinbox); green_spinbox = new HScaleSpinButtonWidget (); green_spinbox.Label = Catalog.GetString ("Green"); InitSpinBox (green_spinbox); blue_spinbox = new HScaleSpinButtonWidget (); blue_spinbox.Label = Catalog.GetString ("Blue"); InitSpinBox (blue_spinbox); link_button = new CheckButton (Catalog.GetString ("Linked")); link_button.Active = true; VBox.Add (link_button); AddButton (Stock.Cancel, ResponseType.Cancel); AddButton (Stock.Ok, ResponseType.Ok); DefaultWidth = 400; DefaultHeight = 300; ShowAll (); } } } pinta-1.6/Pinta.Effects/Dialogs/Effects.LevelsDialog.cs0000664000175000017500000003737412474706675024161 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 Mono.Unix; 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) : base (Catalog.GetString ("Levels Adjustment"), PintaCore.Chrome.MainWindow, DialogFlags.Modal) { 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.Workspace.ActiveDocument.Selection.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.6/Pinta.Effects/Dialogs/Effects.CurvesDialog.cs0000664000175000017500000002575212474706675024173 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 Gtk; using Mono.Unix; 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) : base (Catalog.GetString ("Curves"), PintaCore.Chrome.MainWindow, DialogFlags.Modal) { 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.SetSourceColor (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.SetSourceColor (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.6/Pinta.Effects/Effects/0000775000175000017500000000000012474706675017661 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Effects/UnfocusEffect.cs0000664000175000017500000000540012474706675022746 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 { [Caption ("Radius"), MinimumValue (1), MaximumValue (200)] public int Radius = 4; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/JuliaFractalEffect.cs0000664000175000017500000001017312474706675023670 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.GetBottom (); y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); 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 { [Caption ("Factor"), MinimumValue(1), MaximumValue(10)] public int Factor = 4; [Caption ("Quality"), MinimumValue(1), MaximumValue(5)] public int Quality = 2; [Caption ("Zoom"), MinimumValue(0), MaximumValue(50)] public int Zoom = 1; [Caption ("Angle")] public double Angle = 0; } } } pinta-1.6/Pinta.Effects/Effects/OutlineEffect.cs0000664000175000017500000000672412474706675022755 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 { [Caption ("Thickness"), MinimumValue (1), MaximumValue (200)] public int Thickness = 3; [Caption ("Intensity"), MinimumValue (0), MaximumValue (100)] public int Intensity = 50; [Skip] public override bool IsDefault { get { return Thickness == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/ReduceNoiseEffect.cs0000664000175000017500000000551312474706675023536 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 { [Caption ("Radius"), MinimumValue (1), MaximumValue (200)] public int Radius = 6; [Caption ("Strength"), MinimumValue (0), IncrementValue (0.01), DigitsValue (2), MaximumValue (1)] public double Strength = 0.4; } } } pinta-1.6/Pinta.Effects/Effects/RadialBlurEffect.cs0000664000175000017500000001123312474706675023346 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.GetBottom (); ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); ColorBgra* srcPtr = src.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); ++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 { [Caption ("Angle")] public Double Angle = 2; [Caption ("Offset")] public PointD Offset = new PointD (0, 0); [Caption ("Quality"), 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.6/Pinta.Effects/Effects/PolarInversionEffect.cs0000664000175000017500000000400112474706675024272 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 new 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.6/Pinta.Effects/Effects/EmbossEffect.cs0000664000175000017500000000724712474706675022567 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.GetBottom (); ++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.GetRight (); ++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 { [Caption ("Angle")] public double Angle = 0; } } } pinta-1.6/Pinta.Effects/Effects/FrostedGlassEffect.cs0000664000175000017500000001104612474706675023727 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.GetBottom (); int rectLeft = rect.Left; int rectRight = rect.GetRight (); 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 { [Caption ("Amount"), MinimumValue(1), MaximumValue(10)] public int Amount = 1; } } } pinta-1.6/Pinta.Effects/Effects/PencilSketchEffect.cs0000664000175000017500000000653312474706675023710 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.GetBottom (); ++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.GetRight (); ++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; [Caption ("Color Range"), MinimumValue (-20), MaximumValue (20)] public int ColorRange = 0; } } } pinta-1.6/Pinta.Effects/Effects/LocalHistogramEffect.cs0000664000175000017500000003715012474706675024243 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.GetBottom (); ++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.GetRight (); 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.GetBottom (); 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.GetRight (); 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.6/Pinta.Effects/Effects/MotionBlurEffect.cs0000664000175000017500000000667712474706675023437 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.GetBottom (); ++y) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); ++x) { int sampleCount = 0; 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; } } [Caption ("Angle")] public double Angle = 25; [Caption ("Distance"), MinimumValue (1), MaximumValue (200)] public int Distance = 10; [Caption ("Centered")] public bool Centered = true; } } } pinta-1.6/Pinta.Effects/Effects/OilPaintingEffect.cs0000664000175000017500000001136412474706675023547 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.GetBottom (); int rectLeft = rect.Left; int rectRight = rect.GetRight (); 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; [Caption ("Coarseness"), MinimumValue (3), MaximumValue (255)] public int Coarseness = 50; } } } pinta-1.6/Pinta.Effects/Effects/FragmentEffect.cs0000664000175000017500000000717512474706675023102 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; 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.GetBottom (); y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); 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 { [Caption ("Fragments"), MinimumValue (2), MaximumValue (50)] public int Fragments = 4; [Caption ("Distance"), MinimumValue (0), MaximumValue (100)] public int Distance = 8; [Caption ("Rotation")] public double Rotation = 0; } } } pinta-1.6/Pinta.Effects/Effects/PixelateEffect.cs0000664000175000017500000000721512474706675023105 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.GetRight (); int bottom = cell.GetBottom (); int top = cell.Top; ColorBgra colorTopLeft = src.GetColorBgraUnchecked (left, top); ColorBgra colorTopRight = src.GetColorBgraUnchecked (right, top); ColorBgra colorBottomLeft = src.GetColorBgraUnchecked (left, bottom); ColorBgra colorBottomRight = src.GetColorBgraUnchecked (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.GetBottom (); ++y) { int yEnd = y + 1; for (int x = rect.Left; x <= rect.GetRight (); ++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.GetRight (), cellRect.GetRight ()); yEnd = Math.Min (rect.GetBottom (), cellRect.GetBottom ()); 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; } y = yEnd; } } } #endregion } public class PixelateData : EffectData { [Caption ("Cell Size"), MinimumValue(1), MaximumValue(100)] public int CellSize = 2; } } pinta-1.6/Pinta.Effects/Effects/AddNoiseEffect.cs0000664000175000017500000001126412474706675023017 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 () { 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.GetBottom (); ++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 { [Caption ("Intensity"), MinimumValue (0), MaximumValue (100)] public int Intensity = 64; [Caption ("Color Saturation"), MinimumValue (0), MaximumValue (400)] public int ColorSaturation = 100; [Caption ("Coverage"), MinimumValue (0), DigitsValue (2), MaximumValue (100)] public double Coverage = 100.0; } } } pinta-1.6/Pinta.Effects/Effects/TileEffect.cs0000664000175000017500000001040612474706675022223 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.GetBottom (); y++) { float j = y - hh; ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); 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 { [Caption ("Rotation"), MinimumValue(-45), MaximumValue(45)] public double Rotation = 30; [Caption ("Tile Size"), MinimumValue(2), MaximumValue(200)] public int TileSize = 40; [Caption ("Intensity"), MinimumValue(-20), MaximumValue(20)] public int Intensity = 8; } } } pinta-1.6/Pinta.Effects/Effects/ReliefEffect.cs0000664000175000017500000000477712474706675022552 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 { [Caption ("Angle")] public double Angle = 45; } } pinta-1.6/Pinta.Effects/Effects/GlowEffect.cs0000664000175000017500000000527612474706675022247 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.GetBottom (); ++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 { [Caption ("Radius"), MinimumValue (1), MaximumValue (20)] public int Radius = 6; [Caption ("Brightness"), MinimumValue (-100), MaximumValue (100)] public int Brightness = 10; [Caption ("Contrast"), MinimumValue (-100), MaximumValue (100)] public int Contrast = 10; } } } pinta-1.6/Pinta.Effects/Effects/MedianEffect.cs0000664000175000017500000000436512474706675022532 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 { [Caption ("Radius"), MinimumValue (1), MaximumValue (200)] public int Radius = 10; [Caption ("Percentile"), MinimumValue (0), MaximumValue (100)] public int Percentile = 50; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/RedEyeRemoveEffect.cs0000664000175000017500000000467112474706675023670 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, new PintaLocalizer ()); // 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 { [Caption ("Tolerance"), 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.6/Pinta.Effects/Effects/TwistEffect.cs0000664000175000017500000000731412474706675022444 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.GetBottom (); 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.GetRight (); 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 { [Caption ("Amount"), MinimumValue (-100), MaximumValue (100)] public int Amount = 45; [Caption ("Antialias"), MinimumValue (0), MaximumValue (5)] public int Antialias = 2; } } } pinta-1.6/Pinta.Effects/Effects/GaussianBlurEffect.cs0000664000175000017500000001532612474706675023733 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); // 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.GetBottom (); ++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.GetRight (); ++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 { [Caption ("Radius"), MinimumValue (0), MaximumValue (200)] public int Radius = 2; [Skip] public override bool IsDefault { get { return Radius == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/CloudsEffect.cs0000664000175000017500000001736412474706675022571 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.GetBottom (); ++y) { ColorBgra* ptr = surface.GetPointAddressUnchecked(rect.Left, y); int dy = 2 * y - h; for (int x = rect.Left; x <= rect.GetRight (); ++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 ()); var blendOp = UserBlendOps.GetBlendOp ((BlendMode)CloudsData.BlendOps [Data.BlendMode], 1.0); 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; } } [Caption ("Scale"), MinimumValue (2), MaximumValue (1000)] public int Scale = 250; [Caption ("Power"), MinimumValue (0), MaximumValue (100)] public int Power = 50; [Skip] public static Dictionary BlendOps; [Skip] private static string defaultBlendOp; static CloudsData () { BlendOps = new Dictionary (); foreach (string name in UserBlendOps.GetAllBlendModeNames ()) { BlendOps.Add (name, UserBlendOps.GetBlendModeByName (name)); } defaultBlendOp = UserBlendOps.GetBlendModeName (Pinta.Core.BlendMode.Normal); } [StaticList ("BlendOps")] public string BlendMode = defaultBlendOp; [Caption ("Seed"), MinimumValue (0), MaximumValue (255)] public int Seed = 0; } } } pinta-1.6/Pinta.Effects/Effects/ZoomBlurEffect.cs0000664000175000017500000000753412474706675023107 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.GetBottom (); ++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.GetRight (); ++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 { [Caption ("Amount"), MinimumValue (0), MaximumValue (100)] public int Amount = 10; [Caption ("Offset")] public Gdk.Point Offset = new Gdk.Point (0, 0); [Skip] public override bool IsDefault { get { return Amount == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/WarpEffect.cs0000664000175000017500000001257512474706675022250 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 { [Caption ("Clamp")] Clamp, [Caption ("Wrap")] Wrap, [Caption ("Reflect")] Reflect, [Caption ("Primary")] Primary, [Caption ("Secondary")] Secondary, [Caption ("Transparent")] Transparent, [Caption ("Original")] Original } public abstract class WarpEffect : BaseEffect { public WarpData Data { get { return EffectData as WarpData; } } public WarpEffect () { EffectData = new WarpData (); } public override bool LaunchConfiguration () { return EffectHelper.LaunchSimpleEffectDialog (this); } 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) { var selection = PintaCore.LivePreview.RenderBounds; this.defaultRadius = Math.Min (selection.Width, selection.Height) * 0.5; this.defaultRadius2 = this.defaultRadius * this.defaultRadius; var x_center_offset = selection.Left + (selection.Width * (1.0 + Data.CenterOffset.X) * 0.5); var y_center_offset = selection.Top + (selection.Height * (1.0 + Data.CenterOffset.Y) * 0.5); 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.GetBottom (); y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (rect.Left, y); double relativeY = y - y_center_offset; for (int x = rect.Left; x <= rect.GetRight (); x++) { double relativeX = x - x_center_offset; 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 + x_center_offset); float sampleY = (float)(td.Y + y_center_offset); 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.GetColorBgraUnchecked (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 { [Caption ("Quality"), MinimumValue(1), MaximumValue(5)] public int Quality = 2; [Caption ("Center Offset")] public Cairo.PointD CenterOffset; public WarpEdgeBehavior EdgeBehavior = WarpEdgeBehavior.Wrap; } } } pinta-1.6/Pinta.Effects/Effects/InkSketchEffect.cs0000664000175000017500000001113212474706675023206 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.GetBottom (); ++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.GetRight (); ++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; [Caption ("Coloring"), MinimumValue (0), MaximumValue (100)] public int Coloring = 50; } } } pinta-1.6/Pinta.Effects/Effects/SoftenPortraitEffect.cs0000664000175000017500000001113612474706675024312 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.GetBottom (); ++y) { ColorBgra* srcPtr = src.GetPointAddress(roi.X, y); ColorBgra* dstPtr = dest.GetPointAddress(roi.X, y); for (int x = roi.Left; x <= roi.GetRight (); ++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 { [Caption ("Softness"), MinimumValue (0), MaximumValue (10)] public int Softness = 5; [Caption ("Lighting"), MinimumValue (-20), MaximumValue (20)] public int Lighting = 0; [Caption ("Warmth"), MinimumValue (0), MaximumValue (20)] public int Warmth = 10; } } pinta-1.6/Pinta.Effects/Effects/BulgeEffect.cs0000664000175000017500000000603212474706675022364 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 amt = bulge / 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.GetBottom (); 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.GetRight (); 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 { [Caption ("Amount"), MinimumValue(-200), MaximumValue(100)] public int Amount = 45; [Caption ("Offset")] public Cairo.PointD Offset = new Cairo.PointD (0.0, 0.0); [Skip] public override bool IsDefault { get { return Amount == 0; } } } } } pinta-1.6/Pinta.Effects/Effects/EdgeDetectEffect.cs0000664000175000017500000000525312474706675023327 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 { [Caption ("Angle")] public double Angle = 45; } } pinta-1.6/Pinta.Effects/Effects/MandelbrotFractalEffect.cs0000664000175000017500000001162612474706675024717 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 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.GetBottom (); y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); 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.GetBottom (); y++) { ColorBgra* dstPtr = dst.GetPointAddressUnchecked (dst_dataptr, dst_width, rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); ++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 { [Caption ("Factor"), MinimumValue(1), MaximumValue(10)] public int Factor = 1; [Caption ("Quality"), MinimumValue(1), MaximumValue(5)] public int Quality = 2; //TODO double [Caption ("Zoom"), MinimumValue(0), MaximumValue(100)] public int Zoom = 10; [Caption ("Angle")] public double Angle = 0; [Caption ("Invert Colors")] public bool InvertColors = false; } } } pinta-1.6/Pinta.Effects/Effects/SharpenEffect.cs0000664000175000017500000000367512474706675022740 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 { [Caption ("Amount"), MinimumValue (1), MaximumValue (20)] public int Amount = 2; } } pinta-1.6/Pinta.Effects/Adjustments/0000775000175000017500000000000012474706675020603 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Adjustments/BrightnessContrastEffect.cs0000664000175000017500000001151112474706675026074 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.B; } } 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.GetBottom (); 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; [Caption ("Brightness")] public int Brightness { get { return brightness; } set { if (value != brightness) { brightness = value; FirePropertyChanged ("Brightness"); } } } [Caption ("Contrast")] 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.6/Pinta.Effects/Adjustments/PosterizeEffect.cs0000664000175000017500000000367712474706675024250 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.6/Pinta.Effects/Adjustments/SepiaEffect.cs0000664000175000017500000000302312474706675023306 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.6/Pinta.Effects/Adjustments/BlackAndWhiteEffect.cs0000664000175000017500000000234112474706675024707 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.G; } } public override void Render (ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op.Apply (dest, src, rois); } } } pinta-1.6/Pinta.Effects/Adjustments/InvertColorsEffect.cs0000664000175000017500000000233312474706675024701 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.6/Pinta.Effects/Adjustments/AutoLevelEffect.cs0000664000175000017500000000263412474706675024154 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.6/Pinta.Effects/Adjustments/LevelsEffect.cs0000664000175000017500000000406512474706675023506 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.6/Pinta.Effects/Adjustments/HueSaturationEffect.cs0000664000175000017500000000446012474706675025046 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 { [Caption ("Hue"), MinimumValue (-180), MaximumValue (180)] public int Hue = 0; [Caption ("Saturation"), MinimumValue (0), MaximumValue (200)] public int Saturation = 100; [Caption ("Lightness")] public int Lightness = 0; [Skip] public override bool IsDefault { get { return Hue == 0 && Saturation == 100 && Lightness == 0; } } } } } pinta-1.6/Pinta.Effects/Adjustments/CurvesEffect.cs0000664000175000017500000001001212474706675023510 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.6/Pinta.Effects/Pinta.Effects.csproj0000664000175000017500000001713212474706675022161 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\ 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.6/Pinta.Effects/Properties/0000775000175000017500000000000012474707505020427 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Effects/Properties/AssemblyInfo.cs0000664000175000017500000000317012474707505023352 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.6.0.0")] [assembly: AssemblyFileVersion ("1.6.0.0")] [assembly: Addin ("DefaultEffects", "1.6", Category = "Core")] [assembly: AddinName ("Default Effects")] [assembly: AddinDescription ("The default adjustments and effects that ship with Pinta")] [assembly: AddinDependency ("Pinta", "1.6")] pinta-1.6/intltool-extract.in0000664000175000017500000000000012474707536017500 0ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/0000775000175000017500000000000012474706675017054 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/gtk-gui/0000775000175000017500000000000012474706675020423 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ReseedButtonWidget.cs0000664000175000017500000000573012474706675027730 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ColorPanelWidget.cs0000664000175000017500000000146712474706675027366 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ComboBoxWidget.cs0000664000175000017500000000535012474706675027033 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.6/Pinta.Gui.Widgets/gtk-gui/gui.stetic0000664000175000017500000006634112474706675022436 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.PointPickerWidget.cs0000664000175000017500000002153512474706675027555 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HScaleSpinButtonWidget.cs0000664000175000017500000001220112474706675030501 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.ColorGradientWidget.cs0000664000175000017500000000156212474706675030060 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.6/Pinta.Gui.Widgets/gtk-gui/generated.cs0000664000175000017500000001040512474706675022710 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.AnglePickerWidget.cs0000664000175000017500000001327612474706675027515 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.6/Pinta.Gui.Widgets/gtk-gui/Pinta.Gui.Widgets.HistogramWidget.cs0000664000175000017500000000070512474706675027257 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.6/Pinta.Gui.Widgets/DialogAttributes.cs0000664000175000017500000000432612474706675022656 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.6/Pinta.Gui.Widgets/Widgets/0000775000175000017500000000000012474706675020462 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Widgets/AnglePickerGraphic.cs0000664000175000017500000001214212474706675024473 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.6/Pinta.Gui.Widgets/Widgets/OpenImages/0000775000175000017500000000000012474706675022511 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Widgets/OpenImages/OpenImagesListWidget.cs0000664000175000017500000001737312474706675027102 0ustar00cameroncameron00000000000000// // OpenImagesListWidget.cs // // Author: // Cameron White // // Copyright (c) 2011 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 Gtk; using Pinta.Core; namespace Pinta.Gui.Widgets { public class OpenImagesListWidget : ScrolledWindow { private TreeView tree; private ListStore store; private CanvasRenderer canvas_renderer; 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); canvas_renderer = new CanvasRenderer (false); tree = new TreeView (); tree.CanFocus = false; 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); var textCell = new CellRendererText (); textCell.Ellipsize = Pango.EllipsizeMode.End; file_name_column = new TreeViewColumn ("File Name", textCell, "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, CreateImagePreview (PintaCore.Workspace.ActiveDocument)); } } } /// /// 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 (CreateImagePreview (doc), doc.Filename, close_icon); } } /// /// Creates a thumbnail image preview of a document. /// private Cairo.ImageSurface CreateImagePreview (Document doc) { var surface = new Cairo.ImageSurface (Cairo.Format.Argb32, PreviewWidth, PreviewHeight); canvas_renderer.Initialize (doc.ImageSize, new Gdk.Size (PreviewWidth, PreviewHeight)); canvas_renderer.Render (doc.GetLayersToPaint (), surface, Gdk.Point.Zero); return surface; } /// /// 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.6/Pinta.Gui.Widgets/Widgets/ComboBoxWidget.cs0000664000175000017500000000376012474706675023673 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.6/Pinta.Gui.Widgets/Widgets/ColorPanelWidget.cs0000664000175000017500000000356212474706675024221 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.6/Pinta.Gui.Widgets/Widgets/PointPickerWidget.cs0000664000175000017500000001051012474706675024401 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.6/Pinta.Gui.Widgets/Widgets/History/0000775000175000017500000000000012474706675022123 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Widgets/History/HistoryTreeView.cs0000664000175000017500000001155712474706675025577 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.CanFocus = false; 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); var pixbuf_cell = cell as Gtk.CellRendererPixbuf; if (pixbuf_cell.Pixbuf != null) pixbuf_cell.Pixbuf.Dispose (); pixbuf_cell.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.6/Pinta.Gui.Widgets/Widgets/ReseedButtonWidget.cs0000664000175000017500000000327012474706675024562 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.6/Pinta.Gui.Widgets/Widgets/ToolBoxWidget.cs0000664000175000017500000000157612474706675023554 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 : WrappingPaletteContainer { public ToolBoxWidget () : base(16) { PintaCore.Tools.ToolAdded += HandleToolAdded; PintaCore.Tools.ToolRemoved += HandleToolRemoved; ShowAll (); } // TODO: This should handle sorting the items public void AddItem (ToolButton item) { Append(item); } public void RemoveItem (ToolButton item) { //Run a remove on both tables since it might be in either Remove(item); } private void HandleToolAdded (object sender, ToolEventArgs e) { AddItem (e.Tool.ToolItem); } private void HandleToolRemoved (object sender, ToolEventArgs e) { RemoveItem (e.Tool.ToolItem); } } } pinta-1.6/Pinta.Gui.Widgets/Widgets/HScaleSpinButtonWidget.cs0000664000175000017500000001023412474706675025342 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.6/Pinta.Gui.Widgets/Widgets/PointPickerGraphic.cs0000664000175000017500000001312012474706675024533 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 ()) { layer.Draw(g); } } } 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) { 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.6/Pinta.Gui.Widgets/Widgets/AnglePickerWidget.cs0000664000175000017500000000453612474706675024351 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.6/Pinta.Gui.Widgets/Widgets/Layers/0000775000175000017500000000000012474706675021721 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Widgets/Layers/LayersListWidget.cs0000664000175000017500000002020012474706675025501 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; // For the active layer, we also draw the selection layer on top of it, // so we can't directly use that layer's surface. private Cairo.ImageSurface active_layer_surface; private CanvasRenderer canvas_renderer = new CanvasRenderer (false); 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); var textCell = new CellRendererText (); textCell.Ellipsize = Pango.EllipsizeMode.End; col = new TreeViewColumn ("Name", textCell, "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 UserLayer GetSelectedLayerInTreeView() { UserLayer 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 UserLayer; } 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 = (UserLayer)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 (active_layer_surface != null) { (active_layer_surface as IDisposable).Dispose (); active_layer_surface = null; } if (!PintaCore.Workspace.HasOpenDocuments) return; var doc = PintaCore.Workspace.ActiveDocument; foreach (var layer in (doc.UserLayers as IEnumerable).Reverse ()) { var surf = layer.Surface; // Draw the selection layer on top of the active layer. if (layer == doc.CurrentUserLayer && doc.ShowSelectionLayer) { active_layer_surface = new Cairo.ImageSurface (Cairo.Format.Argb32, thumbnail_width, thumbnail_height); canvas_renderer.Initialize (doc.ImageSize, new Gdk.Size (thumbnail_width, thumbnail_height)); var layers = new List { layer, doc.SelectionLayer }; canvas_renderer.Render (layers, active_layer_surface, Gdk.Point.Zero); surf = active_layer_surface; } store.AppendValues (surf, layer.Name, !layer.Hidden, layer); } SelectLayerInTreeView (PintaCore.Layers.Count - PintaCore.Layers.CurrentLayerIndex - 1); } private void SetLayerVisibility(UserLayer layer, bool visibility) { if (layer != null) layer.Hidden = !visibility; var initial = new LayerProperties(layer.Name, visibility, layer.Opacity, layer.BlendMode); var updated = new LayerProperties(layer.Name, !visibility, layer.Opacity, layer.BlendMode); 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.6/Pinta.Gui.Widgets/Widgets/Layers/CellRendererSurface.cs0000664000175000017500000001030312474706675026124 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.SetSourceColor (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.SetSourceColor (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.6/Pinta.Gui.Widgets/Widgets/HistogramWidget.cs0000664000175000017500000001311312474706675024111 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.6/Pinta.Gui.Widgets/Widgets/Canvas/0000775000175000017500000000000012474706675021675 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Widgets/Canvas/PintaCanvas.cs0000664000175000017500000001700412474706675024435 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; public PintaCanvas () { cr = new CanvasRenderer (true); // 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); }; } #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 canvas drop shadow g.DrawRectangle (new Cairo.Rectangle (x - 1, y - 1, PintaCore.Workspace.CanvasSize.Width + 2, PintaCore.Workspace.CanvasSize.Height + 2), new Cairo.Color (.5, .5, .5), 1); g.DrawRectangle (new Cairo.Rectangle (x - 2, y - 2, PintaCore.Workspace.CanvasSize.Width + 4, PintaCore.Workspace.CanvasSize.Height + 4), new Cairo.Color (.8, .8, .8), 1); g.DrawRectangle (new Cairo.Rectangle (x - 3, y - 3, PintaCore.Workspace.CanvasSize.Width + 6, PintaCore.Workspace.CanvasSize.Height + 6), new Cairo.Color (.9, .9, .9), 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); // Render all the layers to a surface var layers = PintaCore.Layers.GetLayersToPaint (); if (layers.Count == 0) { canvas.Clear (); } cr.Render (layers, canvas, canvas_bounds.Location); // Paint the surface to our canvas g.SetSourceSurface (canvas, canvas_bounds.X + (int)(0 * scale), canvas_bounds.Y + (int)(0 * scale)); g.Paint (); // Selection outline if (PintaCore.Layers.ShowSelection) { bool fillSelection = PintaCore.Tools.CurrentTool.Name.Contains ("Select") && !PintaCore.Tools.CurrentTool.Name.Contains ("Selected"); PintaCore.Workspace.ActiveDocument.Selection.Draw (g, scale, fillSelection); } } 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 (); } public void DoKeyPressEvent (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); } public void DoKeyReleaseEvent (object o, KeyReleaseEventArgs e) { PintaCore.Tools.CurrentTool.DoKeyRelease (this, e); } /// /// 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.6/Pinta.Gui.Widgets/Widgets/Canvas/CanvasRenderer.cs0000664000175000017500000003604512474706675025136 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.Generic; using Gdk; using Pinta.Core; namespace Pinta.Gui.Widgets { class CanvasRenderer { private Size source_size; private Size destination_size; private Layer offset_layer; private bool enable_pixel_grid; private ScaleFactor scale_factor; private bool generated; private int[] d2sLookupX; private int[] d2sLookupY; private int[] s2dLookupX; private int[] s2dLookupY; public CanvasRenderer (bool enable_pixel_grid) { this.enable_pixel_grid = enable_pixel_grid; } 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 (List layers, Cairo.ImageSurface dst, Gdk.Point offset) { dst.Flush (); if (scale_factor.Ratio == 1) RenderOneToOne (layers, dst, offset); else if (scale_factor.Ratio < 1) RenderZoomIn (layers, dst, offset); else RenderZoomOut (layers, dst, offset, destination_size); dst.MarkDirty (); } private Layer OffsetLayer { get { // Create one if we don't have one if (offset_layer == null) offset_layer = new Layer (new Cairo.ImageSurface (Cairo.Format.ARGB32, source_size.Width, source_size.Height)); // If we have the wrong size one, dispose it and create the correct size if (offset_layer.Surface.Width != source_size.Width || offset_layer.Surface.Height != source_size.Height) { (offset_layer.Surface as IDisposable).Dispose (); offset_layer = new Layer (new Cairo.ImageSurface (Cairo.Format.ARGB32, source_size.Width, source_size.Height)); } return offset_layer; } } private Layer CreateLivePreviewLayer (Layer original) { var preview_layer = new Layer (PintaCore.LivePreview.LivePreviewSurface); preview_layer.BlendMode = original.BlendMode; preview_layer.Transform.InitMatrix(original.Transform); preview_layer.Opacity = original.Opacity; preview_layer.Hidden = original.Hidden; return preview_layer; } private Layer CreateOffsetLayer (Layer original) { var offset = OffsetLayer; offset.Surface.Clear (); using (var g = new Cairo.Context (offset.Surface)) { original.Draw(g, original.Surface, 1); } offset.BlendMode = original.BlendMode; offset.Transform.InitMatrix(original.Transform); offset.Opacity = original.Opacity; return offset; } #region Algorithms ported from PDN private unsafe void RenderOneToOne (List layers, Cairo.ImageSurface dst, Gdk.Point offset) { // The first layer should be blended with the transparent checkerboard var checker = true; CheckerBoardOperation checker_op = null; for (int i = 0; i < layers.Count; i++) { var layer = layers[i]; // If we're in LivePreview, substitute current layer with the preview layer if (layer == PintaCore.Layers.CurrentLayer && PintaCore.LivePreview.IsEnabled) layer = CreateLivePreviewLayer (layer); // If the layer is offset, handle it here if (!layer.Transform.IsIdentity ()) layer = CreateOffsetLayer (layer); var src = layer.Surface; // Get the blend mode for this layer and opacity var blend_op = UserBlendOps.GetBlendOp (layer.BlendMode, layer.Opacity); if (checker) checker_op = new CheckerBoardOperation (layer.Opacity); // Figure out where our source and destination intersect var srcRect = new Gdk.Rectangle (offset, dst.GetBounds ().Size); srcRect.Intersect (src.GetBounds ()); // Get pointers to our surfaces var src_ptr = (ColorBgra*)src.DataPtr; var dst_ptr = (ColorBgra*)dst.DataPtr; // Cache widths int src_width = src.Width; int dst_width = dst.Width; 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) *dstRowPtr = checker_op.Apply (*srcRowPtr, dstCol, checkerY); else *dstRowPtr = blend_op.Apply (*dstRowPtr, *srcRowPtr); ++dstRowPtr; ++srcRowPtr; ++dstCol; } } // Only checker the first layer checker = false; } } private unsafe void RenderZoomIn (List layers, Cairo.ImageSurface dst, Gdk.Point offset) { if (!generated) { d2sLookupX = CreateLookupX (source_size.Width, destination_size.Width, scale_factor); d2sLookupY = CreateLookupY (source_size.Height, destination_size.Height, scale_factor); s2dLookupX = CreateS2DLookupX (source_size.Width, destination_size.Width, scale_factor); s2dLookupY = CreateS2DLookupY (source_size.Height, destination_size.Height, scale_factor); generated = true; } // The first layer should be blended with the transparent checkerboard var checker = true; CheckerBoardOperation checker_op = null; for (int i = 0; i < layers.Count; i++) { var layer = layers[i]; // If we're in LivePreview, substitute current layer with the preview layer if (layer == PintaCore.Layers.CurrentLayer && PintaCore.LivePreview.IsEnabled) layer = CreateLivePreviewLayer (layer); // If the layer is offset, handle it here if (!layer.Transform.IsIdentity ()) layer = CreateOffsetLayer (layer); var src = layer.Surface; // Get the blend mode for this layer and opacity var blend_op = UserBlendOps.GetBlendOp (layer.BlendMode, layer.Opacity); if (checker) checker_op = new CheckerBoardOperation (layer.Opacity); 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 < 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]; // Blend it over the checkerboard background if (checker) *dstPtr = checker_op.Apply (*(srcRow + srcX), dstCol + offset.X, dstRow + offset.Y); else *dstPtr = blend_op.Apply (*dstPtr, *(srcRow + srcX)); ++dstPtr; } } // Only checker the first layer checker = false; } // If we are at least 200% and grid is requested, draw it if (enable_pixel_grid && PintaCore.Actions.View.PixelGrid.Active && scale_factor.Ratio <= 0.5d) RenderPixelGrid (dst, offset); } private unsafe void RenderZoomOut (List layers, Cairo.ImageSurface dst, Gdk.Point offset, Gdk.Size destinationSize) { // The first layer should be blended with the transparent checkerboard var checker = true; CheckerBoardOperation checker_op = null; for (int i = 0; i < layers.Count; i++) { var layer = layers[i]; // If we're in LivePreview, substitute current layer with the preview layer if (layer == PintaCore.Layers.CurrentLayer && PintaCore.LivePreview.IsEnabled) layer = CreateLivePreviewLayer (layer); // If the layer is offset, handle it here if (!layer.Transform.IsIdentity ()) layer = CreateOffsetLayer (layer); var src = layer.Surface; // Get the blend mode for this layer and opacity var blend_op = UserBlendOps.GetBlendOp (layer.BlendMode, layer.Opacity); if (checker) checker_op = new CheckerBoardOperation (layer.Opacity); 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; // Blend it over the checkerboard background if (checker) *dstPtr = checker_op.Apply (ColorBgra.FromUInt32 ((uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24)), checkerX, checkerY); else *dstPtr = blend_op.Apply (*dstPtr, ColorBgra.FromUInt32 ((uint)b + ((uint)g << 8) + ((uint)r << 16) + ((uint)a << 24))); ++dstPtr; } } // Only checker the first layer checker = false; } } private unsafe void RenderPixelGrid (Cairo.ImageSurface dst, Gdk.Point offset) { // Draw horizontal lines var dst_ptr = (ColorBgra*)dst.DataPtr; int dstHeight = dst.Height; int dstWidth = dst.Width; int dstStride = dst.Stride; int sTop = d2sLookupY[offset.Y]; int sBottom = d2sLookupY[offset.Y + dstHeight]; 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 (dst_ptr, dstWidth, 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; } } } } 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.6/Pinta.Gui.Widgets/Widgets/ColorPaletteWidget.cs0000664000175000017500000002746712474706675024572 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 Rectangle reset_rect = new Rectangle (7, 37, 15, 15); const int primarySecondaryAreaSize = 60; const int swatchSize = 15; const int swatchAreaMargin = 7; OrientationEnum orientation; const int defaultNumOfJRows = 3; int jRows; int iRows; private Gdk.Pixbuf swap_icon; private Gdk.Pixbuf reset_icon; private Palette palette; enum OrientationEnum { Horizontal, Vertical } public ColorPaletteWidget () { // Insert initialization code here. this.AddEvents ((int)Gdk.EventMask.ButtonPressMask); swap_icon = PintaCore.Resources.GetIcon ("ColorPalette.SwapIcon.png"); reset_icon = PintaCore.Resources.GetIcon ("ColorPalette.ResetIcon.png"); palette = PintaCore.Palette.CurrentPalette; HasTooltip = true; QueryTooltip += HandleQueryTooltip; } 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 (); } else if (reset_rect.ContainsPoint (ev.X, ev.Y)) { PintaCore.Palette.PrimaryColor = new Color (0, 0, 0); PintaCore.Palette.SecondaryColor = new Color (1, 1, 1); GdkWindow.Invalidate (); } if (primary_rect.ContainsPoint (ev.X, ev.Y)) { Gtk.ColorSelectionDialog csd = new Gtk.ColorSelectionDialog (Catalog.GetString ("Choose Primary Color")); csd.TransientFor = PintaCore.Chrome.MainWindow; 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.TransientFor = PintaCore.Chrome.MainWindow; 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.TransientFor = PintaCore.Chrome.MainWindow; 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)) { // Draw Primary / Secondary Area 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 ()); g.DrawPixbuf (reset_icon, reset_rect.Location ()); // Draw color swatches int startI = primarySecondaryAreaSize; int startJ = swatchAreaMargin; int paletteIndex = 0; for (int jRow = 0; jRow < jRows; jRow++) { for (int iRow = 0; iRow < iRows; iRow++) { if (paletteIndex >= palette.Count) break; int x = (orientation == OrientationEnum.Horizontal) ? startI + iRow * swatchSize : startJ + jRow * swatchSize; int y = (orientation == OrientationEnum.Horizontal) ? startJ + jRow * swatchSize : startI + iRow * swatchSize; g.FillRectangle(new Rectangle(x, y, swatchSize, swatchSize), palette[paletteIndex]); paletteIndex++; } } } return true; } protected override void OnSizeRequested (ref Gtk.Requisition requisition) { // Calculate desired size here. requisition.Height = requisition.Width = primarySecondaryAreaSize; } protected override void OnSizeAllocated(Gdk.Rectangle allocation) { base.OnSizeAllocated(allocation); int iSpaceAvailable, jSpaceAvailable; // The orientation is horizontal when the widget is wider than it is tall // The direction of 'i' is the horizontal (left-to-right) when // widget orientation is horizontal, // and vertical (top-to-bottom) when widget orientation is vertical. // 'j' is in the other direction. if (Allocation.Width > Allocation.Height) { orientation = OrientationEnum.Horizontal; iSpaceAvailable = Allocation.Width; jSpaceAvailable = Allocation.Height; } else { orientation = OrientationEnum.Vertical; iSpaceAvailable = Allocation.Height; jSpaceAvailable = Allocation.Width; } iSpaceAvailable -= primarySecondaryAreaSize + swatchAreaMargin; jSpaceAvailable -= 2 * swatchAreaMargin; // Determine max number of rows that can be displayed in available area int maxPossibleIRows = Math.Max(1, iSpaceAvailable / swatchSize); int maxPossibleJRows = Math.Max(1, jSpaceAvailable / swatchSize); int iRowsWithDefaultNumOfJRows = (int)Math.Ceiling((double)palette.Count / defaultNumOfJRows); // Display palette in default configuration if space is available // (it looks better) if ((maxPossibleJRows >= defaultNumOfJRows) && (maxPossibleIRows >= iRowsWithDefaultNumOfJRows)) { iRows = iRowsWithDefaultNumOfJRows; jRows = defaultNumOfJRows; } else // Compress palette to fit within available space { iRows = (int)Math.Ceiling((double)palette.Count / maxPossibleJRows); jRows = (int)Math.Ceiling((double)palette.Count / iRows); } } private int PointToPalette (int x, int y) { int i, j; if (orientation == OrientationEnum.Horizontal) { i = x; j = y; } else { i = y; j = x; } i -= primarySecondaryAreaSize; j -= swatchAreaMargin; // Determine the swatch position under the mouse pointer. int iRow = i / swatchSize; int jRow = j / swatchSize; if ((i < 0) || (iRow >= iRows) || (j < 0) || (jRow >= jRows)) { // Mouse pointer is outside of swatch area return -1; } else if ((jRow * iRows + iRow) >= palette.Count) { // Mouse pointer is within swatch area, but not on valid color return -1; } else { // Return the palette color number under the mouse pointer return jRow * iRows + iRow; } } /// /// Provide a custom tooltip based on the cursor location. /// private void HandleQueryTooltip (object o, Gtk.QueryTooltipArgs args) { int x = args.X; int y = args.Y; string text = null; if (swap_rect.ContainsPoint (x, y)) { text = Catalog.GetString ("Click to switch between primary and secondary color."); } else if (reset_rect.ContainsPoint (x, y)) { text = Catalog.GetString ("Click to reset primary and secondary color."); } else if (primary_rect.ContainsPoint (x, y)) { text = Catalog.GetString ("Click to select primary color."); } else if (secondary_rect.ContainsPoint (x, y)) { text = Catalog.GetString ("Click to select secondary color."); } else if (PointToPalette (x, y) >= 0) { text = Catalog.GetString ("Left click to set primary color. Right click to set secondary color. Middle click to choose palette color."); } args.Tooltip.Text = text; args.RetVal = (text != null); } } } pinta-1.6/Pinta.Gui.Widgets/Widgets/ColorGradientWidget.cs0000664000175000017500000001745612474706675024726 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.SetSource (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.6/Pinta.Gui.Widgets/.gitignore0000664000175000017500000000002212474706675021036 0ustar00cameroncameron00000000000000/bin/ /obj/ *.userpinta-1.6/Pinta.Gui.Widgets/Dialogs/0000775000175000017500000000000012474706675020436 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Dialogs/SimpleEffectDialog.cs0000664000175000017500000003327112474706675024461 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.Addins.Localization; 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; /// Since this dialog is used by add-ins, the IAddinLocalizer allows for translations to be /// fetched from the appropriate place. /// public SimpleEffectDialog (string title, Gdk.Pixbuf icon, object effectData, IAddinLocalizer localizer) : 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; Resizable = false; DefaultResponse = Gtk.ResponseType.Ok; AlternativeButtonOrder = new int[] { (int)Gtk.ResponseType.Ok, (int)Gtk.ResponseType.Cancel }; BuildDialog (localizer); } public object EffectData { get; private set; } public event PropertyChangedEventHandler EffectDataChanged; #region EffectData Parser private void BuildDialog (IAddinLocalizer localizer) { 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 (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (int)) AddWidget (CreateSlider (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (double) && (caption == "Angle" || caption == "Rotation")) AddWidget (CreateAnglePicker (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (double)) AddWidget (CreateDoubleSlider (localizer.GetString (caption), EffectData, mi, attrs)); else if (combo && mType == typeof (string)) AddWidget (CreateComboBox (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (bool)) AddWidget (CreateCheckBox (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (Gdk.Point)) AddWidget (CreatePointPicker (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType == typeof (Cairo.PointD)) AddWidget (CreateOffsetPicker (localizer.GetString (caption), EffectData, mi, attrs)); else if (mType.IsEnum) AddWidget (CreateEnumComboBox (localizer.GetString (caption), EffectData, mi, attrs)); if (hint != null) AddWidget (CreateHintLabel (localizer.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[] member_names = Enum.GetNames (myType); var labels = new List (); var label_to_member = new Dictionary (); foreach (var member_name in member_names) { var members = myType.GetMember (member_name); // Look for a Caption attribute that provides a (translated) description. string label; var attrs = members [0].GetCustomAttributes (typeof(CaptionAttribute), false); if (attrs.Length > 0) label = Catalog.GetString (((CaptionAttribute)attrs [0]).Caption); else label = Catalog.GetString (member_name); label_to_member [label] = member_name; labels.Add (label); } ComboBoxWidget widget = new ComboBoxWidget (labels.ToArray ()); widget.Label = caption; widget.AddEvents ((int)Gdk.EventMask.ButtonPressMask); widget.Active = ((IList)member_names).IndexOf (GetValue (member, o).ToString ()); widget.Changed += delegate (object sender, EventArgs e) { SetValue (member, o, Enum.Parse (myType, label_to_member[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 } /// /// Wrapper around Pinta's translation template. /// public class PintaLocalizer : IAddinLocalizer { public string GetString (string msgid) { return Mono.Unix.Catalog.GetString (msgid); } }; } pinta-1.6/Pinta.Gui.Widgets/WrappingPaletteContainer.cs0000664000175000017500000001101012474706675024345 0ustar00cameroncameron00000000000000// // WrappingPaletteContainer.cs // // Author: // Don McComb // // Copyright (c) 2014 Don McComb // // This class is loosely based on the FlowLayoutContainer found in the Ribbons // Mono project created during the Google Summer of Code, 2007. // // 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.Gui.Widgets { public class WrappingPaletteContainer : Container { private List children; private Requisition[] childReqs; int iconSize = 16; /// Returns the number of children. public int NChildren { get { return children.Count; } } /// Default constructor. public WrappingPaletteContainer(int iconSize) { this.SetFlag (WidgetFlags.NoWindow); this.AddEvents ((int)(Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask | Gdk.EventMask.PointerMotionMask)); this.children = new List (); this.iconSize = iconSize; } /// Adds a widget before all existing widgetw. /// The widget to add. public void Prepend (Widget w) { Insert (w, 0); } /// Adds a widget after all existing widgets. /// The widget to add. public void Append (Widget w) { Insert (w, -1); } /// Inserts a widget at the specified location. /// The widget to add. /// The index (starting at 0) at which the widget must be inserted, or -1 to insert the widget after all existing widgets. public void Insert (Widget w, int WidgetIndex) { w.Parent = this; w.Visible = true; if(WidgetIndex == -1) children.Add (w); else children.Insert (WidgetIndex, w); ShowAll (); } /// Removes the widget at the specified index. /// Index of the widget to remove. public void Remove (int WidgetIndex) { if(WidgetIndex == -1) WidgetIndex = children.Count - 1; children[WidgetIndex].Parent = null; children.RemoveAt (WidgetIndex); ShowAll (); } protected override void ForAll (bool include_internals, Callback callback) { foreach(Widget w in children) { if(w.Visible) callback (w); } } protected override void OnSizeRequested (ref Requisition requisition) { base.OnSizeRequested (ref requisition); int n = children.Count, nVisible = 0; childReqs = new Requisition[n]; for(int i = 0 ; i < n ; ++i) { if(children[i].Visible) { childReqs[i] = children[i].SizeRequest (); ++nVisible; } } requisition.Width = iconSize; requisition.Height = iconSize; } protected override void OnSizeAllocated (Gdk.Rectangle allocation) { base.OnSizeAllocated (allocation); int n = children.Count; Gdk.Rectangle childAlloc = allocation; int lineHeight = 0; for(int i = 0 ; i < n ; ++i) { if(children[i].Visible) { childAlloc.Width = childReqs[i].Width; childAlloc.Height = childReqs[i].Height; if(childAlloc.X != allocation.X && childAlloc.Right > allocation.Right) { childAlloc.X = allocation.X; childAlloc.Y += lineHeight; lineHeight = 0; } children[i].SizeAllocate (childAlloc); childAlloc.X += childAlloc.Width; lineHeight = Math.Max (childAlloc.Height, lineHeight); } } } } } pinta-1.6/Pinta.Gui.Widgets/Pinta.Gui.Widgets.csproj0000664000175000017500000001504112474706675023502 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 ..\lib\Mono.Addins.dll False 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.6/Pinta.Gui.Widgets/Properties/0000775000175000017500000000000012474707505021201 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Gui.Widgets/Properties/AssemblyInfo.cs0000664000175000017500000000421212474707505024122 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.6.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.6/configure.ac0000664000175000017500000000306212474707515016132 0ustar00cameroncameron00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([pinta], [1.6]) 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 ast az be bg br bs ca cs da de el en_AU en_CA en_GB eo es et eu fi fil fo fr ga gl he hi hr hu hy id it ja ka 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 <; using Polygons = List>; using ExPolygons = List; //------------------------------------------------------------------------------ // Int128 struct (enables safe math on signed 64bit integers) // eg Int128 val1((Int64)9223372036854775807); //ie 2^63 -1 // Int128 val2((Int64)9223372036854775807); // Int128 val3 = val1 * val2; // val3.ToString => "85070591730234615847396907784232501249" (8.5e+37) //------------------------------------------------------------------------------ internal struct Int128 { private Int64 hi; private Int64 lo; public Int128(Int64 lo) { this.lo = lo; if (lo < 0) this.hi = -1; else this.hi = 0; } public Int128(Int64 lo, Int64 hi) { this.lo = lo; this.hi = hi; } public Int128(Int128 val) { hi = val.hi; lo = val.lo; } public bool IsNegative() { return hi < 0; } public static bool operator ==(Int128 val1, Int128 val2) { if ((object)val1 == (object)val2) return true; else if ((object)val1 == null || (object)val2 == null) return false; return (val1.hi == val2.hi && val1.lo == val2.lo); } public static bool operator!= (Int128 val1, Int128 val2) { return !(val1 == val2); } public override bool Equals(System.Object obj) { if (obj == null || !(obj is Int128)) return false; Int128 i128 = (Int128)obj; return (i128.hi == hi && i128.lo == lo); } public override int GetHashCode() { return hi.GetHashCode() ^ lo.GetHashCode(); } public static bool operator> (Int128 val1, Int128 val2) { if (val1.hi != val2.hi) return val1.hi > val2.hi; else return val1.lo > val2.lo; } public static bool operator< (Int128 val1, Int128 val2) { if (val1.hi != val2.hi) return val1.hi < val2.hi; else return val1.lo < val2.lo; } public static Int128 operator+ (Int128 lhs, Int128 rhs) { lhs.hi += rhs.hi; lhs.lo += rhs.lo; if ( (UInt64)lhs.lo < (UInt64)rhs.lo) lhs.hi++; return lhs; } public static Int128 operator- (Int128 lhs, Int128 rhs) { return lhs + -rhs; } public static Int128 operator -(Int128 val) { if (val.lo == 0) { if (val.hi == 0) return val; return new Int128(0, -val.hi); } else return new Int128(-val.lo, ~val.hi); } //nb: Constructing two new Int128 objects every time we want to multiply longs //is slow. So, although calling the Int128Mul method doesn't look as clean, the //code runs significantly faster than if we'd used the * operator. public static Int128 Int128Mul(Int64 lhs, Int64 rhs) { bool negate = (lhs < 0) != (rhs < 0); if (lhs < 0) lhs = -lhs; if (rhs < 0) rhs = -rhs; UInt64 int1Hi = (UInt64)lhs >> 32; UInt64 int1Lo = (UInt64)lhs & 0xFFFFFFFF; UInt64 int2Hi = (UInt64)rhs >> 32; UInt64 int2Lo = (UInt64)rhs & 0xFFFFFFFF; //nb: see comments in clipper.pas UInt64 a = int1Hi * int2Hi; UInt64 b = int1Lo * int2Lo; UInt64 c = int1Hi * int2Lo + int1Lo * int2Hi; Int64 lo, hi; hi = (Int64)(a + (c >> 32)); lo = (Int64)(c << 32); lo += (Int64)b; if ((UInt64)lo < b) hi++; var result = new Int128(lo, hi); return negate ? -result : result; } public static Int128 operator /(Int128 lhs, Int128 rhs) { if (rhs.lo == 0 && rhs.hi == 0) throw new ClipperException("Int128: divide by zero"); bool negate = (rhs.hi < 0) != (lhs.hi < 0); Int128 result = new Int128(lhs), denom = new Int128(rhs); if (result.hi < 0) result = -result; if (denom.hi < 0) denom = -denom; if (denom > result) return new Int128(0); //result is only a fraction of 1 denom = -denom; Int128 p = new Int128(0); for (int i = 0; i < 128; ++i) { p.hi = p.hi << 1; if (p.lo < 0) p.hi++; p.lo = (Int64)p.lo << 1; if (result.hi < 0) p.lo++; result.hi = result.hi << 1; if (result.lo < 0) result.hi++; result.lo = (Int64)result.lo << 1; if (p.hi >= 0) { p += denom; result.lo++; } } return negate ? -result : result; } public double ToDouble() { const double shift64 = 18446744073709551616.0; //2^64 const double bit64 = 9223372036854775808.0; if (hi < 0) { Int128 tmp = new Int128(this); tmp = -tmp; if (tmp.lo < 0) return (double)tmp.lo - bit64 - tmp.hi * shift64; else return -(double)tmp.lo - tmp.hi * shift64; } else if (lo < 0) return -(double)lo + bit64 + hi * shift64; else return (double)lo + (double)hi * shift64; } ////for bug testing ... //public override string ToString() //{ // int r = 0; // Int128 tmp = new Int128(0), val = new Int128(this); // if (hi < 0) Negate(val); // StringBuilder builder = new StringBuilder(50); // while (val.hi != 0 || val.lo != 0) // { // Div10(val, ref tmp, ref r); // builder.Insert(0, (char)('0' + r)); // val = tmp; // } // if (hi < 0) return '-' + builder.ToString(); // if (builder.Length == 0) return "0"; // return builder.ToString(); //} ////debugging only ... //private void Div10(Int128 val, ref Int128 result, ref int remainder) //{ // remainder = 0; // result = new Int128(0); // for (int i = 63; i >= 0; --i) // { // if ((val.hi & ((Int64)1 << i)) != 0) // remainder = (remainder * 2) + 1; // else // remainder *= 2; // if (remainder >= 10) // { // result.hi += ((Int64)1 << i); // remainder -= 10; // } // } // for (int i = 63; i >= 0; --i) // { // if ((val.lo & ((Int64)1 << i)) != 0) // remainder = (remainder * 2) + 1; // else // remainder *= 2; // if (remainder >= 10) // { // result.lo += ((Int64)1 << i); // remainder -= 10; // } // } //} }; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ public struct IntPoint { public Int64 X; public Int64 Y; public IntPoint(Int64 X, Int64 Y) { this.X = X; this.Y = Y; } public IntPoint(IntPoint pt) { this.X = pt.X; this.Y = pt.Y; } } public struct IntRect { public Int64 left; public Int64 top; public Int64 right; public Int64 bottom; public IntRect(Int64 l, Int64 t, Int64 r, Int64 b) { this.left = l; this.top = t; this.right = r; this.bottom = b; } } public struct ExPolygon { public Polygon outer; public Polygons holes; } public enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor }; public enum PolyType { ptSubject, ptClip }; //By far the most widely used winding rules for polygon filling are //EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Quartz, SVG, Gr32) //Others rules include Positive, Negative and ABS_GTR_EQ_TWO (only in OpenGL) //see http://glprogramming.com/red/chapter11.html public enum PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative }; public enum JoinType { jtSquare, jtRound, jtMiter }; [Flags] internal enum EdgeSide { esNeither = 0, esLeft = 1, esRight = 2, esBoth = 3 }; [Flags] internal enum Protects { ipNone = 0, ipLeft = 1, ipRight = 2, ipBoth = 3 }; internal enum Direction { dRightToLeft, dLeftToRight }; internal class TEdge { public Int64 xbot; public Int64 ybot; public Int64 xcurr; public Int64 ycurr; public Int64 xtop; public Int64 ytop; public double dx; public Int64 tmpX; public PolyType polyType; public EdgeSide side; public int windDelta; //1 or -1 depending on winding direction public int windCnt; public int windCnt2; //winding count of the opposite polytype public int outIdx; public TEdge next; public TEdge prev; public TEdge nextInLML; public TEdge nextInAEL; public TEdge prevInAEL; public TEdge nextInSEL; public TEdge prevInSEL; }; internal class IntersectNode { public TEdge edge1; public TEdge edge2; public IntPoint pt; public IntersectNode next; }; internal class LocalMinima { public Int64 Y; public TEdge leftBound; public TEdge rightBound; public LocalMinima next; }; internal class Scanbeam { public Int64 Y; public Scanbeam next; }; internal class OutRec { public int idx; public bool isHole; public OutRec FirstLeft; public OutRec AppendLink; public OutPt pts; public OutPt bottomPt; public OutPt bottomFlag; public EdgeSide sides; }; internal class OutPt { public int idx; public IntPoint pt; public OutPt next; public OutPt prev; }; internal class JoinRec { public IntPoint pt1a; public IntPoint pt1b; public int poly1Idx; public IntPoint pt2a; public IntPoint pt2b; public int poly2Idx; }; internal class HorzJoinRec { public TEdge edge; public int savedIdx; }; public class ClipperBase { protected const double horizontal = -3.4E+38; internal const Int64 loRange = 1518500249; //sqrt(2^63 -1)/2 internal const Int64 hiRange = 6521908912666391106L; //sqrt(2^127 -1)/2 internal LocalMinima m_MinimaList; internal LocalMinima m_CurrentLM; internal List> m_edges = new List>(); internal bool m_UseFullRange; //------------------------------------------------------------------------------ protected static bool PointsEqual(IntPoint pt1, IntPoint pt2) { return ( pt1.X == pt2.X && pt1.Y == pt2.Y ); } //------------------------------------------------------------------------------ internal bool PointIsVertex(IntPoint pt, OutPt pp) { OutPt pp2 = pp; do { if (PointsEqual(pp2.pt, pt)) return true; pp2 = pp2.next; } while (pp2 != pp); return false; } //------------------------------------------------------------------------------ internal bool PointInPolygon(IntPoint pt, OutPt pp, bool UseFulllongRange) { OutPt pp2 = pp; bool result = false; if (UseFulllongRange) { do { if ((((pp2.pt.Y <= pt.Y) && (pt.Y < pp2.prev.pt.Y)) || ((pp2.prev.pt.Y <= pt.Y) && (pt.Y < pp2.pt.Y))) && new Int128(pt.X - pp2.pt.X) < Int128.Int128Mul(pp2.prev.pt.X - pp2.pt.X, pt.Y - pp2.pt.Y) / new Int128(pp2.prev.pt.Y - pp2.pt.Y)) result = !result; pp2 = pp2.next; } while (pp2 != pp); } else { do { if ((((pp2.pt.Y <= pt.Y) && (pt.Y < pp2.prev.pt.Y)) || ((pp2.prev.pt.Y <= pt.Y) && (pt.Y < pp2.pt.Y))) && (pt.X - pp2.pt.X < (pp2.prev.pt.X - pp2.pt.X) * (pt.Y - pp2.pt.Y) / (pp2.prev.pt.Y - pp2.pt.Y))) result = !result; pp2 = pp2.next; } while (pp2 != pp); } return result; } //------------------------------------------------------------------------------ internal bool SlopesEqual(TEdge e1, TEdge e2, bool UseFullRange) { if (UseFullRange) return Int128.Int128Mul(e1.ytop - e1.ybot, e2.xtop - e2.xbot) == Int128.Int128Mul(e1.xtop - e1.xbot, e2.ytop - e2.ybot); else return (Int64)(e1.ytop - e1.ybot) * (e2.xtop - e2.xbot) - (Int64)(e1.xtop - e1.xbot)*(e2.ytop - e2.ybot) == 0; } //------------------------------------------------------------------------------ protected bool SlopesEqual(IntPoint pt1, IntPoint pt2, IntPoint pt3, bool UseFullRange) { if (UseFullRange) return Int128.Int128Mul(pt1.Y - pt2.Y, pt2.X - pt3.X) == Int128.Int128Mul(pt1.X - pt2.X, pt2.Y - pt3.Y); else return (Int64)(pt1.Y - pt2.Y) * (pt2.X - pt3.X) - (Int64)(pt1.X - pt2.X) * (pt2.Y - pt3.Y) == 0; } //------------------------------------------------------------------------------ protected bool SlopesEqual(IntPoint pt1, IntPoint pt2, IntPoint pt3, IntPoint pt4, bool UseFullRange) { if (UseFullRange) return Int128.Int128Mul(pt1.Y - pt2.Y, pt3.X - pt4.X) == Int128.Int128Mul(pt1.X - pt2.X, pt3.Y - pt4.Y); else return (Int64)(pt1.Y - pt2.Y) * (pt3.X - pt4.X) - (Int64)(pt1.X - pt2.X) * (pt3.Y - pt4.Y) == 0; } //------------------------------------------------------------------------------ internal ClipperBase() //constructor (nb: no external instantiation) { m_MinimaList = null; m_CurrentLM = null; m_UseFullRange = false; } //------------------------------------------------------------------------------ //destructor - commented out since I gather this impedes the GC //~ClipperBase() //{ // Clear(); //} //------------------------------------------------------------------------------ public virtual void Clear() { DisposeLocalMinimaList(); for (int i = 0; i < m_edges.Count; ++i) { for (int j = 0; j < m_edges[i].Count; ++j) m_edges[i][j] = null; m_edges[i].Clear(); } m_edges.Clear(); m_UseFullRange = false; } //------------------------------------------------------------------------------ private void DisposeLocalMinimaList() { while( m_MinimaList != null ) { LocalMinima tmpLm = m_MinimaList.next; m_MinimaList = null; m_MinimaList = tmpLm; } m_CurrentLM = null; } //------------------------------------------------------------------------------ public bool AddPolygons(Polygons ppg, PolyType polyType) { bool result = false; for (int i = 0; i < ppg.Count; ++i) if (AddPolygon(ppg[i], polyType)) result = true; return result; } //------------------------------------------------------------------------------ public bool AddPolygon(Polygon pg, PolyType polyType) { int len = pg.Count; if (len < 3) return false; Polygon p = new Polygon(len); p.Add(new IntPoint(pg[0].X, pg[0].Y)); int j = 0; for (int i = 1; i < len; ++i) { Int64 maxVal; if (m_UseFullRange) maxVal = hiRange; else maxVal = loRange; if (Math.Abs(pg[i].X) > maxVal || Math.Abs(pg[i].Y) > maxVal) { if (Math.Abs(pg[i].X) > hiRange || Math.Abs(pg[i].Y) > hiRange) throw new ClipperException("Coordinate exceeds range bounds"); maxVal = hiRange; m_UseFullRange = true; } if (PointsEqual(p[j], pg[i])) continue; else if (j > 0 && SlopesEqual(p[j-1], p[j], pg[i], m_UseFullRange)) { if (PointsEqual(p[j-1], pg[i])) j--; } else j++; if (j < p.Count) p[j] = pg[i]; else p.Add(new IntPoint(pg[i].X, pg[i].Y)); } if (j < 2) return false; len = j+1; while (len > 2) { //nb: test for point equality before testing slopes ... if (PointsEqual(p[j], p[0])) j--; else if (PointsEqual(p[0], p[1]) || SlopesEqual(p[j], p[0], p[1], m_UseFullRange)) p[0] = p[j--]; else if (SlopesEqual(p[j - 1], p[j], p[0], m_UseFullRange)) j--; else if (SlopesEqual(p[0], p[1], p[2], m_UseFullRange)) { for (int i = 2; i <= j; ++i) p[i - 1] = p[i]; j--; } else break; len--; } if (len < 3) return false; //create a new edge array ... List edges = new List(len); for (int i = 0; i < len; i++) edges.Add(new TEdge()); m_edges.Add(edges); //convert vertices to a double-linked-list of edges and initialize ... edges[0].xcurr = p[0].X; edges[0].ycurr = p[0].Y; InitEdge(edges[len-1], edges[0], edges[len-2], p[len-1], polyType); for (int i = len-2; i > 0; --i) InitEdge(edges[i], edges[i+1], edges[i-1], p[i], polyType); InitEdge(edges[0], edges[1], edges[len-1], p[0], polyType); //reset xcurr & ycurr and find 'eHighest' (given the Y axis coordinates //increase downward so the 'highest' edge will have the smallest ytop) ... TEdge e = edges[0]; TEdge eHighest = e; do { e.xcurr = e.xbot; e.ycurr = e.ybot; if (e.ytop < eHighest.ytop) eHighest = e; e = e.next; } while ( e != edges[0]); //make sure eHighest is positioned so the following loop works safely ... if (eHighest.windDelta > 0) eHighest = eHighest.next; if (eHighest.dx == horizontal) eHighest = eHighest.next; //finally insert each local minima ... e = eHighest; do { e = AddBoundsToLML(e); } while( e != eHighest ); return true; } //------------------------------------------------------------------------------ private void InitEdge(TEdge e, TEdge eNext, TEdge ePrev, IntPoint pt, PolyType polyType) { e.next = eNext; e.prev = ePrev; e.xcurr = pt.X; e.ycurr = pt.Y; if (e.ycurr >= e.next.ycurr) { e.xbot = e.xcurr; e.ybot = e.ycurr; e.xtop = e.next.xcurr; e.ytop = e.next.ycurr; e.windDelta = 1; } else { e.xtop = e.xcurr; e.ytop = e.ycurr; e.xbot = e.next.xcurr; e.ybot = e.next.ycurr; e.windDelta = -1; } SetDx(e); e.polyType = polyType; e.outIdx = -1; } //------------------------------------------------------------------------------ private void SetDx(TEdge e) { if (e.ybot == e.ytop) e.dx = horizontal; else e.dx = (double)(e.xtop - e.xbot)/(e.ytop - e.ybot); } //--------------------------------------------------------------------------- TEdge AddBoundsToLML(TEdge e) { //Starting at the top of one bound we progress to the bottom where there's //a local minima. We then go to the top of the next bound. These two bounds //form the left and right (or right and left) bounds of the local minima. e.nextInLML = null; e = e.next; for (;;) { if ( e.dx == horizontal ) { //nb: proceed through horizontals when approaching from their right, // but break on horizontal minima if approaching from their left. // This ensures 'local minima' are always on the left of horizontals. if (e.next.ytop < e.ytop && e.next.xbot > e.prev.xbot) break; if (e.xtop != e.prev.xbot) SwapX(e); e.nextInLML = e.prev; } else if (e.ycurr == e.prev.ycurr) break; else e.nextInLML = e.prev; e = e.next; } //e and e.prev are now at a local minima ... LocalMinima newLm = new LocalMinima(); newLm.next = null; newLm.Y = e.prev.ybot; if ( e.dx == horizontal ) //horizontal edges never start a left bound { if (e.xbot != e.prev.xbot) SwapX(e); newLm.leftBound = e.prev; newLm.rightBound = e; } else if (e.dx < e.prev.dx) { newLm.leftBound = e.prev; newLm.rightBound = e; } else { newLm.leftBound = e; newLm.rightBound = e.prev; } newLm.leftBound.side = EdgeSide.esLeft; newLm.rightBound.side = EdgeSide.esRight; InsertLocalMinima( newLm ); for (;;) { if ( e.next.ytop == e.ytop && e.next.dx != horizontal ) break; e.nextInLML = e.next; e = e.next; if ( e.dx == horizontal && e.xbot != e.prev.xtop) SwapX(e); } return e.next; } //------------------------------------------------------------------------------ private void InsertLocalMinima(LocalMinima newLm) { if( m_MinimaList == null ) { m_MinimaList = newLm; } else if( newLm.Y >= m_MinimaList.Y ) { newLm.next = m_MinimaList; m_MinimaList = newLm; } else { LocalMinima tmpLm = m_MinimaList; while( tmpLm.next != null && ( newLm.Y < tmpLm.next.Y ) ) tmpLm = tmpLm.next; newLm.next = tmpLm.next; tmpLm.next = newLm; } } //------------------------------------------------------------------------------ protected void PopLocalMinima() { if (m_CurrentLM == null) return; m_CurrentLM = m_CurrentLM.next; } //------------------------------------------------------------------------------ private void SwapX(TEdge e) { //swap horizontal edges' top and bottom x's so they follow the natural //progression of the bounds - ie so their xbots will align with the //adjoining lower edge. [Helpful in the ProcessHorizontal() method.] e.xcurr = e.xtop; e.xtop = e.xbot; e.xbot = e.xcurr; } //------------------------------------------------------------------------------ protected virtual void Reset() { m_CurrentLM = m_MinimaList; //reset all edges ... LocalMinima lm = m_MinimaList; while (lm != null) { TEdge e = lm.leftBound; while (e != null) { e.xcurr = e.xbot; e.ycurr = e.ybot; e.side = EdgeSide.esLeft; e.outIdx = -1; e = e.nextInLML; } e = lm.rightBound; while (e != null) { e.xcurr = e.xbot; e.ycurr = e.ybot; e.side = EdgeSide.esRight; e.outIdx = -1; e = e.nextInLML; } lm = lm.next; } return; } //------------------------------------------------------------------------------ public IntRect GetBounds() { IntRect result = new IntRect(); LocalMinima lm = m_MinimaList; if (lm == null) return result; result.left = lm.leftBound.xbot; result.top = lm.leftBound.ybot; result.right = lm.leftBound.xbot; result.bottom = lm.leftBound.ybot; while (lm != null) { if (lm.leftBound.ybot > result.bottom) result.bottom = lm.leftBound.ybot; TEdge e = lm.leftBound; for (; ; ) { TEdge bottomE = e; while (e.nextInLML != null) { if (e.xbot < result.left) result.left = e.xbot; if (e.xbot > result.right) result.right = e.xbot; e = e.nextInLML; } if (e.xbot < result.left) result.left = e.xbot; if (e.xbot > result.right) result.right = e.xbot; if (e.xtop < result.left) result.left = e.xtop; if (e.xtop > result.right) result.right = e.xtop; if (e.ytop < result.top) result.top = e.ytop; if (bottomE == lm.leftBound) e = lm.rightBound; else break; } lm = lm.next; } return result; } } //ClipperBase public class Clipper : ClipperBase { private List m_PolyOuts; private ClipType m_ClipType; private Scanbeam m_Scanbeam; private TEdge m_ActiveEdges; private TEdge m_SortedEdges; private IntersectNode m_IntersectNodes; private bool m_ExecuteLocked; private PolyFillType m_ClipFillType; private PolyFillType m_SubjFillType; private List m_Joins; private List m_HorizJoins; private bool m_ReverseOutput; public Clipper() { m_Scanbeam = null; m_ActiveEdges = null; m_SortedEdges = null; m_IntersectNodes = null; m_ExecuteLocked = false; m_PolyOuts = new List(); m_Joins = new List(); m_HorizJoins = new List(); m_ReverseOutput = false; } //------------------------------------------------------------------------------ //destructor - commented out since I gather this impedes the GC //~Clipper() //destructor //{ // Clear(); // DisposeScanbeamList(); //} //------------------------------------------------------------------------------ public override void Clear() { if (m_edges.Count == 0) return; //avoids problems with ClipperBase destructor DisposeAllPolyPts(); base.Clear(); } //------------------------------------------------------------------------------ void DisposeScanbeamList() { while ( m_Scanbeam != null ) { Scanbeam sb2 = m_Scanbeam.next; m_Scanbeam = null; m_Scanbeam = sb2; } } //------------------------------------------------------------------------------ protected override void Reset() { base.Reset(); m_Scanbeam = null; m_ActiveEdges = null; m_SortedEdges = null; DisposeAllPolyPts(); LocalMinima lm = m_MinimaList; while (lm != null) { InsertScanbeam(lm.Y); InsertScanbeam(lm.leftBound.ytop); lm = lm.next; } } //------------------------------------------------------------------------------ public bool ReverseSolution { get { return m_ReverseOutput; } set { m_ReverseOutput = value; } } //------------------------------------------------------------------------------ private void InsertScanbeam(Int64 Y) { if( m_Scanbeam == null ) { m_Scanbeam = new Scanbeam(); m_Scanbeam.next = null; m_Scanbeam.Y = Y; } else if( Y > m_Scanbeam.Y ) { Scanbeam newSb = new Scanbeam(); newSb.Y = Y; newSb.next = m_Scanbeam; m_Scanbeam = newSb; } else { Scanbeam sb2 = m_Scanbeam; while( sb2.next != null && ( Y <= sb2.next.Y ) ) sb2 = sb2.next; if( Y == sb2.Y ) return; //ie ignores duplicates Scanbeam newSb = new Scanbeam(); newSb.Y = Y; newSb.next = sb2.next; sb2.next = newSb; } } //------------------------------------------------------------------------------ public bool Execute(ClipType clipType, Polygons solution, PolyFillType subjFillType, PolyFillType clipFillType) { if (m_ExecuteLocked) return false; m_ExecuteLocked = true; solution.Clear(); m_SubjFillType = subjFillType; m_ClipFillType = clipFillType; m_ClipType = clipType; bool succeeded = ExecuteInternal(false); //build the return polygons ... if (succeeded) BuildResult(solution); m_ExecuteLocked = false; return succeeded; } //------------------------------------------------------------------------------ public bool Execute(ClipType clipType, ExPolygons solution, PolyFillType subjFillType, PolyFillType clipFillType) { if (m_ExecuteLocked) return false; m_ExecuteLocked = true; solution.Clear(); m_SubjFillType = subjFillType; m_ClipFillType = clipFillType; m_ClipType = clipType; bool succeeded = ExecuteInternal(true); //build the return polygons ... if (succeeded) BuildResultEx(solution); m_ExecuteLocked = false; return succeeded; } //------------------------------------------------------------------------------ public bool Execute(ClipType clipType, Polygons solution) { return Execute(clipType, solution, PolyFillType.pftEvenOdd, PolyFillType.pftEvenOdd); } //------------------------------------------------------------------------------ public bool Execute(ClipType clipType, ExPolygons solution) { return Execute(clipType, solution, PolyFillType.pftEvenOdd, PolyFillType.pftEvenOdd); } //------------------------------------------------------------------------------ internal int PolySort(OutRec or1, OutRec or2) { if (or1 == or2) return 0; else if (or1.pts == null || or2.pts == null) { if ((or1.pts == null) != (or2.pts == null)) { return or1.pts == null ? 1 : -1; } else return 0; } int i1, i2; if (or1.isHole) i1 = or1.FirstLeft.idx; else i1 = or1.idx; if (or2.isHole) i2 = or2.FirstLeft.idx; else i2 = or2.idx; int result = i1 - i2; if (result == 0 && (or1.isHole != or2.isHole)) { return or1.isHole ? 1 : -1; } return result; } //------------------------------------------------------------------------------ internal OutRec FindAppendLinkEnd(OutRec outRec) { while (outRec.AppendLink != null) outRec = outRec.AppendLink; return outRec; } //------------------------------------------------------------------------------ internal void FixHoleLinkage(OutRec outRec) { OutRec tmp; if (outRec.bottomPt != null) tmp = m_PolyOuts[outRec.bottomPt.idx].FirstLeft; else tmp = outRec.FirstLeft; if (outRec == tmp) throw new ClipperException("HoleLinkage error"); if (tmp != null) { if (tmp.AppendLink != null) tmp = FindAppendLinkEnd(tmp); if (tmp == outRec) tmp = null; else if (tmp.isHole) { FixHoleLinkage(tmp); tmp = tmp.FirstLeft; } } outRec.FirstLeft = tmp; if (tmp == null) outRec.isHole = false; outRec.AppendLink = null; } //------------------------------------------------------------------------------ private bool ExecuteInternal(bool fixHoleLinkages) { bool succeeded; try { Reset(); if (m_CurrentLM == null) return true; Int64 botY = PopScanbeam(); do { InsertLocalMinimaIntoAEL(botY); m_HorizJoins.Clear(); ProcessHorizontals(); Int64 topY = PopScanbeam(); succeeded = ProcessIntersections(botY, topY); if (!succeeded) break; ProcessEdgesAtTopOfScanbeam(topY); botY = topY; } while (m_Scanbeam != null); } catch { succeeded = false; } if (succeeded) { //tidy up output polygons and fix orientations where necessary ... foreach (OutRec outRec in m_PolyOuts) { if (outRec.pts == null) continue; FixupOutPolygon(outRec); if (outRec.pts == null) continue; if (outRec.isHole && fixHoleLinkages) FixHoleLinkage(outRec); if (outRec.bottomPt == outRec.bottomFlag && (Orientation(outRec, m_UseFullRange) != (Area(outRec, m_UseFullRange) > 0))) { DisposeBottomPt(outRec); FixupOutPolygon(outRec); } if (outRec.isHole == (m_ReverseOutput ^ Orientation(outRec, m_UseFullRange))) ReversePolyPtLinks(outRec.pts); } JoinCommonEdges(fixHoleLinkages); if (fixHoleLinkages) m_PolyOuts.Sort(new Comparison(PolySort)); } m_Joins.Clear(); m_HorizJoins.Clear(); return succeeded; } //------------------------------------------------------------------------------ private Int64 PopScanbeam() { Int64 Y = m_Scanbeam.Y; m_Scanbeam = m_Scanbeam.next; return Y; } //------------------------------------------------------------------------------ private void DisposeAllPolyPts(){ for (int i = 0; i < m_PolyOuts.Count; ++i) DisposeOutRec(i); m_PolyOuts.Clear(); } //------------------------------------------------------------------------------ void DisposeBottomPt(OutRec outRec) { OutPt next = outRec.bottomPt.next; OutPt prev = outRec.bottomPt.prev; if (outRec.pts == outRec.bottomPt) outRec.pts = next; outRec.bottomPt = null; next.prev = prev; prev.next = next; outRec.bottomPt = next; } //------------------------------------------------------------------------------ void DisposeOutRec(int index) { OutRec outRec = m_PolyOuts[index]; if (outRec.pts != null) DisposeOutPts(outRec.pts); outRec = null; m_PolyOuts[index] = null; } //------------------------------------------------------------------------------ private void DisposeOutPts(OutPt pp) { if (pp == null) return; pp.prev.next = null; while (pp != null) { pp = pp.next; } } //------------------------------------------------------------------------------ private void AddJoin(TEdge e1, TEdge e2, int e1OutIdx, int e2OutIdx) { JoinRec jr = new JoinRec(); if (e1OutIdx >= 0) jr.poly1Idx = e1OutIdx; else jr.poly1Idx = e1.outIdx; jr.pt1a = new IntPoint(e1.xcurr, e1.ycurr); jr.pt1b = new IntPoint(e1.xtop, e1.ytop); if (e2OutIdx >= 0) jr.poly2Idx = e2OutIdx; else jr.poly2Idx = e2.outIdx; jr.pt2a = new IntPoint(e2.xcurr, e2.ycurr); jr.pt2b = new IntPoint(e2.xtop, e2.ytop); m_Joins.Add(jr); } //------------------------------------------------------------------------------ private void AddHorzJoin(TEdge e, int idx) { HorzJoinRec hj = new HorzJoinRec(); hj.edge = e; hj.savedIdx = idx; m_HorizJoins.Add(hj); } //------------------------------------------------------------------------------ private void InsertLocalMinimaIntoAEL(Int64 botY) { while( m_CurrentLM != null && ( m_CurrentLM.Y == botY ) ) { TEdge lb = m_CurrentLM.leftBound; TEdge rb = m_CurrentLM.rightBound; InsertEdgeIntoAEL( lb ); InsertScanbeam( lb.ytop ); InsertEdgeIntoAEL( rb ); if (IsEvenOddFillType(lb)) { lb.windDelta = 1; rb.windDelta = 1; } else { rb.windDelta = -lb.windDelta; } SetWindingCount(lb); rb.windCnt = lb.windCnt; rb.windCnt2 = lb.windCnt2; if( rb.dx == horizontal ) { //nb: only rightbounds can have a horizontal bottom edge AddEdgeToSEL( rb ); InsertScanbeam( rb.nextInLML.ytop ); } else InsertScanbeam( rb.ytop ); if( IsContributing(lb) ) AddLocalMinPoly(lb, rb, new IntPoint(lb.xcurr, m_CurrentLM.Y)); //if any output polygons share an edge, they'll need joining later ... if (rb.outIdx >= 0) { if (rb.dx == horizontal) { for (int i = 0; i < m_HorizJoins.Count; i++) { IntPoint pt = new IntPoint(), pt2 = new IntPoint(); //used as dummy params. HorzJoinRec hj = m_HorizJoins[i]; //if horizontals rb and hj.edge overlap, flag for joining later ... if (GetOverlapSegment(new IntPoint(hj.edge.xbot, hj.edge.ybot), new IntPoint(hj.edge.xtop, hj.edge.ytop), new IntPoint(rb.xbot, rb.ybot), new IntPoint(rb.xtop, rb.ytop), ref pt, ref pt2)) AddJoin(hj.edge, rb, hj.savedIdx, -1); } } } if( lb.nextInAEL != rb ) { if (rb.outIdx >= 0 && rb.prevInAEL.outIdx >= 0 && SlopesEqual(rb.prevInAEL, rb, m_UseFullRange)) AddJoin(rb, rb.prevInAEL, -1, -1); TEdge e = lb.nextInAEL; IntPoint pt = new IntPoint(lb.xcurr, lb.ycurr); while( e != rb ) { if(e == null) throw new ClipperException("InsertLocalMinimaIntoAEL: missing rightbound!"); //nb: For calculating winding counts etc, IntersectEdges() assumes //that param1 will be to the right of param2 ABOVE the intersection ... IntersectEdges( rb , e , pt , Protects.ipNone); //order important here e = e.nextInAEL; } } PopLocalMinima(); } } //------------------------------------------------------------------------------ private void InsertEdgeIntoAEL(TEdge edge) { edge.prevInAEL = null; edge.nextInAEL = null; if (m_ActiveEdges == null) { m_ActiveEdges = edge; } else if( E2InsertsBeforeE1(m_ActiveEdges, edge) ) { edge.nextInAEL = m_ActiveEdges; m_ActiveEdges.prevInAEL = edge; m_ActiveEdges = edge; } else { TEdge e = m_ActiveEdges; while (e.nextInAEL != null && !E2InsertsBeforeE1(e.nextInAEL, edge)) e = e.nextInAEL; edge.nextInAEL = e.nextInAEL; if (e.nextInAEL != null) e.nextInAEL.prevInAEL = edge; edge.prevInAEL = e; e.nextInAEL = edge; } } //---------------------------------------------------------------------- private bool E2InsertsBeforeE1(TEdge e1, TEdge e2) { return e2.xcurr == e1.xcurr? e2.dx > e1.dx : e2.xcurr < e1.xcurr; } //------------------------------------------------------------------------------ private bool IsEvenOddFillType(TEdge edge) { if (edge.polyType == PolyType.ptSubject) return m_SubjFillType == PolyFillType.pftEvenOdd; else return m_ClipFillType == PolyFillType.pftEvenOdd; } //------------------------------------------------------------------------------ private bool IsEvenOddAltFillType(TEdge edge) { if (edge.polyType == PolyType.ptSubject) return m_ClipFillType == PolyFillType.pftEvenOdd; else return m_SubjFillType == PolyFillType.pftEvenOdd; } //------------------------------------------------------------------------------ private bool IsContributing(TEdge edge) { PolyFillType pft, pft2; if (edge.polyType == PolyType.ptSubject) { pft = m_SubjFillType; pft2 = m_ClipFillType; } else { pft = m_ClipFillType; pft2 = m_SubjFillType; } switch (pft) { case PolyFillType.pftEvenOdd: case PolyFillType.pftNonZero: if (Math.Abs(edge.windCnt) != 1) return false; break; case PolyFillType.pftPositive: if (edge.windCnt != 1) return false; break; default: //PolyFillType.pftNegative if (edge.windCnt != -1) return false; break; } switch (m_ClipType) { case ClipType.ctIntersection: switch (pft2) { case PolyFillType.pftEvenOdd: case PolyFillType.pftNonZero: return (edge.windCnt2 != 0); case PolyFillType.pftPositive: return (edge.windCnt2 > 0); default: return (edge.windCnt2 < 0); } case ClipType.ctUnion: switch (pft2) { case PolyFillType.pftEvenOdd: case PolyFillType.pftNonZero: return (edge.windCnt2 == 0); case PolyFillType.pftPositive: return (edge.windCnt2 <= 0); default: return (edge.windCnt2 >= 0); } case ClipType.ctDifference: if (edge.polyType == PolyType.ptSubject) switch (pft2) { case PolyFillType.pftEvenOdd: case PolyFillType.pftNonZero: return (edge.windCnt2 == 0); case PolyFillType.pftPositive: return (edge.windCnt2 <= 0); default: return (edge.windCnt2 >= 0); } else switch (pft2) { case PolyFillType.pftEvenOdd: case PolyFillType.pftNonZero: return (edge.windCnt2 != 0); case PolyFillType.pftPositive: return (edge.windCnt2 > 0); default: return (edge.windCnt2 < 0); } } return true; } //------------------------------------------------------------------------------ private void SetWindingCount(TEdge edge) { TEdge e = edge.prevInAEL; //find the edge of the same polytype that immediately preceeds 'edge' in AEL while (e != null && e.polyType != edge.polyType) e = e.prevInAEL; if (e == null) { edge.windCnt = edge.windDelta; edge.windCnt2 = 0; e = m_ActiveEdges; //ie get ready to calc windCnt2 } else if (IsEvenOddFillType(edge)) { //even-odd filling ... edge.windCnt = 1; edge.windCnt2 = e.windCnt2; e = e.nextInAEL; //ie get ready to calc windCnt2 } else { //nonZero filling ... if (e.windCnt * e.windDelta < 0) { if (Math.Abs(e.windCnt) > 1) { if (e.windDelta * edge.windDelta < 0) edge.windCnt = e.windCnt; else edge.windCnt = e.windCnt + edge.windDelta; } else edge.windCnt = e.windCnt + e.windDelta + edge.windDelta; } else { if (Math.Abs(e.windCnt) > 1 && e.windDelta * edge.windDelta < 0) edge.windCnt = e.windCnt; else if (e.windCnt + edge.windDelta == 0) edge.windCnt = e.windCnt; else edge.windCnt = e.windCnt + edge.windDelta; } edge.windCnt2 = e.windCnt2; e = e.nextInAEL; //ie get ready to calc windCnt2 } //update windCnt2 ... if (IsEvenOddAltFillType(edge)) { //even-odd filling ... while (e != edge) { edge.windCnt2 = (edge.windCnt2 == 0) ? 1 : 0; e = e.nextInAEL; } } else { //nonZero filling ... while (e != edge) { edge.windCnt2 += e.windDelta; e = e.nextInAEL; } } } //------------------------------------------------------------------------------ private void AddEdgeToSEL(TEdge edge) { //SEL pointers in PEdge are reused to build a list of horizontal edges. //However, we don't need to worry about order with horizontal edge processing. if (m_SortedEdges == null) { m_SortedEdges = edge; edge.prevInSEL = null; edge.nextInSEL = null; } else { edge.nextInSEL = m_SortedEdges; edge.prevInSEL = null; m_SortedEdges.prevInSEL = edge; m_SortedEdges = edge; } } //------------------------------------------------------------------------------ private void CopyAELToSEL() { TEdge e = m_ActiveEdges; m_SortedEdges = e; if (m_ActiveEdges == null) return; m_SortedEdges.prevInSEL = null; e = e.nextInAEL; while (e != null) { e.prevInSEL = e.prevInAEL; e.prevInSEL.nextInSEL = e; e.nextInSEL = null; e = e.nextInAEL; } } //------------------------------------------------------------------------------ private void SwapPositionsInAEL(TEdge edge1, TEdge edge2) { if (edge1.nextInAEL == null && edge1.prevInAEL == null) return; if (edge2.nextInAEL == null && edge2.prevInAEL == null) return; if (edge1.nextInAEL == edge2) { TEdge next = edge2.nextInAEL; if (next != null) next.prevInAEL = edge1; TEdge prev = edge1.prevInAEL; if (prev != null) prev.nextInAEL = edge2; edge2.prevInAEL = prev; edge2.nextInAEL = edge1; edge1.prevInAEL = edge2; edge1.nextInAEL = next; } else if (edge2.nextInAEL == edge1) { TEdge next = edge1.nextInAEL; if (next != null) next.prevInAEL = edge2; TEdge prev = edge2.prevInAEL; if (prev != null) prev.nextInAEL = edge1; edge1.prevInAEL = prev; edge1.nextInAEL = edge2; edge2.prevInAEL = edge1; edge2.nextInAEL = next; } else { TEdge next = edge1.nextInAEL; TEdge prev = edge1.prevInAEL; edge1.nextInAEL = edge2.nextInAEL; if (edge1.nextInAEL != null) edge1.nextInAEL.prevInAEL = edge1; edge1.prevInAEL = edge2.prevInAEL; if (edge1.prevInAEL != null) edge1.prevInAEL.nextInAEL = edge1; edge2.nextInAEL = next; if (edge2.nextInAEL != null) edge2.nextInAEL.prevInAEL = edge2; edge2.prevInAEL = prev; if (edge2.prevInAEL != null) edge2.prevInAEL.nextInAEL = edge2; } if (edge1.prevInAEL == null) m_ActiveEdges = edge1; else if (edge2.prevInAEL == null) m_ActiveEdges = edge2; } //------------------------------------------------------------------------------ private void SwapPositionsInSEL(TEdge edge1, TEdge edge2) { if (edge1.nextInSEL == null && edge1.prevInSEL == null) return; if (edge2.nextInSEL == null && edge2.prevInSEL == null) return; if (edge1.nextInSEL == edge2) { TEdge next = edge2.nextInSEL; if (next != null) next.prevInSEL = edge1; TEdge prev = edge1.prevInSEL; if (prev != null) prev.nextInSEL = edge2; edge2.prevInSEL = prev; edge2.nextInSEL = edge1; edge1.prevInSEL = edge2; edge1.nextInSEL = next; } else if (edge2.nextInSEL == edge1) { TEdge next = edge1.nextInSEL; if (next != null) next.prevInSEL = edge2; TEdge prev = edge2.prevInSEL; if (prev != null) prev.nextInSEL = edge1; edge1.prevInSEL = prev; edge1.nextInSEL = edge2; edge2.prevInSEL = edge1; edge2.nextInSEL = next; } else { TEdge next = edge1.nextInSEL; TEdge prev = edge1.prevInSEL; edge1.nextInSEL = edge2.nextInSEL; if (edge1.nextInSEL != null) edge1.nextInSEL.prevInSEL = edge1; edge1.prevInSEL = edge2.prevInSEL; if (edge1.prevInSEL != null) edge1.prevInSEL.nextInSEL = edge1; edge2.nextInSEL = next; if (edge2.nextInSEL != null) edge2.nextInSEL.prevInSEL = edge2; edge2.prevInSEL = prev; if (edge2.prevInSEL != null) edge2.prevInSEL.nextInSEL = edge2; } if (edge1.prevInSEL == null) m_SortedEdges = edge1; else if (edge2.prevInSEL == null) m_SortedEdges = edge2; } //------------------------------------------------------------------------------ private void AddLocalMaxPoly(TEdge e1, TEdge e2, IntPoint pt) { AddOutPt(e1, pt); if (e1.outIdx == e2.outIdx) { e1.outIdx = -1; e2.outIdx = -1; } else if (e1.outIdx < e2.outIdx) AppendPolygon(e1, e2); else AppendPolygon(e2, e1); } //------------------------------------------------------------------------------ private void AddLocalMinPoly(TEdge e1, TEdge e2, IntPoint pt) { TEdge e, prevE; if (e2.dx == horizontal || (e1.dx > e2.dx)) { AddOutPt(e1, pt); e2.outIdx = e1.outIdx; e1.side = EdgeSide.esLeft; e2.side = EdgeSide.esRight; e = e1; if (e.prevInAEL == e2) prevE = e2.prevInAEL; else prevE = e.prevInAEL; } else { AddOutPt(e2, pt); e1.outIdx = e2.outIdx; e1.side = EdgeSide.esRight; e2.side = EdgeSide.esLeft; e = e2; if (e.prevInAEL == e1) prevE = e1.prevInAEL; else prevE = e.prevInAEL; } if (prevE != null && prevE.outIdx >= 0 && (TopX(prevE, pt.Y) == TopX(e, pt.Y)) && SlopesEqual(e, prevE, m_UseFullRange)) AddJoin(e, prevE, -1, -1); } //------------------------------------------------------------------------------ private OutRec CreateOutRec() { OutRec result = new OutRec(); result.idx = -1; result.isHole = false; result.FirstLeft = null; result.AppendLink = null; result.pts = null; result.bottomPt = null; result.bottomFlag = null; result.sides = EdgeSide.esNeither; return result; } //------------------------------------------------------------------------------ private void AddOutPt(TEdge e, IntPoint pt) { bool ToFront = (e.side == EdgeSide.esLeft); if( e.outIdx < 0 ) { OutRec outRec = CreateOutRec(); m_PolyOuts.Add(outRec); outRec.idx = m_PolyOuts.Count -1; e.outIdx = outRec.idx; OutPt op = new OutPt(); outRec.pts = op; outRec.bottomPt = op; op.pt = pt; op.idx = outRec.idx; op.next = op; op.prev = op; SetHoleState(e, outRec); } else { OutRec outRec = m_PolyOuts[e.outIdx]; OutPt op = outRec.pts, op2, opBot; if (ToFront && PointsEqual(pt, op.pt) || (!ToFront && PointsEqual(pt, op.prev.pt))) return; if ((e.side | outRec.sides) != outRec.sides) { //check for 'rounding' artefacts ... if (outRec.sides == EdgeSide.esNeither && pt.Y == op.pt.Y) if (ToFront) { if (pt.X == op.pt.X + 1) return; //ie wrong side of bottomPt } else if (pt.X == op.pt.X - 1) return; //ie wrong side of bottomPt outRec.sides = (EdgeSide)(outRec.sides | e.side); if (outRec.sides == EdgeSide.esBoth) { //A vertex from each side has now been added. //Vertices of one side of an output polygon are quite commonly close to //or even 'touching' edges of the other side of the output polygon. //Very occasionally vertices from one side can 'cross' an edge on the //the other side. The distance 'crossed' is always less that a unit //and is purely an artefact of coordinate rounding. Nevertheless, this //results in very tiny self-intersections. Because of the way //orientation is calculated, even tiny self-intersections can cause //the Orientation function to return the wrong result. Therefore, it's //important to ensure that any self-intersections close to BottomPt are //detected and removed before orientation is assigned. if (ToFront) { opBot = outRec.pts; op2 = opBot.next; //op2 == right side if (opBot.pt.Y != op2.pt.Y && opBot.pt.Y != pt.Y && ((opBot.pt.X - pt.X) / (opBot.pt.Y - pt.Y) < (opBot.pt.X - op2.pt.X) / (opBot.pt.Y - op2.pt.Y))) outRec.bottomFlag = opBot; } else { opBot = outRec.pts.prev; op2 = opBot.next; //op2 == left side if (opBot.pt.Y != op2.pt.Y && opBot.pt.Y != pt.Y && ((opBot.pt.X - pt.X) / (opBot.pt.Y - pt.Y) > (opBot.pt.X - op2.pt.X) / (opBot.pt.Y - op2.pt.Y))) outRec.bottomFlag = opBot; } } } op2 = new OutPt(); op2.pt = pt; op2.idx = outRec.idx; if (op2.pt.Y == outRec.bottomPt.pt.Y && op2.pt.X < outRec.bottomPt.pt.X) outRec.bottomPt = op2; op2.next = op; op2.prev = op.prev; op2.prev.next = op2; op.prev = op2; if (ToFront) outRec.pts = op2; } } //------------------------------------------------------------------------------ internal void SwapPoints(ref IntPoint pt1, ref IntPoint pt2) { IntPoint tmp = pt1; pt1 = pt2; pt2 = tmp; } //------------------------------------------------------------------------------ private bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, IntPoint pt2b, ref IntPoint pt1, ref IntPoint pt2) { //precondition: segments are colinear. if ( pt1a.Y == pt1b.Y || Math.Abs((pt1a.X - pt1b.X)/(pt1a.Y - pt1b.Y)) > 1 ) { if (pt1a.X > pt1b.X) SwapPoints(ref pt1a, ref pt1b); if (pt2a.X > pt2b.X) SwapPoints(ref pt2a, ref pt2b); if (pt1a.X > pt2a.X) pt1 = pt1a; else pt1 = pt2a; if (pt1b.X < pt2b.X) pt2 = pt1b; else pt2 = pt2b; return pt1.X < pt2.X; } else { if (pt1a.Y < pt1b.Y) SwapPoints(ref pt1a, ref pt1b); if (pt2a.Y < pt2b.Y) SwapPoints(ref pt2a, ref pt2b); if (pt1a.Y < pt2a.Y) pt1 = pt1a; else pt1 = pt2a; if (pt1b.Y > pt2b.Y) pt2 = pt1b; else pt2 = pt2b; return pt1.Y > pt2.Y; } } //------------------------------------------------------------------------------ private bool FindSegment(ref OutPt pp, ref IntPoint pt1, ref IntPoint pt2) { if (pp == null) return false; OutPt pp2 = pp; IntPoint pt1a = new IntPoint(pt1); IntPoint pt2a = new IntPoint(pt2); do { if (SlopesEqual(pt1a, pt2a, pp.pt, pp.prev.pt, true) && SlopesEqual(pt1a, pt2a, pp.pt, true) && GetOverlapSegment(pt1a, pt2a, pp.pt, pp.prev.pt, ref pt1, ref pt2)) return true; pp = pp.next; } while (pp != pp2); return false; } //------------------------------------------------------------------------------ internal bool Pt3IsBetweenPt1AndPt2(IntPoint pt1, IntPoint pt2, IntPoint pt3) { if (PointsEqual(pt1, pt3) || PointsEqual(pt2, pt3)) return true; else if (pt1.X != pt2.X) return (pt1.X < pt3.X) == (pt3.X < pt2.X); else return (pt1.Y < pt3.Y) == (pt3.Y < pt2.Y); } //------------------------------------------------------------------------------ private OutPt InsertPolyPtBetween(OutPt p1, OutPt p2, IntPoint pt) { OutPt result = new OutPt(); result.pt = pt; if (p2 == p1.next) { p1.next = result; p2.prev = result; result.next = p2; result.prev = p1; } else { p2.next = result; p1.prev = result; result.next = p1; result.prev = p2; } return result; } //------------------------------------------------------------------------------ private void SetHoleState(TEdge e, OutRec outRec) { bool isHole = false; TEdge e2 = e.prevInAEL; while (e2 != null) { if (e2.outIdx >= 0) { isHole = !isHole; if (outRec.FirstLeft == null) outRec.FirstLeft = m_PolyOuts[e2.outIdx]; } e2 = e2.prevInAEL; } if (isHole) outRec.isHole = true; } //------------------------------------------------------------------------------ private double GetDx(IntPoint pt1, IntPoint pt2) { if (pt1.Y == pt2.Y) return horizontal; else return (double)(pt2.X - pt1.X) / (double)(pt2.Y - pt1.Y); } //--------------------------------------------------------------------------- private bool FirstIsBottomPt(OutPt btmPt1, OutPt btmPt2) { OutPt p = btmPt1.prev; while (PointsEqual(p.pt, btmPt1.pt) && (p != btmPt1)) p = p.prev; double dx1p = Math.Abs(GetDx(btmPt1.pt, p.pt)); p = btmPt1.next; while (PointsEqual(p.pt, btmPt1.pt) && (p != btmPt1)) p = p.next; double dx1n = Math.Abs(GetDx(btmPt1.pt, p.pt)); p = btmPt2.prev; while (PointsEqual(p.pt, btmPt2.pt) && (p != btmPt2)) p = p.prev; double dx2p = Math.Abs(GetDx(btmPt2.pt, p.pt)); p = btmPt2.next; while (PointsEqual(p.pt, btmPt2.pt) && (p != btmPt2)) p = p.next; double dx2n = Math.Abs(GetDx(btmPt2.pt, p.pt)); return (dx1p >= dx2p && dx1p >= dx2n) || (dx1n >= dx2p && dx1n >= dx2n); } //------------------------------------------------------------------------------ private OutPt GetBottomPt(OutPt pp) { OutPt dups = null; OutPt p = pp.next; while (p != pp) { if (p.pt.Y > pp.pt.Y) { pp = p; dups = null; } else if (p.pt.Y == pp.pt.Y && p.pt.X <= pp.pt.X) { if (p.pt.X < pp.pt.X) { dups = null; pp = p; } else { if (p.next != pp && p.prev != pp) dups = p; } } p = p.next; } if (dups != null) { //there appears to be at least 2 vertices at bottomPt so ... while (dups != p) { if (!FirstIsBottomPt(p, dups)) pp = dups; dups = dups.next; while (!PointsEqual(dups.pt, pp.pt)) dups = dups.next; } } return pp; } //------------------------------------------------------------------------------ private OutRec GetLowermostRec(OutRec outRec1, OutRec outRec2) { //work out which polygon fragment has the correct hole state ... OutPt bPt1 = outRec1.bottomPt; OutPt bPt2 = outRec2.bottomPt; if (bPt1.pt.Y > bPt2.pt.Y) return outRec1; else if (bPt1.pt.Y < bPt2.pt.Y) return outRec2; else if (bPt1.pt.X < bPt2.pt.X) return outRec1; else if (bPt1.pt.X > bPt2.pt.X) return outRec2; else if (bPt1.next == bPt1) return outRec2; else if (bPt2.next == bPt2) return outRec1; else if (FirstIsBottomPt(bPt1, bPt2)) return outRec1; else return outRec2; } //------------------------------------------------------------------------------ private void AppendPolygon(TEdge e1, TEdge e2) { //get the start and ends of both output polygons ... OutRec outRec1 = m_PolyOuts[e1.outIdx]; OutRec outRec2 = m_PolyOuts[e2.outIdx]; OutRec holeStateRec; if (outRec1.FirstLeft == outRec2) holeStateRec = outRec2; else if (outRec2.FirstLeft == outRec1) holeStateRec = outRec1; else holeStateRec = GetLowermostRec(outRec1, outRec2); OutPt p1_lft = outRec1.pts; OutPt p1_rt = p1_lft.prev; OutPt p2_lft = outRec2.pts; OutPt p2_rt = p2_lft.prev; EdgeSide side; //join e2 poly onto e1 poly and delete pointers to e2 ... if( e1.side == EdgeSide.esLeft ) { if (e2.side == EdgeSide.esLeft) { //z y x a b c ReversePolyPtLinks(p2_lft); p2_lft.next = p1_lft; p1_lft.prev = p2_lft; p1_rt.next = p2_rt; p2_rt.prev = p1_rt; outRec1.pts = p2_rt; } else { //x y z a b c p2_rt.next = p1_lft; p1_lft.prev = p2_rt; p2_lft.prev = p1_rt; p1_rt.next = p2_lft; outRec1.pts = p2_lft; } side = EdgeSide.esLeft; } else { if (e2.side == EdgeSide.esRight) { //a b c z y x ReversePolyPtLinks( p2_lft ); p1_rt.next = p2_rt; p2_rt.prev = p1_rt; p2_lft.next = p1_lft; p1_lft.prev = p2_lft; } else { //a b c x y z p1_rt.next = p2_lft; p2_lft.prev = p1_rt; p1_lft.prev = p2_rt; p2_rt.next = p1_lft; } side = EdgeSide.esRight; } if (holeStateRec == outRec2) { outRec1.bottomPt = outRec2.bottomPt; outRec1.bottomPt.idx = outRec1.idx; if (outRec2.FirstLeft != outRec1) outRec1.FirstLeft = outRec2.FirstLeft; outRec1.isHole = outRec2.isHole; } outRec2.pts = null; outRec2.bottomPt = null; outRec2.AppendLink = outRec1; int OKIdx = e1.outIdx; int ObsoleteIdx = e2.outIdx; e1.outIdx = -1; //nb: safe because we only get here via AddLocalMaxPoly e2.outIdx = -1; TEdge e = m_ActiveEdges; while( e != null ) { if( e.outIdx == ObsoleteIdx ) { e.outIdx = OKIdx; e.side = side; break; } e = e.nextInAEL; } for (int i = 0; i < m_Joins.Count; ++i) { if (m_Joins[i].poly1Idx == ObsoleteIdx) m_Joins[i].poly1Idx = OKIdx; if (m_Joins[i].poly2Idx == ObsoleteIdx) m_Joins[i].poly2Idx = OKIdx; } for (int i = 0; i < m_HorizJoins.Count; ++i) { if (m_HorizJoins[i].savedIdx == ObsoleteIdx) m_HorizJoins[i].savedIdx = OKIdx; } } //------------------------------------------------------------------------------ private void ReversePolyPtLinks(OutPt pp) { OutPt pp1; OutPt pp2; pp1 = pp; do { pp2 = pp1.next; pp1.next = pp1.prev; pp1.prev = pp2; pp1 = pp2; } while (pp1 != pp); } //------------------------------------------------------------------------------ private static void SwapSides(TEdge edge1, TEdge edge2) { EdgeSide side = edge1.side; edge1.side = edge2.side; edge2.side = side; } //------------------------------------------------------------------------------ private static void SwapPolyIndexes(TEdge edge1, TEdge edge2) { int outIdx = edge1.outIdx; edge1.outIdx = edge2.outIdx; edge2.outIdx = outIdx; } //------------------------------------------------------------------------------ private void DoEdge1(TEdge edge1, TEdge edge2, IntPoint pt) { AddOutPt(edge1, pt); SwapSides(edge1, edge2); SwapPolyIndexes(edge1, edge2); } //------------------------------------------------------------------------------ private void DoEdge2(TEdge edge1, TEdge edge2, IntPoint pt) { AddOutPt(edge2, pt); SwapSides(edge1, edge2); SwapPolyIndexes(edge1, edge2); } //------------------------------------------------------------------------------ private void DoBothEdges(TEdge edge1, TEdge edge2, IntPoint pt) { AddOutPt(edge1, pt); AddOutPt(edge2, pt); SwapSides(edge1, edge2); SwapPolyIndexes(edge1, edge2); } //------------------------------------------------------------------------------ private void IntersectEdges(TEdge e1, TEdge e2, IntPoint pt, Protects protects) { //e1 will be to the left of e2 BELOW the intersection. Therefore e1 is before //e2 in AEL except when e1 is being inserted at the intersection point ... bool e1stops = (Protects.ipLeft & protects) == 0 && e1.nextInLML == null && e1.xtop == pt.X && e1.ytop == pt.Y; bool e2stops = (Protects.ipRight & protects) == 0 && e2.nextInLML == null && e2.xtop == pt.X && e2.ytop == pt.Y; bool e1Contributing = (e1.outIdx >= 0); bool e2contributing = (e2.outIdx >= 0); //update winding counts... //assumes that e1 will be to the right of e2 ABOVE the intersection if (e1.polyType == e2.polyType) { if (IsEvenOddFillType(e1)) { int oldE1WindCnt = e1.windCnt; e1.windCnt = e2.windCnt; e2.windCnt = oldE1WindCnt; } else { if (e1.windCnt + e2.windDelta == 0) e1.windCnt = -e1.windCnt; else e1.windCnt += e2.windDelta; if (e2.windCnt - e1.windDelta == 0) e2.windCnt = -e2.windCnt; else e2.windCnt -= e1.windDelta; } } else { if (!IsEvenOddFillType(e2)) e1.windCnt2 += e2.windDelta; else e1.windCnt2 = (e1.windCnt2 == 0) ? 1 : 0; if (!IsEvenOddFillType(e1)) e2.windCnt2 -= e1.windDelta; else e2.windCnt2 = (e2.windCnt2 == 0) ? 1 : 0; } PolyFillType e1FillType, e2FillType, e1FillType2, e2FillType2; if (e1.polyType == PolyType.ptSubject) { e1FillType = m_SubjFillType; e1FillType2 = m_ClipFillType; } else { e1FillType = m_ClipFillType; e1FillType2 = m_SubjFillType; } if (e2.polyType == PolyType.ptSubject) { e2FillType = m_SubjFillType; e2FillType2 = m_ClipFillType; } else { e2FillType = m_ClipFillType; e2FillType2 = m_SubjFillType; } int e1Wc, e2Wc; switch (e1FillType) { case PolyFillType.pftPositive: e1Wc = e1.windCnt; break; case PolyFillType.pftNegative: e1Wc = -e1.windCnt; break; default: e1Wc = Math.Abs(e1.windCnt); break; } switch (e2FillType) { case PolyFillType.pftPositive: e2Wc = e2.windCnt; break; case PolyFillType.pftNegative: e2Wc = -e2.windCnt; break; default: e2Wc = Math.Abs(e2.windCnt); break; } if (e1Contributing && e2contributing) { if ( e1stops || e2stops || (e1Wc != 0 && e1Wc != 1) || (e2Wc != 0 && e2Wc != 1) || (e1.polyType != e2.polyType && m_ClipType != ClipType.ctXor)) AddLocalMaxPoly(e1, e2, pt); else DoBothEdges(e1, e2, pt); } else if (e1Contributing) { if ((e2Wc == 0 || e2Wc == 1) && (m_ClipType != ClipType.ctIntersection || e2.polyType == PolyType.ptSubject || (e2.windCnt2 != 0))) DoEdge1(e1, e2, pt); } else if (e2contributing) { if ((e1Wc == 0 || e1Wc == 1) && (m_ClipType != ClipType.ctIntersection || e1.polyType == PolyType.ptSubject || (e1.windCnt2 != 0))) DoEdge2(e1, e2, pt); } else if ( (e1Wc == 0 || e1Wc == 1) && (e2Wc == 0 || e2Wc == 1) && !e1stops && !e2stops ) { //neither edge is currently contributing ... Int64 e1Wc2, e2Wc2; switch (e1FillType2) { case PolyFillType.pftPositive: e1Wc2 = e1.windCnt2; break; case PolyFillType.pftNegative: e1Wc2 = -e1.windCnt2; break; default: e1Wc2 = Math.Abs(e1.windCnt2); break; } switch (e2FillType2) { case PolyFillType.pftPositive: e2Wc2 = e2.windCnt2; break; case PolyFillType.pftNegative: e2Wc2 = -e2.windCnt2; break; default: e2Wc2 = Math.Abs(e2.windCnt2); break; } if (e1.polyType != e2.polyType) AddLocalMinPoly(e1, e2, pt); else if (e1Wc == 1 && e2Wc == 1) switch (m_ClipType) { case ClipType.ctIntersection: { if (e1Wc2 > 0 && e2Wc2 > 0) AddLocalMinPoly(e1, e2, pt); break; } case ClipType.ctUnion: { if (e1Wc2 <= 0 && e2Wc2 <= 0) AddLocalMinPoly(e1, e2, pt); break; } case ClipType.ctDifference: { if (((e1.polyType == PolyType.ptClip) && (e1Wc2 > 0) && (e2Wc2 > 0)) || ((e1.polyType == PolyType.ptSubject) && (e1Wc2 <= 0) && (e2Wc2 <= 0))) AddLocalMinPoly(e1, e2, pt); break; } case ClipType.ctXor: { AddLocalMinPoly(e1, e2, pt); break; } } else SwapSides(e1, e2); } if ((e1stops != e2stops) && ((e1stops && (e1.outIdx >= 0)) || (e2stops && (e2.outIdx >= 0)))) { SwapSides(e1, e2); SwapPolyIndexes(e1, e2); } //finally, delete any non-contributing maxima edges ... if (e1stops) DeleteFromAEL(e1); if (e2stops) DeleteFromAEL(e2); } //------------------------------------------------------------------------------ private void DeleteFromAEL(TEdge e) { TEdge AelPrev = e.prevInAEL; TEdge AelNext = e.nextInAEL; if (AelPrev == null && AelNext == null && (e != m_ActiveEdges)) return; //already deleted if (AelPrev != null) AelPrev.nextInAEL = AelNext; else m_ActiveEdges = AelNext; if (AelNext != null) AelNext.prevInAEL = AelPrev; e.nextInAEL = null; e.prevInAEL = null; } //------------------------------------------------------------------------------ private void DeleteFromSEL(TEdge e) { TEdge SelPrev = e.prevInSEL; TEdge SelNext = e.nextInSEL; if (SelPrev == null && SelNext == null && (e != m_SortedEdges)) return; //already deleted if (SelPrev != null) SelPrev.nextInSEL = SelNext; else m_SortedEdges = SelNext; if (SelNext != null) SelNext.prevInSEL = SelPrev; e.nextInSEL = null; e.prevInSEL = null; } //------------------------------------------------------------------------------ private void UpdateEdgeIntoAEL(ref TEdge e) { if (e.nextInLML == null) throw new ClipperException("UpdateEdgeIntoAEL: invalid call"); TEdge AelPrev = e.prevInAEL; TEdge AelNext = e.nextInAEL; e.nextInLML.outIdx = e.outIdx; if (AelPrev != null) AelPrev.nextInAEL = e.nextInLML; else m_ActiveEdges = e.nextInLML; if (AelNext != null) AelNext.prevInAEL = e.nextInLML; e.nextInLML.side = e.side; e.nextInLML.windDelta = e.windDelta; e.nextInLML.windCnt = e.windCnt; e.nextInLML.windCnt2 = e.windCnt2; e = e.nextInLML; e.prevInAEL = AelPrev; e.nextInAEL = AelNext; if (e.dx != horizontal) InsertScanbeam(e.ytop); } //------------------------------------------------------------------------------ private void ProcessHorizontals() { TEdge horzEdge = m_SortedEdges; while (horzEdge != null) { DeleteFromSEL(horzEdge); ProcessHorizontal(horzEdge); horzEdge = m_SortedEdges; } } //------------------------------------------------------------------------------ private void ProcessHorizontal(TEdge horzEdge) { Direction Direction; Int64 horzLeft, horzRight; if (horzEdge.xcurr < horzEdge.xtop) { horzLeft = horzEdge.xcurr; horzRight = horzEdge.xtop; Direction = Direction.dLeftToRight; } else { horzLeft = horzEdge.xtop; horzRight = horzEdge.xcurr; Direction = Direction.dRightToLeft; } TEdge eMaxPair; if (horzEdge.nextInLML != null) eMaxPair = null; else eMaxPair = GetMaximaPair(horzEdge); TEdge e = GetNextInAEL(horzEdge, Direction); while (e != null) { TEdge eNext = GetNextInAEL(e, Direction); if (eMaxPair != null || ((Direction == Direction.dLeftToRight) && (e.xcurr <= horzRight)) || ((Direction == Direction.dRightToLeft) && (e.xcurr >= horzLeft))) { //ok, so far it looks like we're still in range of the horizontal edge if (e.xcurr == horzEdge.xtop && eMaxPair == null) { if (SlopesEqual(e, horzEdge.nextInLML, m_UseFullRange)) { //if output polygons share an edge, they'll need joining later ... if (horzEdge.outIdx >= 0 && e.outIdx >= 0) AddJoin(horzEdge.nextInLML, e, horzEdge.outIdx, -1); break; //we've reached the end of the horizontal line } else if (e.dx < horzEdge.nextInLML.dx) //we really have got to the end of the intermediate horz edge so quit. //nb: More -ve slopes follow more +ve slopes ABOVE the horizontal. break; } if (e == eMaxPair) { //horzEdge is evidently a maxima horizontal and we've arrived at its end. if (Direction == Direction.dLeftToRight) IntersectEdges(horzEdge, e, new IntPoint(e.xcurr, horzEdge.ycurr), 0); else IntersectEdges(e, horzEdge, new IntPoint(e.xcurr, horzEdge.ycurr), 0); if (eMaxPair.outIdx >= 0) throw new ClipperException("ProcessHorizontal error"); return; } else if (e.dx == horizontal && !IsMinima(e) && !(e.xcurr > e.xtop)) { if (Direction == Direction.dLeftToRight) IntersectEdges(horzEdge, e, new IntPoint(e.xcurr, horzEdge.ycurr), (IsTopHorz(horzEdge, e.xcurr)) ? Protects.ipLeft : Protects.ipBoth); else IntersectEdges(e, horzEdge, new IntPoint(e.xcurr, horzEdge.ycurr), (IsTopHorz(horzEdge, e.xcurr)) ? Protects.ipRight : Protects.ipBoth); } else if (Direction == Direction.dLeftToRight) { IntersectEdges(horzEdge, e, new IntPoint(e.xcurr, horzEdge.ycurr), (IsTopHorz(horzEdge, e.xcurr)) ? Protects.ipLeft : Protects.ipBoth); } else { IntersectEdges(e, horzEdge, new IntPoint(e.xcurr, horzEdge.ycurr), (IsTopHorz(horzEdge, e.xcurr)) ? Protects.ipRight : Protects.ipBoth); } SwapPositionsInAEL(horzEdge, e); } else if ( (Direction == Direction.dLeftToRight && e.xcurr > horzRight && horzEdge.nextInSEL == null) || (Direction == Direction.dRightToLeft && e.xcurr < horzLeft && horzEdge.nextInSEL == null) ) break; e = eNext; } //end while ( e ) if (horzEdge.nextInLML != null) { if (horzEdge.outIdx >= 0) AddOutPt(horzEdge, new IntPoint(horzEdge.xtop, horzEdge.ytop)); UpdateEdgeIntoAEL(ref horzEdge); } else { if (horzEdge.outIdx >= 0) IntersectEdges(horzEdge, eMaxPair, new IntPoint(horzEdge.xtop, horzEdge.ycurr), Protects.ipBoth); DeleteFromAEL(eMaxPair); DeleteFromAEL(horzEdge); } } //------------------------------------------------------------------------------ private bool IsTopHorz(TEdge horzEdge, double XPos) { TEdge e = m_SortedEdges; while (e != null) { if ((XPos >= Math.Min(e.xcurr, e.xtop)) && (XPos <= Math.Max(e.xcurr, e.xtop))) return false; e = e.nextInSEL; } return true; } //------------------------------------------------------------------------------ private TEdge GetNextInAEL(TEdge e, Direction Direction) { return Direction == Direction.dLeftToRight ? e.nextInAEL: e.prevInAEL; } //------------------------------------------------------------------------------ private bool IsMinima(TEdge e) { return e != null && (e.prev.nextInLML != e) && (e.next.nextInLML != e); } //------------------------------------------------------------------------------ private bool IsMaxima(TEdge e, double Y) { return (e != null && e.ytop == Y && e.nextInLML == null); } //------------------------------------------------------------------------------ private bool IsIntermediate(TEdge e, double Y) { return (e.ytop == Y && e.nextInLML != null); } //------------------------------------------------------------------------------ private TEdge GetMaximaPair(TEdge e) { if (!IsMaxima(e.next, e.ytop) || (e.next.xtop != e.xtop)) return e.prev; else return e.next; } //------------------------------------------------------------------------------ private bool ProcessIntersections(Int64 botY, Int64 topY) { if( m_ActiveEdges == null ) return true; try { BuildIntersectList(botY, topY); if ( m_IntersectNodes == null) return true; if ( FixupIntersections() ) ProcessIntersectList(); else return false; } catch { m_SortedEdges = null; DisposeIntersectNodes(); throw new ClipperException("ProcessIntersections error"); } return true; } //------------------------------------------------------------------------------ private void BuildIntersectList(Int64 botY, Int64 topY) { if ( m_ActiveEdges == null ) return; //prepare for sorting ... TEdge e = m_ActiveEdges; e.tmpX = TopX( e, topY ); m_SortedEdges = e; m_SortedEdges.prevInSEL = null; e = e.nextInAEL; while( e != null ) { e.prevInSEL = e.prevInAEL; e.prevInSEL.nextInSEL = e; e.nextInSEL = null; e.tmpX = TopX( e, topY ); e = e.nextInAEL; } //bubblesort ... bool isModified = true; while( isModified && m_SortedEdges != null ) { isModified = false; e = m_SortedEdges; while( e.nextInSEL != null ) { TEdge eNext = e.nextInSEL; IntPoint pt = new IntPoint(); if(e.tmpX > eNext.tmpX && IntersectPoint(e, eNext, ref pt)) { if (pt.Y > botY) { pt.Y = botY; pt.X = TopX(e, pt.Y); } AddIntersectNode(e, eNext, pt); SwapPositionsInSEL(e, eNext); isModified = true; } else e = eNext; } if( e.prevInSEL != null ) e.prevInSEL.nextInSEL = null; else break; } m_SortedEdges = null; } //------------------------------------------------------------------------------ private bool FixupIntersections() { if ( m_IntersectNodes.next == null ) return true; CopyAELToSEL(); IntersectNode int1 = m_IntersectNodes; IntersectNode int2 = m_IntersectNodes.next; while (int2 != null) { TEdge e1 = int1.edge1; TEdge e2; if (e1.prevInSEL == int1.edge2) e2 = e1.prevInSEL; else if (e1.nextInSEL == int1.edge2) e2 = e1.nextInSEL; else { //The current intersection is out of order, so try and swap it with //a subsequent intersection ... while (int2 != null) { if (int2.edge1.nextInSEL == int2.edge2 || int2.edge1.prevInSEL == int2.edge2) break; else int2 = int2.next; } if (int2 == null) return false; //oops!!! //found an intersect node that can be swapped ... SwapIntersectNodes(int1, int2); e1 = int1.edge1; e2 = int1.edge2; } SwapPositionsInSEL(e1, e2); int1 = int1.next; int2 = int1.next; } m_SortedEdges = null; //finally, check the last intersection too ... return (int1.edge1.prevInSEL == int1.edge2 || int1.edge1.nextInSEL == int1.edge2); } //------------------------------------------------------------------------------ private void ProcessIntersectList() { while( m_IntersectNodes != null ) { IntersectNode iNode = m_IntersectNodes.next; { IntersectEdges( m_IntersectNodes.edge1 , m_IntersectNodes.edge2 , m_IntersectNodes.pt, Protects.ipBoth ); SwapPositionsInAEL( m_IntersectNodes.edge1 , m_IntersectNodes.edge2 ); } m_IntersectNodes = null; m_IntersectNodes = iNode; } } //------------------------------------------------------------------------------ private static Int64 Round(double value) { return value < 0 ? (Int64)(value - 0.5) : (Int64)(value + 0.5); } //------------------------------------------------------------------------------ private static Int64 TopX(TEdge edge, Int64 currentY) { if (currentY == edge.ytop) return edge.xtop; return edge.xbot + Round(edge.dx *(currentY - edge.ybot)); } //------------------------------------------------------------------------------ private Int64 TopX(IntPoint pt1, IntPoint pt2, Int64 currentY) { //preconditions: pt1.Y <> pt2.Y and pt1.Y > pt2.Y if (currentY >= pt1.Y) return pt1.X; else if (currentY == pt2.Y) return pt2.X; else if (pt1.X == pt2.X) return pt1.X; else { double q = (pt1.X-pt2.X)/(pt1.Y-pt2.Y); return (Int64)Round(pt1.X + (currentY - pt1.Y) * q); } } //------------------------------------------------------------------------------ private void AddIntersectNode(TEdge e1, TEdge e2, IntPoint pt) { IntersectNode newNode = new IntersectNode(); newNode.edge1 = e1; newNode.edge2 = e2; newNode.pt = pt; newNode.next = null; if (m_IntersectNodes == null) m_IntersectNodes = newNode; else if( Process1Before2(newNode, m_IntersectNodes) ) { newNode.next = m_IntersectNodes; m_IntersectNodes = newNode; } else { IntersectNode iNode = m_IntersectNodes; while( iNode.next != null && Process1Before2(iNode.next, newNode) ) iNode = iNode.next; newNode.next = iNode.next; iNode.next = newNode; } } //------------------------------------------------------------------------------ private bool Process1Before2(IntersectNode node1, IntersectNode node2) { bool result; if (node1.pt.Y == node2.pt.Y) { if (node1.edge1 == node2.edge1 || node1.edge2 == node2.edge1) { result = node2.pt.X > node1.pt.X; return node2.edge1.dx > 0 ? !result : result; } else if (node1.edge1 == node2.edge2 || node1.edge2 == node2.edge2) { result = node2.pt.X > node1.pt.X; return node2.edge2.dx > 0 ? !result : result; } else return node2.pt.X > node1.pt.X; } else return node1.pt.Y > node2.pt.Y; } //------------------------------------------------------------------------------ private void SwapIntersectNodes(IntersectNode int1, IntersectNode int2) { TEdge e1 = int1.edge1; TEdge e2 = int1.edge2; IntPoint p = int1.pt; int1.edge1 = int2.edge1; int1.edge2 = int2.edge2; int1.pt = int2.pt; int2.edge1 = e1; int2.edge2 = e2; int2.pt = p; } //------------------------------------------------------------------------------ private bool IntersectPoint(TEdge edge1, TEdge edge2, ref IntPoint ip) { double b1, b2; if (SlopesEqual(edge1, edge2, m_UseFullRange)) return false; else if (edge1.dx == 0) { ip.X = edge1.xbot; if (edge2.dx == horizontal) { ip.Y = edge2.ybot; } else { b2 = edge2.ybot - (edge2.xbot/edge2.dx); ip.Y = Round(ip.X/edge2.dx + b2); } } else if (edge2.dx == 0) { ip.X = edge2.xbot; if (edge1.dx == horizontal) { ip.Y = edge1.ybot; } else { b1 = edge1.ybot - (edge1.xbot/edge1.dx); ip.Y = Round(ip.X/edge1.dx + b1); } } else { b1 = edge1.xbot - edge1.ybot * edge1.dx; b2 = edge2.xbot - edge2.ybot * edge2.dx; b2 = (b2-b1)/(edge1.dx - edge2.dx); ip.Y = Round(b2); ip.X = Round(edge1.dx * b2 + b1); } return //can be *so close* to the top of one edge that the rounded Y equals one ytop ... (ip.Y == edge1.ytop && ip.Y >= edge2.ytop && edge1.tmpX > edge2.tmpX) || (ip.Y == edge2.ytop && ip.Y >= edge1.ytop && edge1.tmpX > edge2.tmpX) || (ip.Y > edge1.ytop && ip.Y > edge2.ytop); } //------------------------------------------------------------------------------ private void DisposeIntersectNodes() { while ( m_IntersectNodes != null ) { IntersectNode iNode = m_IntersectNodes.next; m_IntersectNodes = null; m_IntersectNodes = iNode; } } //------------------------------------------------------------------------------ private void ProcessEdgesAtTopOfScanbeam(Int64 topY) { TEdge e = m_ActiveEdges; while( e != null ) { //1. process maxima, treating them as if they're 'bent' horizontal edges, // but exclude maxima with horizontal edges. nb: e can't be a horizontal. if( IsMaxima(e, topY) && GetMaximaPair(e).dx != horizontal ) { //'e' might be removed from AEL, as may any following edges so ... TEdge ePrior = e.prevInAEL; DoMaxima(e, topY); if( ePrior == null ) e = m_ActiveEdges; else e = ePrior.nextInAEL; } else { //2. promote horizontal edges, otherwise update xcurr and ycurr ... if( IsIntermediate(e, topY) && e.nextInLML.dx == horizontal ) { if (e.outIdx >= 0) { AddOutPt(e, new IntPoint(e.xtop, e.ytop)); for (int i = 0; i < m_HorizJoins.Count; ++i) { IntPoint pt = new IntPoint(), pt2 = new IntPoint(); HorzJoinRec hj = m_HorizJoins[i]; if (GetOverlapSegment(new IntPoint(hj.edge.xbot, hj.edge.ybot), new IntPoint(hj.edge.xtop, hj.edge.ytop), new IntPoint(e.nextInLML.xbot, e.nextInLML.ybot), new IntPoint(e.nextInLML.xtop, e.nextInLML.ytop), ref pt, ref pt2)) AddJoin(hj.edge, e.nextInLML, hj.savedIdx, e.outIdx); } AddHorzJoin(e.nextInLML, e.outIdx); } UpdateEdgeIntoAEL(ref e); AddEdgeToSEL(e); } else { //this just simplifies horizontal processing ... e.xcurr = TopX( e, topY ); e.ycurr = topY; } e = e.nextInAEL; } } //3. Process horizontals at the top of the scanbeam ... ProcessHorizontals(); //4. Promote intermediate vertices ... e = m_ActiveEdges; while( e != null ) { if( IsIntermediate( e, topY ) ) { if (e.outIdx >= 0) AddOutPt(e, new IntPoint(e.xtop, e.ytop)); UpdateEdgeIntoAEL(ref e); //if output polygons share an edge, they'll need joining later ... if (e.outIdx >= 0 && e.prevInAEL != null && e.prevInAEL.outIdx >= 0 && e.prevInAEL.xcurr == e.xbot && e.prevInAEL.ycurr == e.ybot && SlopesEqual(new IntPoint(e.xbot, e.ybot), new IntPoint(e.xtop, e.ytop), new IntPoint(e.xbot, e.ybot), new IntPoint(e.prevInAEL.xtop, e.prevInAEL.ytop), m_UseFullRange)) { AddOutPt(e.prevInAEL, new IntPoint(e.xbot, e.ybot)); AddJoin(e, e.prevInAEL, -1, -1); } else if (e.outIdx >= 0 && e.nextInAEL != null && e.nextInAEL.outIdx >= 0 && e.nextInAEL.ycurr > e.nextInAEL.ytop && e.nextInAEL.ycurr <= e.nextInAEL.ybot && e.nextInAEL.xcurr == e.xbot && e.nextInAEL.ycurr == e.ybot && SlopesEqual(new IntPoint(e.xbot, e.ybot), new IntPoint(e.xtop, e.ytop), new IntPoint(e.xbot, e.ybot), new IntPoint(e.nextInAEL.xtop, e.nextInAEL.ytop), m_UseFullRange)) { AddOutPt(e.nextInAEL, new IntPoint(e.xbot, e.ybot)); AddJoin(e, e.nextInAEL, -1, -1); } } e = e.nextInAEL; } } //------------------------------------------------------------------------------ private void DoMaxima(TEdge e, Int64 topY) { TEdge eMaxPair = GetMaximaPair(e); Int64 X = e.xtop; TEdge eNext = e.nextInAEL; while( eNext != eMaxPair ) { if (eNext == null) throw new ClipperException("DoMaxima error"); IntersectEdges( e, eNext, new IntPoint(X, topY), Protects.ipBoth ); eNext = eNext.nextInAEL; } if( e.outIdx < 0 && eMaxPair.outIdx < 0 ) { DeleteFromAEL( e ); DeleteFromAEL( eMaxPair ); } else if( e.outIdx >= 0 && eMaxPair.outIdx >= 0 ) { IntersectEdges(e, eMaxPair, new IntPoint(X, topY), Protects.ipNone); } else throw new ClipperException("DoMaxima error"); } //------------------------------------------------------------------------------ public static void ReversePolygons(Polygons polys) { foreach (var poly in polys) poly.Reverse(); } //------------------------------------------------------------------------------ public static bool Orientation(Polygon poly) { int highI = poly.Count -1; if (highI < 2) return false; int j = 0, jplus, jminus; for (int i = 0; i <= highI; ++i) { if (poly[i].Y < poly[j].Y) continue; if ((poly[i].Y > poly[j].Y || poly[i].X < poly[j].X)) j = i; }; if (j == highI) jplus = 0; else jplus = j +1; if (j == 0) jminus = highI; else jminus = j -1; //get cross product of vectors of the edges adjacent to highest point ... IntPoint vec1 = new IntPoint(poly[j].X - poly[jminus].X, poly[j].Y - poly[jminus].Y); IntPoint vec2 = new IntPoint(poly[jplus].X - poly[j].X, poly[jplus].Y - poly[j].Y); if (Math.Abs(vec1.X) > loRange || Math.Abs(vec1.Y) > loRange || Math.Abs(vec2.X) > loRange || Math.Abs(vec2.Y) > loRange) { if (Math.Abs(vec1.X) > hiRange || Math.Abs(vec1.Y) > hiRange || Math.Abs(vec2.X) > hiRange || Math.Abs(vec2.Y) > hiRange) throw new ClipperException("Coordinate exceeds range bounds."); Int128 cross = Int128.Int128Mul(vec1.X, vec2.Y) - Int128.Int128Mul(vec2.X, vec1.Y); return !cross.IsNegative(); } else return (vec1.X * vec2.Y - vec2.X * vec1.Y) > 0; } //------------------------------------------------------------------------------ private static bool FullRangeNeeded(Polygon pts) { bool result = false; for (int i = 0; i < pts.Count; i++) { if (Math.Abs(pts[i].X) > hiRange || Math.Abs(pts[i].Y) > hiRange) throw new ClipperException("Coordinate exceeds range bounds."); else if (Math.Abs(pts[i].X) > loRange || Math.Abs(pts[i].Y) > loRange) result = true; } return result; } //------------------------------------------------------------------------------ private bool Orientation(OutRec outRec, bool UseFull64BitRange) { //first make sure bottomPt is correctly assigned ... OutPt opBottom = outRec.pts, op = outRec.pts.next; while (op != outRec.pts) { if (op.pt.Y >= opBottom.pt.Y) { if (op.pt.Y > opBottom.pt.Y || op.pt.X < opBottom.pt.X) opBottom = op; } op = op.next; } outRec.bottomPt = opBottom; opBottom.idx = outRec.idx; op = opBottom; //find vertices either side of bottomPt (skipping duplicate points) .... OutPt opPrev = op.prev; OutPt opNext = op.next; while (op != opPrev && PointsEqual(op.pt, opPrev.pt)) opPrev = opPrev.prev; while (op != opNext && PointsEqual(op.pt, opNext.pt)) opNext = opNext.next; IntPoint vec1 = new IntPoint(op.pt.X - opPrev.pt.X, op.pt.Y - opPrev.pt.Y); IntPoint vec2 = new IntPoint(opNext.pt.X - op.pt.X, opNext.pt.Y - op.pt.Y); if (UseFull64BitRange) { Int128 cross = Int128.Int128Mul(vec1.X, vec2.Y) - Int128.Int128Mul(vec2.X, vec1.Y); return !cross.IsNegative(); } else return (vec1.X * vec2.Y - vec2.X * vec1.Y) > 0; } //------------------------------------------------------------------------------ private int PointCount(OutPt pts) { if (pts == null) return 0; int result = 0; OutPt p = pts; do { result++; p = p.next; } while (p != pts); return result; } //------------------------------------------------------------------------------ private void BuildResult(Polygons polyg) { polyg.Clear(); polyg.Capacity = m_PolyOuts.Count; foreach (OutRec outRec in m_PolyOuts) { if (outRec.pts == null) continue; OutPt p = outRec.pts; int cnt = PointCount(p); if (cnt < 3) continue; Polygon pg = new Polygon(cnt); for (int j = 0; j < cnt; j++) { pg.Add(p.pt); p = p.next; } polyg.Add(pg); } } //------------------------------------------------------------------------------ private void BuildResultEx(ExPolygons polyg) { polyg.Clear(); polyg.Capacity = m_PolyOuts.Count; int i = 0; while (i < m_PolyOuts.Count) { OutRec outRec = m_PolyOuts[i++]; if (outRec.pts == null) break; //nb: already sorted here OutPt p = outRec.pts; int cnt = PointCount(p); if (cnt < 3) continue; ExPolygon epg = new ExPolygon(); epg.outer = new Polygon(cnt); epg.holes = new Polygons(); for (int j = 0; j < cnt; j++) { epg.outer.Add(p.pt); p = p.next; } while (i < m_PolyOuts.Count) { outRec = m_PolyOuts[i]; if (outRec.pts == null || !outRec.isHole) break; Polygon pg = new Polygon(); p = outRec.pts; do { pg.Add(p.pt); p = p.next; } while (p != outRec.pts); epg.holes.Add(pg); i++; } polyg.Add(epg); } } //------------------------------------------------------------------------------ private void FixupOutPolygon(OutRec outRec) { //FixupOutPolygon() - removes duplicate points and simplifies consecutive //parallel edges by removing the middle vertex. OutPt lastOK = null; outRec.pts = outRec.bottomPt; OutPt pp = outRec.bottomPt; for (;;) { if (pp.prev == pp || pp.prev == pp.next) { DisposeOutPts(pp); outRec.pts = null; outRec.bottomPt = null; return; } //test for duplicate points and for same slope (cross-product) ... if (PointsEqual(pp.pt, pp.next.pt) || SlopesEqual(pp.prev.pt, pp.pt, pp.next.pt, m_UseFullRange)) { lastOK = null; if (pp == outRec.bottomPt) outRec.bottomPt = null; //flags need for updating pp.prev.next = pp.next; pp.next.prev = pp.prev; pp = pp.prev; } else if (pp == lastOK) break; else { if (lastOK == null) lastOK = pp; pp = pp.next; } } if (outRec.bottomPt == null) { outRec.bottomPt = GetBottomPt(pp); outRec.bottomPt.idx = outRec.idx; outRec.pts = outRec.bottomPt; } } //------------------------------------------------------------------------------ private void CheckHoleLinkages1(OutRec outRec1, OutRec outRec2) { //when a polygon is split into 2 polygons, make sure any holes the original //polygon contained link to the correct polygon ... for (int i = 0; i < m_PolyOuts.Count; ++i) { if (m_PolyOuts[i].isHole && m_PolyOuts[i].bottomPt != null && m_PolyOuts[i].FirstLeft == outRec1 && !PointInPolygon(m_PolyOuts[i].bottomPt.pt, outRec1.pts, m_UseFullRange)) m_PolyOuts[i].FirstLeft = outRec2; } } //---------------------------------------------------------------------- private void CheckHoleLinkages2(OutRec outRec1, OutRec outRec2) { //if a hole is owned by outRec2 then make it owned by outRec1 ... for (int i = 0; i < m_PolyOuts.Count; ++i) if (m_PolyOuts[i].isHole && m_PolyOuts[i].bottomPt != null && m_PolyOuts[i].FirstLeft == outRec2) m_PolyOuts[i].FirstLeft = outRec1; } //---------------------------------------------------------------------- private void JoinCommonEdges(bool fixHoleLinkages) { for (int i = 0; i < m_Joins.Count; i++) { JoinRec j = m_Joins[i]; OutRec outRec1 = m_PolyOuts[j.poly1Idx]; OutPt pp1a = outRec1.pts; OutRec outRec2 = m_PolyOuts[j.poly2Idx]; OutPt pp2a = outRec2.pts; IntPoint pt1 = new IntPoint(j.pt2a); IntPoint pt2 = new IntPoint(j.pt2b); IntPoint pt3 = new IntPoint(j.pt1a); IntPoint pt4 = new IntPoint(j.pt1b); if (!FindSegment(ref pp1a, ref pt1, ref pt2)) continue; if (j.poly1Idx == j.poly2Idx) { //we're searching the same polygon for overlapping segments so //segment 2 mustn't be the same as segment 1 ... pp2a = pp1a.next; if (!FindSegment(ref pp2a, ref pt3, ref pt4) || (pp2a == pp1a)) continue; } else if (!FindSegment(ref pp2a, ref pt3, ref pt4)) continue; if (!GetOverlapSegment(pt1, pt2, pt3, pt4, ref pt1, ref pt2)) continue; OutPt p1, p2, p3, p4; OutPt prev = pp1a.prev; //get p1 & p2 polypts - the overlap start & endpoints on poly1 if (PointsEqual(pp1a.pt, pt1)) p1 = pp1a; else if (PointsEqual(prev.pt, pt1)) p1 = prev; else p1 = InsertPolyPtBetween(pp1a, prev, pt1); if (PointsEqual(pp1a.pt, pt2)) p2 = pp1a; else if (PointsEqual(prev.pt, pt2)) p2 = prev; else if ((p1 == pp1a) || (p1 == prev)) p2 = InsertPolyPtBetween(pp1a, prev, pt2); else if (Pt3IsBetweenPt1AndPt2(pp1a.pt, p1.pt, pt2)) p2 = InsertPolyPtBetween(pp1a, p1, pt2); else p2 = InsertPolyPtBetween(p1, prev, pt2); //get p3 & p4 polypts - the overlap start & endpoints on poly2 prev = pp2a.prev; if (PointsEqual(pp2a.pt, pt1)) p3 = pp2a; else if (PointsEqual(prev.pt, pt1)) p3 = prev; else p3 = InsertPolyPtBetween(pp2a, prev, pt1); if (PointsEqual(pp2a.pt, pt2)) p4 = pp2a; else if (PointsEqual(prev.pt, pt2)) p4 = prev; else if ((p3 == pp2a) || (p3 == prev)) p4 = InsertPolyPtBetween(pp2a, prev, pt2); else if (Pt3IsBetweenPt1AndPt2(pp2a.pt, p3.pt, pt2)) p4 = InsertPolyPtBetween(pp2a, p3, pt2); else p4 = InsertPolyPtBetween(p3, prev, pt2); //p1.pt should equal p3.pt and p2.pt should equal p4.pt here, so ... //join p1 to p3 and p2 to p4 ... if (p1.next == p2 && p3.prev == p4) { p1.next = p3; p3.prev = p1; p2.prev = p4; p4.next = p2; } else if (p1.prev == p2 && p3.next == p4) { p1.prev = p3; p3.next = p1; p2.next = p4; p4.prev = p2; } else continue; //an orientation is probably wrong if (j.poly2Idx == j.poly1Idx) { //instead of joining two polygons, we've just created a new one by //splitting one polygon into two. outRec1.pts = GetBottomPt(p1); outRec1.bottomPt = outRec1.pts; outRec1.bottomPt.idx = outRec1.idx; outRec2 = CreateOutRec(); m_PolyOuts.Add(outRec2); outRec2.idx = m_PolyOuts.Count - 1; j.poly2Idx = outRec2.idx; outRec2.pts = GetBottomPt(p2); outRec2.bottomPt = outRec2.pts; outRec2.bottomPt.idx = outRec2.idx; if (PointInPolygon(outRec2.pts.pt, outRec1.pts, m_UseFullRange)) { //outRec1 is contained by outRec2 ... outRec2.isHole = !outRec1.isHole; outRec2.FirstLeft = outRec1; if (outRec2.isHole == Orientation(outRec2, m_UseFullRange)) ReversePolyPtLinks(outRec2.pts); } else if (PointInPolygon(outRec1.pts.pt, outRec2.pts, m_UseFullRange)) { //outRec2 is contained by outRec1 ... outRec2.isHole = outRec1.isHole; outRec1.isHole = !outRec2.isHole; outRec2.FirstLeft = outRec1.FirstLeft; outRec1.FirstLeft = outRec2; if (outRec1.isHole == Orientation(outRec1, m_UseFullRange)) ReversePolyPtLinks(outRec1.pts); //make sure any contained holes now link to the correct polygon ... if (fixHoleLinkages) CheckHoleLinkages1(outRec1, outRec2); } else { outRec2.isHole = outRec1.isHole; outRec2.FirstLeft = outRec1.FirstLeft; //make sure any contained holes now link to the correct polygon ... if (fixHoleLinkages) CheckHoleLinkages1(outRec1, outRec2); } //now fixup any subsequent m_Joins that match this polygon for (int k = i + 1; k < m_Joins.Count; k++) { JoinRec j2 = m_Joins[k]; if (j2.poly1Idx == j.poly1Idx && PointIsVertex(j2.pt1a, p2)) j2.poly1Idx = j.poly2Idx; if (j2.poly2Idx == j.poly1Idx && PointIsVertex(j2.pt2a, p2)) j2.poly2Idx = j.poly2Idx; } //now cleanup redundant edges too ... FixupOutPolygon(outRec1); FixupOutPolygon(outRec2); } else { //joined 2 polygons together ... //make sure any holes contained by outRec2 now link to outRec1 ... if (fixHoleLinkages) CheckHoleLinkages2(outRec1, outRec2); //now cleanup redundant edges too ... FixupOutPolygon(outRec1); if (outRec1.pts != null) { outRec1.isHole = !Orientation(outRec1, m_UseFullRange); if (outRec1.isHole && outRec1.FirstLeft == null) outRec1.FirstLeft = outRec2.FirstLeft; } //delete the obsolete pointer ... int OKIdx = outRec1.idx; int ObsoleteIdx = outRec2.idx; outRec2.pts = null; outRec2.bottomPt = null; outRec2.AppendLink = outRec1; //now fixup any subsequent joins that match this polygon for (int k = i + 1; k < m_Joins.Count; k++) { JoinRec j2 = m_Joins[k]; if (j2.poly1Idx == ObsoleteIdx) j2.poly1Idx = OKIdx; if (j2.poly2Idx == ObsoleteIdx) j2.poly2Idx = OKIdx; } } } } //------------------------------------------------------------------------------ public static double Area(Polygon poly) { int highI = poly.Count - 1; if (highI < 2) return 0; if (FullRangeNeeded(poly)) { Int128 a = new Int128(); a = Int128.Int128Mul(poly[highI].X, poly[0].Y) - Int128.Int128Mul(poly[0].X, poly[highI].Y); for (int i = 0; i < highI; ++i) a += Int128.Int128Mul(poly[i].X, poly[i + 1].Y) - Int128.Int128Mul(poly[i + 1].X, poly[i].Y); return a.ToDouble() / 2; } else { double area = (double)poly[highI].X * (double)poly[0].Y - (double)poly[0].X * (double)poly[highI].Y; for (int i = 0; i < highI; ++i) area += (double)poly[i].X * (double)poly[i + 1].Y - (double)poly[i + 1].X * (double)poly[i].Y; return area / 2; } } //------------------------------------------------------------------------------ double Area(OutRec outRec, bool UseFull64BitRange) { OutPt op = outRec.pts; if (UseFull64BitRange) { Int128 a = new Int128(0); do { a += Int128.Int128Mul(op.prev.pt.X, op.pt.Y) - Int128.Int128Mul(op.pt.X, op.prev.pt.Y); op = op.next; } while (op != outRec.pts); return a.ToDouble() / 2; } else { double a = 0; do { a += (op.prev.pt.X * op.pt.Y) - (op.pt.X * op.prev.pt.Y); op = op.next; } while (op != outRec.pts); return a/2; } } //------------------------------------------------------------------------------ // OffsetPolygon functions ... //------------------------------------------------------------------------------ internal static Polygon BuildArc(IntPoint pt, double a1, double a2, double r) { int steps = Math.Max(6, (int)(Math.Sqrt(Math.Abs(r)) * Math.Abs(a2 - a1))); Polygon result = new Polygon(steps); int n = steps - 1; double da = (a2 - a1) / n; double a = a1; for (int i = 0; i < steps; ++i) { result.Add(new IntPoint(pt.X + Round(Math.Cos(a) * r), pt.Y + Round(Math.Sin(a) * r))); a += da; } return result; } //------------------------------------------------------------------------------ internal static DoublePoint GetUnitNormal(IntPoint pt1, IntPoint pt2) { double dx = (pt2.X - pt1.X); double dy = (pt2.Y - pt1.Y); if ((dx == 0) && (dy == 0)) return new DoublePoint(); double f = 1 * 1.0 / Math.Sqrt(dx * dx + dy * dy); dx *= f; dy *= f; return new DoublePoint(dy, -dx); } //------------------------------------------------------------------------------ internal class DoublePoint { public double X { get; set; } public double Y { get; set; } public DoublePoint(double x = 0, double y = 0) { this.X = x; this.Y = y; } }; //------------------------------------------------------------------------------ private class PolyOffsetBuilder { private Polygons pts; private Polygon currentPoly; private List normals; private double delta, m_R; private int m_i, m_j, m_k; private const int buffLength = 128; public PolyOffsetBuilder(Polygons pts, Polygons solution, double delta, JoinType jointype, double MiterLimit = 2) { //precondtion: solution != pts if (delta == 0) { solution = pts; return; } this.pts = pts; this.delta = delta; if (MiterLimit <= 1) MiterLimit = 1; double RMin = 2/(MiterLimit*MiterLimit); normals = new List(); solution.Clear(); solution.Capacity = pts.Count; for (m_i = 0; m_i < pts.Count; m_i++) { int len = pts[m_i].Count; if (len > 1 && pts[m_i][0].X == pts[m_i][len - 1].X && pts[m_i][0].Y == pts[m_i][len - 1].Y) len--; if (len == 0 || (len < 3 && delta <= 0)) continue; else if (len == 1) { Polygon arc; arc = BuildArc(pts[m_i][len - 1], 0, 2 * Math.PI, delta); solution.Add(arc); continue; } //build normals ... normals.Clear(); normals.Capacity = len; for (int j = 0; j < len -1; ++j) normals.Add(GetUnitNormal(pts[m_i][j], pts[m_i][j+1])); normals.Add(GetUnitNormal(pts[m_i][len - 1], pts[m_i][0])); currentPoly = new Polygon(); m_k = len - 1; for (m_j = 0; m_j < len; ++m_j) { switch (jointype) { case JoinType.jtMiter: { m_R = 1 + (normals[m_j].X*normals[m_k].X + normals[m_j].Y*normals[m_k].Y); if (m_R >= RMin) DoMiter(); else DoSquare(MiterLimit); break; } case JoinType.jtRound: DoRound(); break; case JoinType.jtSquare: DoSquare(1); break; } m_k = m_j; } solution.Add(currentPoly); } //finally, clean up untidy corners ... Clipper clpr = new Clipper(); clpr.AddPolygons(solution, PolyType.ptSubject); if (delta > 0) { clpr.Execute(ClipType.ctUnion, solution, PolyFillType.pftPositive, PolyFillType.pftPositive); } else { IntRect r = clpr.GetBounds(); Polygon outer = new Polygon(4); outer.Add(new IntPoint(r.left - 10, r.bottom + 10)); outer.Add(new IntPoint(r.right + 10, r.bottom + 10)); outer.Add(new IntPoint(r.right + 10, r.top - 10)); outer.Add(new IntPoint(r.left - 10, r.top - 10)); clpr.AddPolygon(outer, PolyType.ptSubject); clpr.Execute(ClipType.ctUnion, solution, PolyFillType.pftNegative, PolyFillType.pftNegative); if (solution.Count > 0) { solution.RemoveAt(0); for (int i = 0; i < solution.Count; i++) solution[i].Reverse(); } } } //------------------------------------------------------------------------------ internal void AddPoint(IntPoint pt) { int len = currentPoly.Count; if (len == currentPoly.Capacity) currentPoly.Capacity = len + buffLength; currentPoly.Add(pt); } //------------------------------------------------------------------------------ internal void DoSquare(double mul) { IntPoint pt1 = new IntPoint((Int64)Round(pts[m_i][m_j].X + normals[m_k].X * delta), (Int64)Round(pts[m_i][m_j].Y + normals[m_k].Y * delta)); IntPoint pt2 = new IntPoint((Int64)Round(pts[m_i][m_j].X + normals[m_j].X * delta), (Int64)Round(pts[m_i][m_j].Y + normals[m_j].Y * delta)); if ((normals[m_k].X * normals[m_j].Y - normals[m_j].X * normals[m_k].Y) * delta >= 0) { double a1 = Math.Atan2(normals[m_k].Y, normals[m_k].X); double a2 = Math.Atan2(-normals[m_j].Y, -normals[m_j].X); a1 = Math.Abs(a2 - a1); if (a1 > Math.PI) a1 = Math.PI * 2 - a1; double dx = Math.Tan((Math.PI - a1) / 4) * Math.Abs(delta * mul); pt1 = new IntPoint((Int64)(pt1.X - normals[m_k].Y * dx), (Int64)(pt1.Y + normals[m_k].X * dx)); AddPoint(pt1); pt2 = new IntPoint((Int64)(pt2.X + normals[m_j].Y * dx), (Int64)(pt2.Y - normals[m_j].X * dx)); AddPoint(pt2); } else { AddPoint(pt1); AddPoint(pts[m_i][m_j]); AddPoint(pt2); } } //------------------------------------------------------------------------------ internal void DoMiter() { if ((normals[m_k].X * normals[m_j].Y - normals[m_j].X * normals[m_k].Y) * delta >= 0) { double q = delta / m_R; AddPoint(new IntPoint((Int64)Round(pts[m_i][m_j].X + (normals[m_k].X + normals[m_j].X) * q), (Int64)Round(pts[m_i][m_j].Y + (normals[m_k].Y + normals[m_j].Y) * q))); } else { IntPoint pt1 = new IntPoint((Int64)Round(pts[m_i][m_j].X + normals[m_k].X * delta), (Int64)Round(pts[m_i][m_j].Y + normals[m_k].Y * delta)); IntPoint pt2 = new IntPoint((Int64)Round(pts[m_i][m_j].X + normals[m_j].X * delta), (Int64)Round(pts[m_i][m_j].Y + normals[m_j].Y * delta)); AddPoint(pt1); AddPoint(pts[m_i][m_j]); AddPoint(pt2); } } //------------------------------------------------------------------------------ internal void DoRound() { IntPoint pt1 = new IntPoint(Round(pts[m_i][m_j].X + normals[m_k].X * delta), Round(pts[m_i][m_j].Y + normals[m_k].Y * delta)); IntPoint pt2 = new IntPoint(Round(pts[m_i][m_j].X + normals[m_j].X * delta), Round(pts[m_i][m_j].Y + normals[m_j].Y * delta)); AddPoint(pt1); //round off reflex angles (ie > 180 deg) unless almost flat (ie < 10deg). //cross product normals < 0 . angle > 180 deg. //dot product normals == 1 . no angle if ((normals[m_k].X * normals[m_j].Y - normals[m_j].X * normals[m_k].Y) * delta >= 0) { if ((normals[m_j].X * normals[m_k].X + normals[m_j].Y * normals[m_k].Y) < 0.985) { double a1 = Math.Atan2(normals[m_k].Y, normals[m_k].X); double a2 = Math.Atan2(normals[m_j].Y, normals[m_j].X); if (delta > 0 && a2 < a1) a2 += Math.PI * 2; else if (delta < 0 && a2 > a1) a2 -= Math.PI * 2; Polygon arc = BuildArc(pts[m_i][m_j], a1, a2, delta); for (int m = 0; m < arc.Count; m++) AddPoint(arc[m]); } } else AddPoint(pts[m_i][m_j]); AddPoint(pt2); } //------------------------------------------------------------------------------ } //end PolyOffsetBuilder //------------------------------------------------------------------------------ public static Polygons OffsetPolygons(Polygons poly, double delta, JoinType jointype, double MiterLimit) { Polygons result = new Polygons(poly.Count); new PolyOffsetBuilder(poly, result, delta, jointype, MiterLimit); return result; } //------------------------------------------------------------------------------ public static Polygons OffsetPolygons(Polygons poly, double delta, JoinType jointype) { Polygons result = new Polygons(poly.Count); new PolyOffsetBuilder(poly, result, delta, jointype, 2.0); return result; } //------------------------------------------------------------------------------ public static Polygons OffsetPolygons(Polygons poly, double delta) { Polygons result = new Polygons(poly.Count); new PolyOffsetBuilder(poly, result, delta, JoinType.jtSquare, 2.0); return result; } //------------------------------------------------------------------------------ // SimplifyPolygon functions ... // Convert self-intersecting polygons into simple polygons //------------------------------------------------------------------------------ public static Polygons SimplifyPolygon(Polygon poly) { Polygons result = new Polygons(); Clipper c = new Clipper(); c.AddPolygon(poly, PolyType.ptSubject); c.Execute(ClipType.ctUnion, result); return result; } //------------------------------------------------------------------------------ public static Polygons SimplifyPolygons(Polygons polys) { Polygons result = new Polygons(); Clipper c = new Clipper(); c.AddPolygons(polys, PolyType.ptSubject); c.Execute(ClipType.ctUnion, result); return result; } //------------------------------------------------------------------------------ } //end ClipperLib namespace class ClipperException : Exception { public ClipperException(string description) : base(description){} } //------------------------------------------------------------------------------ } pinta-1.6/Pinta.Core/EventArgs/0000775000175000017500000000000012474706675017511 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/EventArgs/HistoryItemAddedEventArgs.cs0000664000175000017500000000264412474706675025067 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.6/Pinta.Core/EventArgs/HistoryItemRemovedEventArgs.cs0000664000175000017500000000267012474706675025466 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.6/Pinta.Core/EventArgs/ModifyCompressionEventArgs.cs0000664000175000017500000000311012474706675025323 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 Gtk.Window ParentWindow { get; set; } public ModifyCompressionEventArgs (int quality, Gtk.Window parent) { this.Quality = quality; this.Cancel = false; this.ParentWindow = parent; } } } pinta-1.6/Pinta.Core/EventArgs/LivePreviewStartedEventArgs.cs0000664000175000017500000000251412474706675025451 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.6/Pinta.Core/EventArgs/DocumentEventArgs.cs0000664000175000017500000000261612474706675023442 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.6/Pinta.Core/EventArgs/TextChangedEventArgs.cs0000664000175000017500000000260512474706675024060 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.6/Pinta.Core/EventArgs/LivePreviewEndedEventArgs.cs0000664000175000017500000000312612474706675025062 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.6/Pinta.Core/EventArgs/DocumentCancelEventArgs.cs0000664000175000017500000000301712474706675024544 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.6/Pinta.Core/EventArgs/LivePreviewRenderUpdatedEventArgs.cs0000664000175000017500000000311512474706675026567 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.6/Pinta.Core/EventArgs/BrushEventArgs.cs0000664000175000017500000000260112474706675022741 0ustar00cameroncameron00000000000000// // BrushEventArgs.cs // // Author: // Cameron White // // Copyright (c) 2013 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; namespace Pinta.Core { public class BrushEventArgs : EventArgs { public BasePaintBrush Brush { get; set; } public BrushEventArgs (BasePaintBrush brush) { Brush = brush; } } } pinta-1.6/Pinta.Core/EventArgs/ToolEventArgs.cs0000664000175000017500000000262712474706675022603 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.6/Pinta.Core/EventArgs/CanvasInvalidatedEventArgs.cs0000664000175000017500000000307712474706675025246 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.6/Pinta.Core/PixelOperations/0000775000175000017500000000000012474706675020740 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/PixelOperations/CheckerBoardOperation.cs0000664000175000017500000000267612474706675025477 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 { public class CheckerBoardOperation { public int opacity = 255; public CheckerBoardOperation (double opacity) { this.opacity = (int)(opacity * 255); } public ColorBgra Apply (ColorBgra color, int checkerX, int checkerY) { int b = color.B; int g = color.G; int r = color.R; int a = ApplyOpacity (color.A); 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; return ColorBgra.FromUInt32 ((uint)b + ((uint)g << 8) + ((uint)r << 16) + 0xff000000); } private byte ApplyOpacity (byte a) { int r = a; r = r * this.opacity + 0x80; r = ((((r) >> 8) + (r)) >> 8); return (byte)r; } } } pinta-1.6/Pinta.Core/PintaCore.cs0000664000175000017500000000532212474707505020021 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; } public const string ApplicationVersion = "1.6"; 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.6/Pinta.Core/HistoryItems/0000775000175000017500000000000012474706675020256 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/HistoryItems/TextHistoryItem.cs0000664000175000017500000001107212474706675023733 0ustar00cameroncameron00000000000000// // TextHistoryItem.cs // // Author: // Andrew Davis // // Copyright (c) 2012 Andrew Davis, GSoC 2012 // // 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 TextHistoryItem : BaseHistoryItem { UserLayer userLayer; SurfaceDiff text_surface_diff; ImageSurface textSurface; SurfaceDiff user_surface_diff; ImageSurface userSurface; TextEngine tEngine; Gdk.Rectangle textBounds; /// /// A history item for when text is created, edited, and/or finalized. /// /// The history item's icon. /// The history item's title. /// The stored TextLayer surface. /// The stored UserLayer surface. /// The text engine being used. /// The UserLayer being modified. public TextHistoryItem(string icon, string text, ImageSurface passedTextSurface, ImageSurface passedUserSurface, TextEngine passedTextEngine, UserLayer passedUserLayer) : base(icon, text) { userLayer = passedUserLayer; text_surface_diff = SurfaceDiff.Create(passedTextSurface, userLayer.TextLayer.Layer.Surface, true); if (text_surface_diff == null) { textSurface = passedTextSurface; } else { (passedTextSurface as IDisposable).Dispose(); } user_surface_diff = SurfaceDiff.Create(passedUserSurface, userLayer.Surface, true); if (user_surface_diff == null) { userSurface = passedUserSurface; } else { (passedUserSurface as IDisposable).Dispose(); } tEngine = passedTextEngine; textBounds = new Gdk.Rectangle(userLayer.textBounds.X, userLayer.textBounds.Y, userLayer.textBounds.Width, userLayer.textBounds.Height); } public TextHistoryItem(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 = userLayer.TextLayer.Layer.Surface; if (text_surface_diff != null) { text_surface_diff.ApplyAndSwap(surf); PintaCore.Workspace.Invalidate(text_surface_diff.GetBounds()); } else { // Undo to the "old" surface userLayer.TextLayer.Layer.Surface = textSurface; // Store the original surface for Redo textSurface = surf; } // Grab the original surface surf = userLayer.Surface; if (user_surface_diff != null) { user_surface_diff.ApplyAndSwap(surf); PintaCore.Workspace.Invalidate(user_surface_diff.GetBounds()); } else { // Undo to the "old" surface userLayer.Surface = userSurface; // Store the original surface for Redo userSurface = surf; } //Redraw everything since surfaces were swapped. PintaCore.Workspace.Invalidate(); //Store the old text data temporarily. TextEngine oldTEngine = tEngine; Gdk.Rectangle oldTextBounds = textBounds; //Swap half of the data. tEngine = userLayer.tEngine; textBounds = userLayer.textBounds; //Swap the other half. userLayer.tEngine = oldTEngine; userLayer.textBounds = oldTextBounds; } public override void Dispose() { // Free up native surface if (textSurface != null) (textSurface as IDisposable).Dispose(); // Free up native surface if (userSurface != null) (userSurface as IDisposable).Dispose(); } } } pinta-1.6/Pinta.Core/HistoryItems/MovePixelsHistoryItem.cs0000664000175000017500000000660212474706675025105 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 DocumentSelection old_selection; private readonly Matrix old_transform = new Matrix(); 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 () { old_selection.Dispose (); if (old_surface != null) (old_surface as IDisposable).Dispose (); } private void Swap () { DocumentSelection swap_selection = PintaCore.Workspace.ActiveDocument.Selection; PintaCore.Workspace.ActiveDocument.Selection = old_selection; old_selection = swap_selection; Matrix swap_transform = new Matrix(); swap_transform.InitMatrix(PintaCore.Layers.SelectionLayer.Transform); PintaCore.Layers.SelectionLayer.Transform.InitMatrix(old_transform); old_transform.InitMatrix(swap_transform); 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.CurrentUserLayerIndex; old_surface = doc.CurrentUserLayer.Surface.Clone (); } old_selection = PintaCore.Workspace.ActiveDocument.Selection.Clone (); old_transform.InitMatrix(PintaCore.Layers.SelectionLayer.Transform); } } } pinta-1.6/Pinta.Core/HistoryItems/InvertHistoryItem.cs0000664000175000017500000001202512474706675024255 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.UserLayers[layer_index].FlipHorizontal (); PintaCore.Workspace.Invalidate (); break; case InvertType.FlipLayerVertical: PintaCore.Workspace.ActiveDocument.UserLayers[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.UserLayers[layer_index].FlipHorizontal (); PintaCore.Workspace.Invalidate (); break; case InvertType.FlipLayerVertical: PintaCore.Workspace.ActiveDocument.UserLayers[layer_index].FlipVertical (); PintaCore.Workspace.Invalidate (); break; } } } public enum InvertType { InvertColors, Rotate180, FlipHorizontal, FlipVertical, Rotate90CW, Rotate90CCW, FlipLayerHorizontal, FlipLayerVertical } } pinta-1.6/Pinta.Core/HistoryItems/CompoundHistoryItem.cs0000664000175000017500000000475212474706675024602 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 Cairo; using System; using System.Collections.Generic; namespace Pinta.Core { public class CompoundHistoryItem : BaseHistoryItem { protected List history_stack = new List (); private List snapshots; 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 () { for (int i = history_stack.Count - 1; i >= 0; i--) history_stack[i].Undo (); } public override void Redo () { // We want to redo the actions in the // opposite order than the undo order foreach (var item in history_stack) item.Redo (); } public override void Dispose () { foreach (var item in history_stack) item.Dispose (); } public void StartSnapshotOfImage () { snapshots = new List (); foreach (UserLayer item in PintaCore.Workspace.ActiveDocument.UserLayers) { snapshots.Add (item.Surface.Clone ()); } } public void FinishSnapshotOfImage () { for (int i = 0; i < snapshots.Count; ++i) { history_stack.Add (new SimpleHistoryItem (string.Empty, string.Empty, snapshots[i], i)); } snapshots.Clear (); } } } pinta-1.6/Pinta.Core/HistoryItems/UpdateLayerPropertiesHistoryItem.cs0000664000175000017500000000443312474706675027306 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; layer.BlendMode = initial_properties.BlendMode; } 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; layer.BlendMode = updated_properties.BlendMode; } public override void Dispose () { } } } pinta-1.6/Pinta.Core/HistoryItems/BaseHistoryItem.cs0000664000175000017500000000415512474706675023665 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 () { } protected void Swap (ref T x, ref T y) { T temp = x; x = y; y = temp; } #region IDisposable Members public virtual void Dispose () { } #endregion } } pinta-1.6/Pinta.Core/HistoryItems/FinishPixelsHistoryItem.cs0000664000175000017500000000676412474706675025430 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 ImageSurface old_surface; private readonly Matrix old_transform = new Matrix(); 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; Matrix swap_transfrom = new Matrix(); swap_transfrom.InitMatrix(PintaCore.Layers.SelectionLayer.Transform); ImageSurface swap_surf = PintaCore.Layers.CurrentLayer.Surface; ImageSurface swap_sel = PintaCore.Layers.SelectionLayer.Surface; PintaCore.Layers.SelectionLayer.Surface = old_selection_layer; PintaCore.Layers.SelectionLayer.Transform.InitMatrix(old_transform); PintaCore.Layers.CurrentLayer.Surface = old_surface; old_transform.InitMatrix(swap_transfrom); old_surface = swap_surf; old_selection_layer = swap_sel; PintaCore.Workspace.Invalidate (); PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); } public override void Redo () { Matrix swap_transfrom = new Matrix(); swap_transfrom.InitMatrix(PintaCore.Layers.SelectionLayer.Transform); 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.Transform.InitMatrix(old_transform); old_surface = swap_surf; old_selection_layer = swap_sel; old_transform.InitMatrix(swap_transfrom); PintaCore.Layers.DestroySelectionLayer (); PintaCore.Workspace.Invalidate (); } public override void Dispose () { if (old_surface != null) (old_surface as IDisposable).Dispose (); if (old_selection_layer != null) (old_selection_layer as IDisposable).Dispose (); } public void TakeSnapshot () { old_selection_layer = PintaCore.Layers.SelectionLayer.Surface.Clone (); old_surface = PintaCore.Layers.CurrentLayer.Surface.Clone (); old_transform.InitMatrix(PintaCore.Layers.SelectionLayer.Transform); } } } pinta-1.6/Pinta.Core/HistoryItems/SwapLayersHistoryItem.cs0000664000175000017500000000434312474706675025104 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); UserLayer layer1 = PintaCore.Layers[l1]; UserLayer 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.6/Pinta.Core/HistoryItems/PasteHistoryItem.cs0000664000175000017500000000570112474706675024065 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 DocumentSelection old_selection; private bool old_show_selection; public override bool CausesDirty { get { return true; } } public PasteHistoryItem (Gdk.Pixbuf pasteImage, DocumentSelection oldSelection, bool oldShowSelection) { Text = Catalog.GetString ("Paste"); Icon = Stock.Paste; paste_image = pasteImage; old_selection = oldSelection; 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; using (Cairo.Context g = new Cairo.Context (doc.SelectionLayer.Surface)) { g.DrawPixbuf (paste_image, new Cairo.Point (0, 0)); } 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 (); if (old_selection != null) old_selection.Dispose (); } private void Swap () { // Swap the selection paths, and whether the // selection path should be visible Document doc = PintaCore.Workspace.ActiveDocument; DocumentSelection swap_selection = doc.Selection; bool swap_show_sel = doc.ShowSelection; doc.Selection = old_selection; doc.ShowSelection = old_show_selection; old_selection = swap_selection; old_show_selection = swap_show_sel; } } } pinta-1.6/Pinta.Core/HistoryItems/SelectionHistoryItem.cs0000664000175000017500000000554212474706675024741 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 DocumentSelection old_selection; private DocumentSelection old_previous_selection; private bool show_selection; private bool hide_tool_layer; 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 () { old_selection.Dispose (); old_previous_selection.Dispose (); } private void Swap () { var doc = PintaCore.Workspace.ActiveDocument; DocumentSelection swap_selection = doc.Selection; bool swap_show = PintaCore.Layers.ShowSelection; bool swap_hide_tool_layer = doc.ToolLayer.Hidden; doc.Selection = old_selection; PintaCore.Layers.ShowSelection = show_selection; doc.ToolLayer.Hidden = hide_tool_layer; old_selection = swap_selection; show_selection = swap_show; hide_tool_layer = swap_hide_tool_layer; swap_selection = old_previous_selection; old_previous_selection = doc.PreviousSelection; doc.PreviousSelection = swap_selection; PintaCore.Workspace.CallSelectionChanged(this, EventArgs.Empty); PintaCore.Workspace.Invalidate (); } public void TakeSnapshot () { var doc = PintaCore.Workspace.ActiveDocument; old_selection = doc.Selection.Clone (); old_previous_selection = doc.PreviousSelection.Clone (); show_selection = PintaCore.Layers.ShowSelection; hide_tool_layer = doc.ToolLayer.Hidden; } } } pinta-1.6/Pinta.Core/HistoryItems/DeleteLayerHistoryItem.cs0000664000175000017500000000374312474706675025214 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 UserLayer layer; public DeleteLayerHistoryItem(string icon, string text, UserLayer 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.6/Pinta.Core/HistoryItems/AddLayerHistoryItem.cs0000664000175000017500000000367212474706675024503 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 UserLayer 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.6/Pinta.Core/HistoryItems/SimpleHistoryItem.cs0000664000175000017500000000560212474706675024242 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 { private SurfaceDiff surface_diff; ImageSurface old_surface; int layer_index; public SimpleHistoryItem (string icon, string text, ImageSurface oldSurface, int layerIndex) : base (icon, text) { layer_index = layerIndex; surface_diff = SurfaceDiff.Create (oldSurface, PintaCore.Layers[layer_index].Surface); // If the diff was too big, store the original surface, else, dispose it if (surface_diff == null) old_surface = oldSurface; else (oldSurface as IDisposable).Dispose (); } 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; if (surface_diff != null) { surface_diff.ApplyAndSwap (surf); PintaCore.Workspace.Invalidate (surface_diff.GetBounds ()); } else { // 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 if (old_surface != null) (old_surface as IDisposable).Dispose (); } public void TakeSnapshotOfLayer (int layerIndex) { layer_index = layerIndex; old_surface = PintaCore.Layers[layerIndex].Surface.Clone (); } public void TakeSnapshotOfLayer(UserLayer layer) { layer_index = PintaCore.Layers.IndexOf (layer); old_surface = layer.Surface.Clone (); } } } pinta-1.6/Pinta.Core/HistoryItems/ResizeHistoryItem.cs0000664000175000017500000000561312474706675024254 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 DocumentSelection RestoreSelection; 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 (RestoreSelection != null) { DocumentSelection old = PintaCore.Workspace.ActiveDocument.Selection; PintaCore.Workspace.ActiveDocument.Selection = RestoreSelection.Clone(); if (old != null) { old.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 (RestoreSelection != null) { RestoreSelection.Dispose (); } } } } pinta-1.6/Pinta.Core/Classes/0000775000175000017500000000000012474706675017210 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Classes/GradientRenderers.cs0000664000175000017500000001077312474706675023156 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.6/Pinta.Core/Classes/SurfaceDiff.cs0000664000175000017500000001703712474706675021730 0ustar00cameroncameron00000000000000// // SurfaceDiff.cs // // Author: // Jonathan Pobst // // Copyright (c) 2012 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. //#define DEBUG_DIFF using System; using System.Collections; using System.Threading.Tasks; using Cairo; namespace Pinta.Core { public class SurfaceDiff { private struct DiffBounds { public int left; public int right; public int top; public int bottom; public DiffBounds (int width, int height) { left = width + 1; right = -1; top = height + 1; bottom = -1; } public void Merge (DiffBounds other) { this.left = System.Math.Min (this.left, other.left); this.right = System.Math.Max (this.right, other.right); this.top = System.Math.Min (this.top, other.top); this.bottom = System.Math.Max (this.bottom, other.bottom); } } // If we aren't going to save at least x% from the diff, // don't use it and store the whole surface instead private const int MINIMUM_SAVINGS_PERCENT = 10; private BitArray bitmask; private Gdk.Rectangle bounds; private ColorBgra[] pixels; #region Constructors private SurfaceDiff (BitArray bitmask, Gdk.Rectangle bounds, ColorBgra[] pixels) { this.bitmask = bitmask; this.bounds = bounds; this.pixels = pixels; } public static unsafe SurfaceDiff Create (ImageSurface original, ImageSurface updated_surf, bool force = false) { if (original.Width != updated_surf.Width || original.Height != updated_surf.Height) { // If the surface changed size, only throw an error if the user forced the use of a diff. if (force) { throw new InvalidOperationException ("SurfaceDiff requires surfaces to be same size."); } else { return null; } } // Cache some pinvokes var orig_width = original.Width; var orig_height = original.Height; #if DEBUG_DIFF Console.WriteLine ("Original surface size: {0}x{1}", orig_width, orig_height); System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch(); timer.Start(); #endif // STEP 1 - Find the bounds of the changed pixels. var orig_ptr = (int*)original.DataPtr; var updated_ptr = (int*)updated_surf.DataPtr; DiffBounds diff_bounds = new DiffBounds (orig_width, orig_height); object diff_bounds_lock = new Object(); // Split up the work among several threads, each of which processes one row at a time // and updates the bounds of the changed pixels it has seen so far. At the end, the // results from each thread are merged together to find the overall bounds of the changed // pixels. Parallel.For(0, orig_height, () => new DiffBounds (orig_width, orig_height), (row, loop, my_bounds) => { var offset = row * orig_width; var orig = orig_ptr + offset; var updated = updated_ptr + offset; bool change_in_row = false; for (int i = 0; i < orig_width; ++i) { if (*(orig++) != *(updated++)) { change_in_row = true; my_bounds.left = System.Math.Min(my_bounds.left, i); my_bounds.right = System.Math.Max(my_bounds.right, i); } } if (change_in_row) { my_bounds.top = System.Math.Min(my_bounds.top, row); my_bounds.bottom = System.Math.Max(my_bounds.bottom, row); } return my_bounds; }, (my_bounds) => { lock (diff_bounds_lock) { diff_bounds.Merge (my_bounds); } return; }); var bounds = new Gdk.Rectangle (diff_bounds.left, diff_bounds.top, diff_bounds.right - diff_bounds.left + 1, diff_bounds.bottom - diff_bounds.top + 1); #if DEBUG_DIFF Console.WriteLine ("Truncated surface size: {0}x{1}", bounds.Width, bounds.Height); #endif // STEP 2 - Create a bitarray of whether each pixel in the bounds has changed, and count // how many changed pixels we need to store. var bitmask = new BitArray (bounds.Width * bounds.Height); int index = 0; int num_changed = 0; int bottom = bounds.GetBottom (); int right = bounds.GetRight (); int bounds_x = bounds.X; int bounds_y = bounds.Y; for (int y = bounds_y; y <= bottom; ++y) { var offset = y * orig_width; var updated = updated_ptr + offset + bounds_x; var orig = orig_ptr + offset + bounds_x; for (int x = bounds_x; x <= right; ++x) { bool changed = *(orig++) != *(updated++); bitmask[index++] = changed; if (changed) { num_changed++; } } } var savings = 100 - (float)num_changed / (float)(orig_width * orig_height) * 100; #if DEBUG_DIFF Console.WriteLine ("Compressed bitmask: {0}/{1} = {2}%", num_changed, orig_height * orig_width, 100 - savings); #endif if (!force && savings < MINIMUM_SAVINGS_PERCENT) { #if DEBUG_DIFF Console.WriteLine ("Savings too small, returning null"); #endif return null; } // Store the old pixels. var pixels = new ColorBgra[num_changed]; var new_ptr = (ColorBgra*)original.DataPtr; int mask_index = 0; fixed (ColorBgra* fixed_ptr = pixels) { var pixel_ptr = fixed_ptr; for (int y = bounds_y; y <= bottom; ++y) { var new_pixel_ptr = new_ptr + bounds_x + y * orig_width; for (int x = bounds_x; x <= right; ++x) { if (bitmask[mask_index++]) { *pixel_ptr++ = *new_pixel_ptr; } new_pixel_ptr++; } } } #if DEBUG_DIFF timer.Stop(); System.Console.WriteLine("SurfaceDiff time: " + timer.ElapsedMilliseconds); #endif return new SurfaceDiff (bitmask, bounds, pixels); } #endregion #region Public Methods public void Apply (ImageSurface dst) { ApplyAndSwap (dst, false); } public void ApplyAndSwap (ImageSurface dst) { ApplyAndSwap (dst, true); } public Gdk.Rectangle GetBounds () { return bounds; } #endregion #region Private Methods private unsafe void ApplyAndSwap (ImageSurface dst, bool swap) { dst.Flush (); var dest_width = dst.Width; var dst_ptr = (ColorBgra*)dst.DataPtr; var mask_index = 0; ColorBgra swap_pixel; fixed (ColorBgra* fixed_ptr = pixels) { var pixel_ptr = fixed_ptr; dst_ptr += bounds.X + bounds.Y * dest_width; for (int y = bounds.Y; y <= bounds.GetBottom (); y++) { for (int x = bounds.X; x <= bounds.GetRight (); x++) { if (bitmask[mask_index++]) if (swap) { swap_pixel = *dst_ptr; *dst_ptr = *pixel_ptr; *pixel_ptr++ = swap_pixel; } else { *dst_ptr = *pixel_ptr++; } dst_ptr++; } dst_ptr += dest_width - bounds.Width; } } dst.MarkDirty (); } #endregion } } pinta-1.6/Pinta.Core/Classes/IExtension.cs0000664000175000017500000000035512474706675021627 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.6/Pinta.Core/Classes/SelectionModeHandler.cs0000664000175000017500000001751412474706675023577 0ustar00cameroncameron00000000000000// // SelectionModeHandler.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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 ClipperLibrary; using System.Collections.Generic; namespace Pinta.Core { public class SelectionModeHandler { private ToolBarLabel selection_label; private ToolBarComboBox selection_combo_box; private CombineMode selected_mode; private Dictionary combine_modes; public SelectionModeHandler () { combine_modes = new Dictionary () { { CombineMode.Replace, Catalog.GetString ("Replace") }, { CombineMode.Union, Catalog.GetString ("Union (+) (Ctrl + Left Click)") }, { CombineMode.Exclude, Catalog.GetString ("Exclude (-) (Right Click)") }, { CombineMode.Xor, Catalog.GetString ("Xor (Ctrl + Right Click)") }, { CombineMode.Intersect, Catalog.GetString ("Intersect (Shift + Left Click)") }, }; } public void BuildToolbar (Gtk.Toolbar tb) { if (selection_label == null) selection_label = new ToolBarLabel (Catalog.GetString (" Selection Mode: ")); tb.AppendItem (selection_label); if (selection_combo_box == null) { selection_combo_box = new ToolBarComboBox (170, 0, false); selection_combo_box.ComboBox.Changed += (o, e) => { Gtk.TreeIter iter; if (selection_combo_box.ComboBox.GetActiveIter (out iter)) selected_mode = (CombineMode)selection_combo_box.Model.GetValue (iter, 1); }; foreach (var mode in combine_modes) selection_combo_box.Model.AppendValues (mode.Value, mode.Key); selection_combo_box.ComboBox.Active = 0; } tb.AppendItem (selection_combo_box); } /// /// Determine the current combine mode - various combinations of left/right click /// and Ctrl/Shift can override the selected mode from the toolbar. /// public CombineMode DetermineCombineMode (Gtk.ButtonPressEventArgs args) { CombineMode mode = selected_mode; if (args.Event.Button == GtkExtensions.MouseLeftButton) { if (args.Event.IsControlPressed ()) mode = CombineMode.Union; else if (args.Event.IsShiftPressed ()) mode = CombineMode.Intersect; } else if (args.Event.Button == GtkExtensions.MouseRightButton) { if (args.Event.IsControlPressed ()) mode = CombineMode.Xor; else mode = CombineMode.Exclude; } return mode; } public static void PerformSelectionMode (CombineMode mode, Point[][] polygonSet) { Document doc = PintaCore.Workspace.ActiveDocument; //Convert Pinta's passed in Polygon Set to a Clipper Polygon collection. List> newPolygons = DocumentSelection.ConvertToPolygons (polygonSet); doc.Selection.Dispose (); doc.Selection = doc.PreviousSelection.Clone (); using (Context g = new Context (PintaCore.Layers.CurrentLayer.Surface)) { //Make sure time isn't wasted if the CombineMode is Replace - Replace is much simpler than the other 4 selection modes. if (mode == CombineMode.Replace) { //Clear any previously stored Polygons. doc.Selection.SelectionPolygons.Clear (); //Set the resulting selection path to the new selection path. doc.Selection.SelectionPolygons = newPolygons; doc.Selection.SelectionPath = g.CreatePolygonPath (polygonSet); } else { List> resultingPolygons = new List> (); //Specify the Clipper Subject (the previous Polygons) and the Clipper Clip (the new Polygons). //Note: for Union, ignore the Clipper Library instructions - the new polygon(s) should be Clips, not Subjects! doc.Selection.SelectionClipper.AddPolygons (doc.Selection.SelectionPolygons, PolyType.ptSubject); doc.Selection.SelectionClipper.AddPolygons (newPolygons, PolyType.ptClip); switch (mode) { case CombineMode.Xor: //Xor means "Combine both Polygon sets, but leave out any areas of intersection between the two." doc.Selection.SelectionClipper.Execute (ClipType.ctXor, resultingPolygons); break; case CombineMode.Exclude: //Exclude == Difference //Exclude/Difference means "Subtract any overlapping areas of the new Polygon set from the old Polygon set." doc.Selection.SelectionClipper.Execute (ClipType.ctDifference, resultingPolygons); break; case CombineMode.Intersect: //Intersect means "Leave only the overlapping areas between the new and old Polygon sets." doc.Selection.SelectionClipper.Execute (ClipType.ctIntersection, resultingPolygons); break; default: //Default should only be *CombineMode.Union*, but just in case... //Union means "Combine both Polygon sets, and keep any overlapping areas as well." doc.Selection.SelectionClipper.Execute (ClipType.ctUnion, resultingPolygons); break; } //After using Clipper, it has to be cleared so there are no conflicts with its next usage. doc.Selection.SelectionClipper.Clear (); //Set the resulting selection path to the calculated ("clipped") selection path. doc.Selection.SelectionPolygons = resultingPolygons; doc.Selection.SelectionPath = g.CreatePolygonPath (DocumentSelection.ConvertToPolygonSet (resultingPolygons)); } } PintaCore.Workspace.CallSelectionChanged (null, EventArgs.Empty); } } public enum CombineMode { Union, Xor, Exclude, Replace, Intersect } } pinta-1.6/Pinta.Core/Classes/Layer.cs0000664000175000017500000001777312474706675020632 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; private BlendMode blend_mode; private Matrix transform = new Matrix(); public Layer () : this (null) { } public Layer (ImageSurface surface) : this (surface, false, 1f, "") { } public Layer (ImageSurface surface, bool hidden, double opacity, string name) { Surface = surface; this.hidden = hidden; this.opacity = opacity; this.name = name; this.blend_mode = BlendMode.Normal; } public ImageSurface Surface { get; set; } public bool Tiled { get; set; } public Matrix Transform { get { return transform; } } public static readonly string OpacityProperty = "Opacity"; public static readonly string HiddenProperty = "Hidden"; public static readonly string NameProperty = "Name"; public static readonly string BlendModeProperty = "BlendMode"; 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 BlendMode BlendMode { get { return blend_mode; } set { if (blend_mode != value) SetValue (BlendModeProperty, ref blend_mode, 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 (); } public void Draw(Context ctx) { Draw(ctx, Surface, Opacity); } public void Draw(Context ctx, ImageSurface surface, double opacity) { ctx.Save(); ctx.Transform(Transform); ctx.SetSourceSurface(surface, 0, 0); ctx.PaintWithAlpha(opacity); ctx.Restore(); } /// /// Rotates layer by the specified angle (in degrees). /// /// /// Angle (in degrees). /// public virtual 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.Workspace.ActiveDocument.Selection.SelectionPath); g.FillRule = Cairo.FillRule.EvenOdd; g.Clip (); g.SetSource (dest); g.Paint (); } (dest as IDisposable).Dispose (); } public virtual 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 virtual 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 virtual void Crop (Gdk.Rectangle rect) { 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; g.SetSource (Surface); g.Paint (); } (Surface as IDisposable).Dispose (); Surface = dest; } } } pinta-1.6/Pinta.Core/Classes/Re-editable/0000775000175000017500000000000012474706675021325 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Classes/Re-editable/Text/0000775000175000017500000000000012474706675022251 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Classes/Re-editable/Text/TextPosition.cs0000664000175000017500000000443212474706675025254 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.Core { public struct TextPosition : IComparable { private int line; private int offset; public TextPosition (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); } } #region Operators public override bool Equals (object obj) { return obj is TextPosition && this == (TextPosition)obj; } public override int GetHashCode () { return new { line, offset }.GetHashCode (); } public override string ToString () { return string.Format("({0}, {1})", line, offset); } public static bool operator==(TextPosition x, TextPosition y) { return x.CompareTo (y) == 0; } public static bool operator!=(TextPosition x, TextPosition y) { return x.CompareTo (y) != 0; } public int CompareTo (TextPosition other) { if (line.CompareTo(other.line) != 0) return line.CompareTo (other.line); else return offset.CompareTo (other.offset); } public static TextPosition Max(TextPosition p1, TextPosition p2) { return (p1.CompareTo (p2) > 0) ? p1 : p2; } public static TextPosition Min(TextPosition p1, TextPosition p2) { return (p1.CompareTo (p2) < 0) ? p1 : p2; } #endregion } } pinta-1.6/Pinta.Core/Classes/Re-editable/Text/TextLayout.cs0000664000175000017500000001212212474706675024720 0ustar00cameroncameron00000000000000// // TextLayout.cs // // Author: // Cameron White // // Copyright (c) 2015 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 System.Collections.Generic; using System.Linq; using System.Text; using System.Security; using Gdk; namespace Pinta.Core { public class TextLayout { private TextEngine engine; public TextEngine Engine { get { return engine; } set { if (engine != null) engine.Modified -= OnEngineModified; engine = value; engine.Modified += OnEngineModified; OnEngineModified (this, EventArgs.Empty); } } public Pango.Layout Layout { get; private set; } public int FontHeight { get { return GetCursorLocation ().Height; } } public TextLayout () { Layout = new Pango.Layout (PintaCore.Chrome.Canvas.PangoContext); } public Rectangle[] SelectionRectangles { get { var regions = engine.SelectionRegions; List rects = new List (); foreach (var region in regions) { Point p1 = TextPositionToPoint (region.Key); Point p2 = TextPositionToPoint (region.Value); rects.Add (new Rectangle (p1, new Size (p2.X - p1.X, FontHeight))); } return rects.ToArray (); } } public Rectangle GetCursorLocation () { Pango.Rectangle weak, strong; int index = engine.PositionToIndex (engine.CurrentPosition); Layout.GetCursorPos (index, out strong, out weak); int x = Pango.Units.ToPixels (strong.X) + engine.Origin.X; int y = Pango.Units.ToPixels (strong.Y) + engine.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); var cursor = GetCursorLocation (); // GetPixelExtents() doesn't really return a very sensible height. // Instead of doing some hacky arithmetic to correct it, the height will just // be the cursor's height times the number of lines. return new Rectangle (engine.Origin.X, engine.Origin.Y, ink.Width, cursor.Height * engine.LineCount); } public TextPosition PointToTextPosition (Point point) { int index, trailing; int x = Pango.Units.FromPixels (point.X - engine.Origin.X); int y = Pango.Units.FromPixels (point.Y - engine.Origin.Y); Layout.XyToIndex (x, y, out index, out trailing); return engine.IndexToPosition (index + trailing); } public Point TextPositionToPoint (TextPosition p) { int index = engine.PositionToIndex (p); var rect = Layout.IndexToPos (index); int x = Pango.Units.ToPixels (rect.X) + engine.Origin.X; int y = Pango.Units.ToPixels (rect.Y) + engine.Origin.Y; return new Point (x, y); } private void OnEngineModified (object sender, EventArgs e) { string markup = SecurityElement.Escape (engine.ToString ()); if (engine.Underline) markup = string.Format ("{0}", markup); switch (engine.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; } var font = Pango.FontDescription.FromString ( string.Format ("{0} {1}", engine.FontFace, engine.FontSize)); // Forces font variants to be rendered properly // (e.g. this will use "Ubuntu Condensed" instead of "Ubuntu"). font.Family = engine.FontFace; font.Weight = engine.Bold ? Pango.Weight.Bold : Pango.Weight.Normal; font.Style = engine.Italic ? Pango.Style.Italic : Pango.Style.Normal; Layout.FontDescription = font; Layout.SetMarkup (markup); } } } pinta-1.6/Pinta.Core/Classes/Re-editable/Text/TextEngine.cs0000664000175000017500000004263512474706675024664 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; using System.Reflection; using System.Linq; namespace Pinta.Core { public class TextEngine { private List lines; private TextPosition currentPos; private TextPosition selectionStart; public TextAlignment Alignment { get; set; } public string FontFace { get; private set; } public int FontSize { get; private set; } public bool Bold { get; private set; } public bool Italic { get; private set; } public bool Underline { get; private set; } public TextPosition CurrentPosition { get { return currentPos; } } public int LineCount { get { return lines.Count; } } public TextMode State; public Point Origin { get; set; } public event EventHandler Modified; public TextEngine () : this (new List () { string.Empty }) { } public TextEngine(List lines) { this.lines = lines; State = TextMode.Unchanged; } #region Public Methods public void Clear () { lines.Clear(); lines.Add(string.Empty); State = TextMode.Unchanged; currentPos = new TextPosition (0, 0); ClearSelection (); Origin = Point.Zero; OnModified (); } /// /// Performs a deep clone of the TextEngine instance and returns the clone. /// /// A clone of this TextEngine instance. public TextEngine Clone() { TextEngine clonedTE = new TextEngine(); clonedTE.lines = lines.ToList(); clonedTE.State = State; clonedTE.currentPos = currentPos; clonedTE.selectionStart = selectionStart; clonedTE.FontFace = FontFace; clonedTE.FontSize = FontSize; clonedTE.Bold = Bold; clonedTE.Italic = Italic; clonedTE.Underline = Underline; clonedTE.Alignment = Alignment; clonedTE.Origin = new Point(Origin.X, Origin.Y); //The rest of the variables are calculated on the spot. return clonedTE; } public bool IsEmpty() { return (lines.Count == 0 || (lines.Count == 1 && lines[0] == string.Empty)); } public override string ToString () { StringBuilder sb = new StringBuilder (); foreach (string s in lines) sb.AppendLine (s); return sb.ToString (); } public KeyValuePair[] SelectionRegions { get { var regions = new List> (); TextPosition p1, p2; TextPosition start = TextPosition.Min (currentPos, selectionStart); TextPosition end = TextPosition.Max (currentPos, selectionStart); p1 = start; ForeachLine (start, end, (currentLinePos, strpos, endpos) => { p2 = new TextPosition (currentLinePos, endpos); regions.Add (new KeyValuePair (p1, p2)); if (currentLinePos + 1 < lines.Count) p1 = new TextPosition (currentLinePos + 1, 0); }); return regions.ToArray (); } } public void SetCursorPosition (TextPosition position, bool clearSelection) { currentPos = position; if (clearSelection) ClearSelection (); } public void SetFont (string face, int size, bool bold, bool italic, bool underline) { FontFace = face; FontSize = size; Bold = bold; Italic = italic; Underline = underline; OnModified (); } #endregion #region Key Handlers public void InsertText (string str) { if (HasSelection ()) DeleteSelection (); lines[currentPos.Line] = lines[currentPos.Line].Insert (currentPos.Offset, str); State = TextMode.Uncommitted; currentPos.Offset += str.Length; selectionStart = currentPos; OnModified (); } public void PerformEnter () { if (HasSelection ()) DeleteSelection (); string currentLine = lines[currentPos.Line]; if (currentPos.Offset == currentLine.Length) { // If we are at the end of a line, insert an empty line at the next line lines.Insert (currentPos.Line + 1, string.Empty); } else { lines.Insert (currentPos.Line + 1, currentLine.Substring (currentPos.Offset, currentLine.Length - currentPos.Offset)); lines[currentPos.Line] = lines[currentPos.Line].Substring (0, currentPos.Offset); } State = TextMode.Uncommitted; currentPos.Line++; currentPos.Offset = 0; selectionStart = currentPos; OnModified (); } public void PerformBackspace () { if (HasSelection ()) { DeleteSelection (); return; } // We're at the beginning of a line and there's // a line above us, go to the end of the prior line if (currentPos.Offset == 0 && currentPos.Line > 0) { int ntp = lines[currentPos.Line - 1].Length; lines[currentPos.Line - 1] = lines[currentPos.Line - 1] + lines[currentPos.Line]; lines.RemoveAt (currentPos.Line); currentPos.Line--; currentPos.Offset = ntp; } else if (currentPos.Offset > 0) { // We're in the middle of a line, delete the previous character string ln = lines[currentPos.Line]; // If we are at the end of a line, we don't need to place a compound string if (currentPos.Offset == ln.Length) lines[currentPos.Line] = ln.Substring (0, ln.Length - 1); else lines[currentPos.Line] = ln.Substring (0, currentPos.Offset - 1) + ln.Substring (currentPos.Offset); currentPos.Offset--; } selectionStart = currentPos; State = TextMode.Uncommitted; OnModified (); } public void PerformDelete () { if (HasSelection ()) { DeleteSelection (); return; } // Where are we?! if ((currentPos.Line == lines.Count - 1) && (currentPos.Offset == lines[lines.Count - 1].Length)) { // The cursor is at the end of the text block return; } else if (currentPos.Offset == lines[currentPos.Line].Length) { // End of a line, must merge strings lines[currentPos.Line] = lines[currentPos.Line] + lines[currentPos.Line + 1]; lines.RemoveAt (currentPos.Line + 1); } else { // Middle of a line somewhere lines[currentPos.Line] = lines[currentPos.Line].Substring (0, currentPos.Offset) + (lines[currentPos.Line]).Substring (currentPos.Offset + 1); } State = TextMode.Uncommitted; OnModified (); } public void PerformLeft (bool control, bool shift) { if (control) { PerformControlLeft (shift); return; } // Move caret to the left, or to the previous line if (currentPos.Offset > 0) currentPos.Offset--; else if (currentPos.Offset == 0 && currentPos.Line > 0) { currentPos.Line--; currentPos.Offset = lines[currentPos.Line].Length; } else return; if (!shift) ClearSelection(); } public void PerformControlLeft (bool shift) { // Move caret to the left to the beginning of the word/space/etc. if (currentPos.Offset > 0) { int ntp = currentPos.Offset; string currentLine = lines[currentPos.Line]; 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--; } if (!shift) ClearSelection (); currentPos.Offset = ntp; } else if (currentPos.Offset == 0 && currentPos.Line > 0) { currentPos.Line--; currentPos.Offset = lines[currentPos.Line].Length; if (!shift) ClearSelection (); } } public void PerformRight (bool control, bool shift) { if (control) { PerformControlRight (shift); return; } // Move caret to the right, or to the next line if (currentPos.Offset < lines[currentPos.Line].Length) { currentPos.Offset++; } else if (currentPos.Offset == lines[currentPos.Line].Length && currentPos.Line < lines.Count - 1) { currentPos.Line++; currentPos.Offset = 0; } else return; if (!shift) ClearSelection (); } public void PerformControlRight (bool shift) { // Move caret to the right to the end of the word/space/etc. if (currentPos.Offset < lines[currentPos.Line].Length) { int ntp = currentPos.Offset; string currentLine = lines[currentPos.Line]; 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++; } currentPos.Offset = ntp; if (!shift) ClearSelection (); } else if (currentPos.Offset == lines[currentPos.Line].Length && currentPos.Line < lines.Count - 1) { currentPos.Line++; currentPos.Offset = 0; if (!shift) ClearSelection (); } } public void PerformHome (bool control, bool shift) { // For Ctrl-Home, we go to the top line if (control) { currentPos.Line = 0; } // Go to the beginning of the line currentPos.Offset = 0; if (!shift) ClearSelection (); } public void PerformEnd (bool control, bool shift) { // For Ctrl-End, we go to the last line if (control) currentPos.Line = lines.Count - 1; // Go to the end of the line currentPos.Offset = lines[currentPos.Line].Length; if (!shift) ClearSelection (); } public void PerformUp (bool shift) { if (currentPos.Line > 0) { currentPos.Line--; currentPos.Offset = Math.Min (currentPos.Offset, lines[currentPos.Line].Length); if (!shift) ClearSelection (); } } public void PerformDown (bool shift) { if (currentPos.Line < LineCount - 1) { currentPos.Line++; currentPos.Offset = Math.Min (currentPos.Offset, lines[currentPos.Line].Length); if (!shift) ClearSelection (); } } public void PerformCopy (Gtk.Clipboard clipboard) { if (HasSelection ()) { StringBuilder strbld = new StringBuilder (); TextPosition start = TextPosition.Min (currentPos, selectionStart); TextPosition end = TextPosition.Max (currentPos, selectionStart); ForeachLine (start, end, (currentLinePos, strpos, endpos) =>{ if (endpos - strpos > 0) strbld.AppendLine (lines[currentLinePos].Substring (strpos, endpos - strpos)); else if (endpos == strpos) strbld.AppendLine (); }); strbld.Remove (strbld.Length - Environment.NewLine.Length, Environment.NewLine.Length); clipboard.Text = strbld.ToString (); } else clipboard.Clear (); } public void PerformCut (Gtk.Clipboard clipboard) { PerformCopy (clipboard); DeleteSelection (); } /// /// Pastes text from the clipboard. /// /// /// true, if the paste was successfully performed, false otherwise. /// public bool PerformPaste (Gtk.Clipboard clipboard) { string txt = string.Empty; txt = clipboard.WaitForText (); if (String.IsNullOrEmpty (txt)) return false; if (HasSelection ()) DeleteSelection (); string[] ins_lines = txt.Split (Environment.NewLine.ToCharArray (), StringSplitOptions.RemoveEmptyEntries); string endline = lines [currentPos.Line].Substring (currentPos.Offset); lines [currentPos.Line] = lines [currentPos.Line].Substring (0, currentPos.Offset); bool first = true; foreach (string ins_txt in ins_lines) { if (!first) { currentPos.Line++; lines.Insert (currentPos.Line, ins_txt); currentPos.Offset = ins_txt.Length; } else { first = false; lines[currentPos.Line] += ins_txt; currentPos.Offset += ins_txt.Length; } } lines [currentPos.Line] += endline; selectionStart = currentPos; State = TextMode.Uncommitted; OnModified (); return true; } #endregion #region Private Methods delegate void Action(int currentLine, int strartPosition, int endPosition); private void ForeachLine (TextPosition start, TextPosition end, Action action) { if (start.CompareTo(end) > 0) throw new ArgumentException ("Invalid start position", "start"); while (start.Line < end.Line) { action (start.Line, start.Offset, lines[start.Line].Length); ++start.Line; start.Offset = 0; } action (start.Line, start.Offset, end.Offset); } public TextPosition 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 TextPosition (line, offset); } // It's below all of our lines, return the end of the last line return new TextPosition (lines.Count - 1, lines[lines.Count - 1].Length); } public int PositionToIndex (TextPosition 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 OnModified () { EventHandler handler = Modified; if (handler != null) handler (this, EventArgs.Empty); } private string GetText (TextPosition startPos, int len) { StringBuilder strbld = new StringBuilder (); TextPosition start = TextPosition.Min (currentPos, selectionStart); TextPosition end = TextPosition.Max (currentPos, selectionStart); ForeachLine (start, end, (currentLinePos, strpos, endpos) =>{ if (endpos - strpos > 0) strbld.AppendLine (lines[currentLinePos].Substring (strpos, endpos - strpos)); else if (endpos == strpos) strbld.AppendLine (); }); strbld.Remove (strbld.Length - Environment.NewLine.Length, Environment.NewLine.Length); return strbld.ToString (); } private void DeleteSelection () { TextPosition start = TextPosition.Min (currentPos, selectionStart); TextPosition end = TextPosition.Max (currentPos, selectionStart); DeleteText (start, end); currentPos = start; ClearSelection (); } private void DeleteText (TextPosition start, TextPosition end) { if (start.CompareTo(end) >= 0) throw new ArgumentException ("Invalid start position", "start"); lines[start.Line] = lines[start.Line].Substring (0, start.Offset) + lines[end.Line].Substring (end.Offset); // If this was a multi-line delete, remove all lines in between, // including the end line. lines.RemoveRange (start.Line + 1, end.Line - start.Line); State = TextMode.Uncommitted; OnModified (); } private bool HasSelection () { return selectionStart != currentPos; } private void ClearSelection () { selectionStart = currentPos; } #endregion } } pinta-1.6/Pinta.Core/Classes/Re-editable/ReEditableLayer.cs0000664000175000017500000000700712474706675024655 0ustar00cameroncameron00000000000000// // ReEditableLayer.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2013 // // 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 Cairo; namespace Pinta.Core { public class ReEditableLayer { Layer actualLayer; //Whether or not the actualLayer has already been setup. private bool isLayerSetup = false; private UserLayer parent; private bool inTheLoop = false; public bool InTheLoop { get { return inTheLoop; } } public Layer Layer { get { if (!isLayerSetup) { SetupLayer(); } return actualLayer; } set { actualLayer = value; } } public bool IsLayerSetup { get { return isLayerSetup; } } /// /// Creates a new ReEditableLayer for drawing and editing on separately from the rest of the image. /// /// The parent UserLayer that the ReEditableLayer will be associated with. public ReEditableLayer(UserLayer passedParent) { parent = passedParent; TryAddLayer(); } /// /// Safely and temporarily removes the ReEditableLayer from its parent UserLayer, withdrawing it from being drawn anywhere. /// /// Due to history, cloning, etc. of editable shapes, ReEditableLayers need to be able to be removed from /// and added back into the system of drawn layers. /// public void TryRemoveLayer() { //Safely remove it by checking to make sure it is indeed in the loop first. if (parent.ReEditableLayers.Contains(this)) { parent.ReEditableLayers.Remove(this); } inTheLoop = false; } /// /// Temporarily adds the ReEditableLayer back into its parent UserLayer, allowing it to be drawn again. Automatically avoids adding duplicates. /// /// Due to history, cloning, etc. of editable shapes, ReEditableLayers need to be able to be removed from /// and added back into the system of drawn layers. /// public void TryAddLayer() { //Avoid duplicates. if (!parent.ReEditableLayers.Contains(this)) { parent.ReEditableLayers.Add(this); } inTheLoop = true; } /// /// Setup the Layer based on the parent UserLayer's Surface. /// private void SetupLayer() { actualLayer = new Layer(new Cairo.ImageSurface(parent.Surface.Format, parent.Surface.Width, parent.Surface.Height)); isLayerSetup = true; } } } pinta-1.6/Pinta.Core/Classes/LayerProperties.cs0000664000175000017500000000345512474706675022677 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, BlendMode blendmode) { this.Opacity = opacity; this.Hidden = hidden; this.Name = name; this.BlendMode = blendmode; } public string Name { get; private set; } public bool Hidden { get; private set; } public double Opacity { get; private set; } public BlendMode BlendMode { get; private set; } public void SetProperties (Layer layer) { layer.Name = Name; layer.Opacity = Opacity; layer.Hidden = Hidden; layer.BlendMode = BlendMode; } } } pinta-1.6/Pinta.Core/Classes/IndexEventHandler.cs0000664000175000017500000000114312474706675023105 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.6/Pinta.Core/Classes/DocumentSelection.cs0000664000175000017500000003420712474706675023171 0ustar00cameroncameron00000000000000// // DocumentSelection.cs // // Author: // Andrew Davis // // Copyright (c) 2012 Andrew Davis, GSoC 2012 // // 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 System.Collections.Generic; using Cairo; using ClipperLibrary; namespace Pinta.Core { public class DocumentSelection : IDisposable { private Path selection_path; public List> SelectionPolygons = new List>(); public Clipper SelectionClipper = new Clipper(); public PointD selOrigin; public PointD selEnd; public Path SelectionPath { get { return selection_path; } set { if (selection_path == value) return; if (selection_path != null) selection_path.Dispose (); selection_path = value; } } public void Clip (Context g) { g.AppendPath (selection_path); g.FillRule = FillRule.EvenOdd; g.Clip (); } public void Draw (Cairo.Context g, double scale, bool fillSelection) { g.Save (); g.Translate (0.5, 0.5); g.Scale (scale, scale); g.AppendPath (selection_path); if (fillSelection) { g.SetSourceColor (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.SetSourceColor (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.SetSourceColor (new Cairo.Color (0, 0, 0)); g.Stroke (); g.Restore (); } /// /// Make a complete copy of the Selection. /// /// A copy of this Selection (as a DocumentSelection object). public DocumentSelection Clone() { DocumentSelection clonedSelection = new DocumentSelection(); if (selection_path != null) { clonedSelection.selection_path = selection_path.Clone(); } clonedSelection.SelectionPolygons = SelectionPolygons.ToList(); clonedSelection.SelectionClipper = new Clipper(); clonedSelection.selOrigin = new PointD(selOrigin.X, selOrigin.Y); clonedSelection.selEnd = new PointD(selEnd.X, selEnd.Y); return clonedSelection; } /// /// Convert a Pinta Polygon set (Point[][]) to a Clipper Polygon collection (List[List[IntPoint]]). /// /// A Pinta Polygon set. /// A Clipper Polygon collection. public static List> ConvertToPolygons(Point[][] pintaPolygonSet) { List> newPolygons = new List>(); foreach (Point[] pA in pintaPolygonSet) { List newPolygon = new List(); foreach (Point p in pA) { newPolygon.Add(new IntPoint((long)p.X, (long)p.Y)); } newPolygons.Add(newPolygon); } return newPolygons; } /// /// Convert a Clipper Polygon collection (List[List[IntPoint]]) to a Pinta Polygon set (Point[][]). /// /// A Clipper Polygon collection. /// A Pinta Polygon set. public static Point[][] ConvertToPolygonSet(List> clipperPolygons) { Point[][] resultingPolygonSet = new Point[clipperPolygons.Count][]; int polygonNumber = 0; foreach (List ipL in clipperPolygons) { resultingPolygonSet[polygonNumber] = new Point[ipL.Count]; int pointNumber = 0; foreach (IntPoint ip in ipL) { resultingPolygonSet[polygonNumber][pointNumber] = new Point((int)ip.X, (int)ip.Y); ++pointNumber; } ++polygonNumber; } return resultingPolygonSet; } public static List> Transform (List> selection, Matrix transform) { List> newPolygons = new List> (); foreach (List ipL in selection) { List newPolygon = new List (); foreach (IntPoint ip in ipL) { double x = ip.X; double y = ip.Y; transform.TransformPoint (ref x, ref y); newPolygon.Add (new IntPoint ((long)x, (long)y)); } newPolygons.Add (newPolygon); } return newPolygons; } /// /// Create an elliptical Selection from a bounding Rectangle. /// /// The selection surface to use for calculating the elliptical Path. /// The bounding Rectangle surrounding the ellipse. public void CreateEllipseSelection(Surface selectionSurface, Rectangle r) { using (Context g = new Context(selectionSurface)) { SelectionPath = g.CreateEllipsePath(r); } //These values were calculated in the static CreateEllipsePath method //in Pinta.Core.CairoExtensions, so they were used here as well. double rx = r.Width / 2; //1/2 of the bounding Rectangle Width. double ry = r.Height / 2; //1/2 of the bounding Rectangle Height. double cx = r.X + rx; //The middle of the bounding Rectangle, horizontally speaking. double cy = r.Y + ry; //The middle of the bounding Rectangle, vertically speaking. double c1 = 0.552285; //A constant factor used to give the least approximation error. //Clear the Selection Polygons collection to start from a clean slate. SelectionPolygons.Clear(); //Calculate an appropriate interval at which to increment t based on //the bounding Rectangle's Width and Height properties. The increment //for t determines how many intermediate Points to calculate for the //ellipse. For each curve, t will go from tInterval to 1. The lower //the value of tInterval, the higher number of intermediate Points //that will be calculated and stored into the Polygon collection. double tInterval = 1d / (r.Width + r.Height); //Create a new Polygon to store the upcoming ellipse. List newPolygon = new List(); //These values were also calculated in the CreateEllipsePath method. This is where //the ellipse's 4 curves (and all of the Points on each curve) are determined. //Note: each curve is consecutive to the previous one, but they *do not* overlap, //other than the first/last Point (which is how it is supposed to work). //The starting Point. newPolygon.Add(new IntPoint((long)(cx + rx), (long)cy)); //Curve 1. newPolygon.AddRange(CalculateCurvePoints(tInterval, cx + rx, cy, cx + rx, cy - c1 * ry, cx + c1 * rx, cy - ry, cx, cy - ry)); //Curve 2. newPolygon.AddRange(CalculateCurvePoints(tInterval, cx, cy - ry, cx - c1 * rx, cy - ry, cx - rx, cy - c1 * ry, cx - rx, cy)); //Curve 3. newPolygon.AddRange(CalculateCurvePoints(tInterval, cx - rx, cy, cx - rx, cy + c1 * ry, cx - c1 * rx, cy + ry, cx, cy + ry)); //Curve 4. newPolygon.AddRange(CalculateCurvePoints(tInterval, cx, cy + ry, cx + c1 * rx, cy + ry, cx + rx, cy + c1 * ry, cx + rx, cy)); //Add the newly calculated elliptical Polygon. SelectionPolygons.Add(newPolygon); } /// /// Calculate each intermediate Point in the specified curve, returning Math.Round(1d / tInterval - 1d) number of Points. /// /// The increment value for t (should be between 0-1). /// Starting point X (not included in the returned Point(s)). /// Starting point Y (not included in the returned Point(s)). /// Control point 1 X. /// Control point 1 Y. /// Control point 2 X. /// Control point 2 Y. /// Ending point X (included in the returned Point(s)). /// Ending point Y (included in the returned Point(s)). /// List CalculateCurvePoints(double tInterval, double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3) { //Create a new partial Polygon to store the calculated Points. List calculatedPoints = new List((int)(1d / tInterval)); double oneMinusT; double oneMinusTSquared; double oneMinusTCubed; double tSquared; double tCubed; double oneMinusTSquaredTimesTTimesThree; double oneMinusTTimesTSquaredTimesThree; //t will go from tInterval to 1d at the interval of tInterval. t starts //at tInterval instead of 0d because the first Point in the curve is //skipped. This is needed because multiple curves will be placed //sequentially after each other and we don't want to have the same //Point be added to the Polygon twice. for (double t = tInterval; t < 1d; t += tInterval) { //There are 3 "layers" in a cubic Bezier curve's calculation. These "layers" //must be calculated for each intermediate Point (for each value of t from //tInterval to 1d). The Points in each "layer" store [the distance between //two consecutive Points from the previous "layer" multipled by the value //of t (which is between 0d-1d)] plus [the position of the first Point of //the two consecutive Points from the previous "layer"]. This must be //calculated for the X and Y of every consecutive Point in every layer //until the last Point possible is reached, which is the Point on the curve. //Note: the code below is an optimized version of the commented explanation above. oneMinusT = 1d - t; oneMinusTSquared = oneMinusT * oneMinusT; oneMinusTCubed = oneMinusTSquared * oneMinusT; tSquared = t * t; tCubed = tSquared * t; oneMinusTSquaredTimesTTimesThree = oneMinusTSquared * t * 3d; oneMinusTTimesTSquaredTimesThree = oneMinusT * tSquared * 3d; calculatedPoints.Add(new IntPoint( (long)(oneMinusTCubed * x0 + oneMinusTSquaredTimesTTimesThree * x1 + oneMinusTTimesTSquaredTimesThree * x2 + tCubed * x3), (long)(oneMinusTCubed * y0 + oneMinusTSquaredTimesTTimesThree * y1 + oneMinusTTimesTSquaredTimesThree * y2 + tCubed * y3))); } //Return the partial Polygon containing the calculated Points in the curve. return calculatedPoints; } /// /// Create a rectangular Selection from a Rectangle. /// /// The selection surface to use for calculating the rectangular Path. /// The Rectangle. public void CreateRectangleSelection(Surface selectionSurface, Rectangle r) { using (Context g = new Context(selectionSurface)) { SelectionPath = g.CreateRectanglePath(r); } //Clear the Selection Polygons collection to start from a clean slate. SelectionPolygons.Clear(); SelectionPolygons.Add (CreateRectanglePolygon (r)); } /// /// Inverts the selection. /// /// /// Surface for the selection path. /// /// /// The size of the document. /// public void Invert (Surface surface, Gdk.Size imageSize) { List> resultingPolygons = new List> (); var documentPolygon = CreateRectanglePolygon (new Rectangle (0, 0, imageSize.Width, imageSize.Height)); // Create a rectangle that is the size of the entire image, // and subtract all of the polygons in the current selection from it. SelectionClipper.AddPolygon (documentPolygon, PolyType.ptSubject); SelectionClipper.AddPolygons (SelectionPolygons, PolyType.ptClip); SelectionClipper.Execute (ClipType.ctDifference, resultingPolygons); SelectionClipper.Clear (); SelectionPolygons = resultingPolygons; using (Context g = new Context (surface)) { SelectionPath = g.CreatePolygonPath (ConvertToPolygonSet (resultingPolygons)); } } /// /// Reset (clear) the Selection. /// /// /// public void ResetSelection(Surface selectionSurface, Gdk.Size imageSize) { using (Cairo.Context g = new Cairo.Context(selectionSurface)) { SelectionPath = g.CreateRectanglePath(new Rectangle(0, 0, imageSize.Width, imageSize.Height)); } SelectionPolygons.Clear(); } private List CreateRectanglePolygon (Rectangle r) { // The 4 corners of the Rectangle. int corner1X = (int)Math.Round(r.X); int corner1Y = (int)Math.Round(r.Y); int corner2X = (int)Math.Round(r.X + r.Width); int corner2Y = (int)Math.Round(r.Y + r.Height); // Store each of the 4 corners of the Rectangle in the Polygon, and then store // the first corner again. It is important to note that the order of the // corners being added (clockwise) and the first/last Point being the same // should be kept this way; otherwise, problems could result. List newPolygon = new List() { new IntPoint(corner1X, corner1Y), new IntPoint(corner2X, corner1Y), new IntPoint(corner2X, corner2Y), new IntPoint(corner1X, corner2Y), new IntPoint(corner1X, corner1Y) }; return newPolygon; } public void Dispose () { if (selection_path != null) selection_path.Dispose (); } } } pinta-1.6/Pinta.Core/Classes/BaseTool.cs0000664000175000017500000003305212474706675021252 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 Gdk; using System.IO; using Mono.Unix; using Mono.Addins; using System.Collections.Generic; namespace Pinta.Core { public delegate void MouseHandler (double x, double y, Gdk.ModifierType state); [TypeExtensionPoint] public abstract class BaseTool { public const int DEFAULT_BRUSH_WIDTH = 2; protected static Cairo.Point point_empty = new Cairo.Point (-500, -500); protected ToggleToolButton tool_item; protected ToolItem tool_label; protected ToolItem tool_image; protected ToolItem tool_sep; protected ToolBarDropDownButton antialiasing_button; private ToolBarItem aaOn, aaOff; 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; } } //Whether or not the tool is an editable ShapeTool. public bool IsEditableShapeTool = false; public virtual bool UseAntialiasing { get { if (antialiasing_button == null) { return false; } else { return ShowAntialiasingButton && (bool)antialiasing_button.SelectedItem.Tag; } } set { if (ShowAntialiasingButton && antialiasing_button != null) { if (value) { antialiasing_button.SelectedItem = aaOn; } else { antialiasing_button.SelectedItem = aaOff; } } } } public virtual bool UseAlphaBlending { get { return ShowAlphaBlendingButton && (bool)alphablending_button.SelectedItem.Tag; } } public virtual int Priority { get { return 75; } } public virtual bool CursorChangesOnZoom { get { return false; } } 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 DoAfterSave() { AfterSave(); } public void DoActivated () { OnActivated (); } public void DoDeactivated (BaseTool newTool) { OnDeactivated(newTool); } // 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); } public virtual bool TryHandlePaste (Clipboard cb) { return false; } public virtual bool TryHandleCut (Clipboard cb) { return false; } public virtual bool TryHandleCopy (Clipboard cb) { return false; } public virtual bool TryHandleUndo () { return false; } public virtual bool TryHandleRedo () { return false; } public virtual void AfterUndo() { } public virtual void AfterRedo() { } #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); AfterBuildRasterization(); } protected virtual void AfterBuildRasterization() { } 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 AfterSave() { } protected virtual void OnActivated () { PintaCore.Workspace.CanvasSizeChanged += new EventHandler(Workspace_CanvasSizeChanged); SetCursor (DefaultCursor); } protected virtual void OnDeactivated(BaseTool newTool) { PintaCore.Workspace.CanvasSizeChanged -= new EventHandler(Workspace_CanvasSizeChanged); SetCursor (null); } protected virtual ToggleToolButton CreateToolButton () { Gtk.Image i2 = new Gtk.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; } public void SetCursor (Gdk.Cursor cursor) { PintaCore.Chrome.Canvas.GdkWindow.Cursor = cursor; } /// /// Create a cursor icon with a shape that visually represents the tool's thickness. /// /// A string containing the name of the tool's icon image to use. /// The shape to draw. /// The width of the shape. /// The horizontal distance between the image's top-left corner and the shape center. /// The verical distance between the image's top-left corner and the shape center. /// The X position in the returned Pixbuf that will be the center of the shape. /// The Y position in the returned Pixbuf that will be the center of the shape. /// The new cursor icon with an shape that represents the tool's thickness. protected Gdk.Pixbuf CreateIconWithShape(string imgName, CursorShape shape, int shapeWidth, int imgToShapeX, int imgToShapeY, out int shapeX, out int shapeY) { Gdk.Pixbuf img = PintaCore.Resources.GetIcon(imgName); double zoom = 1d; if (PintaCore.Workspace.HasOpenDocuments) { zoom = Math.Min(30d, PintaCore.Workspace.ActiveDocument.Workspace.Scale); } shapeWidth = (int)Math.Min(800d, ((double)shapeWidth) * zoom); int halfOfShapeWidth = shapeWidth / 2; // Calculate bounding boxes around the both image and shape // relative to the image top-left corner. Gdk.Rectangle imgBBox = new Gdk.Rectangle(0, 0, img.Width, img.Height); Gdk.Rectangle shapeBBox = new Gdk.Rectangle( imgToShapeX - halfOfShapeWidth, imgToShapeY - halfOfShapeWidth, shapeWidth, shapeWidth); // Inflate shape bounding box to allow for anti-aliasing shapeBBox.Inflate(2, 2); // To determine required size of icon, // find union of the image and shape bounding boxes // (still relative to image top-left corner) Gdk.Rectangle iconBBox = imgBBox.Union (shapeBBox); // Image top-left corner in icon co-ordinates int imgX = imgBBox.Left - iconBBox.Left; int imgY = imgBBox.Top - iconBBox.Top; // Shape center point in icon co-ordinates shapeX = imgToShapeX - iconBBox.Left; shapeY = imgToShapeY - iconBBox.Top; using (ImageSurface i = new ImageSurface (Format.ARGB32, iconBBox.Width, iconBBox.Height)) { using (Context g = new Context (i)) { // Don't show shape if shapeWidth less than 3, if (shapeWidth > 3) { int diam = Math.Max (1, shapeWidth - 2); Cairo.Rectangle shapeRect = new Cairo.Rectangle (shapeX - halfOfShapeWidth, shapeY - halfOfShapeWidth, diam, diam); Cairo.Color outerColor = new Cairo.Color (255, 255, 255, 0.75); Cairo.Color innerColor = new Cairo.Color (0, 0, 0); switch (shape) { case CursorShape.Ellipse: g.DrawEllipse (shapeRect, outerColor, 2); shapeRect = shapeRect.Inflate (-1, -1); g.DrawEllipse (shapeRect, innerColor, 1); break; case CursorShape.Rectangle: g.DrawRectangle (shapeRect, outerColor, 1); shapeRect = shapeRect.Inflate (-1, -1); g.DrawRectangle (shapeRect, innerColor, 1); break; } } // Draw the image g.DrawPixbuf (img, new Cairo.Point (imgX, imgY)); } return CairoExtensions.ToPixbuf (i); } } #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 (); aaOn = antialiasing_button.AddItem (Catalog.GetString ("Antialiasing On"), "Toolbar.AntiAliasingEnabledIcon.png", true); aaOff = antialiasing_button.AddItem (Catalog.GetString ("Antialiasing Off"), "Toolbar.AntiAliasingDisabledIcon.png", false); tb.AppendItem (antialiasing_button); } private void Workspace_CanvasSizeChanged(object sender, EventArgs e) { SetCursor (DefaultCursor); } #endregion } } pinta-1.6/Pinta.Core/Classes/DocumentWorkspace.cs0000664000175000017500000002600412474706675023176 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); } #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) { if (document.ImageSize.Width == 0) { document.ImageSize = new Size(1, document.ImageSize.Height); } if (document.ImageSize.Height == 0) { document.ImageSize = new Size(document.ImageSize.Width, 1); } int new_x = Math.Max ((int)(document.ImageSize.Width * value), 1); int new_y = Math.Max ((int)(((long)new_x * document.ImageSize.Height) / document.ImageSize.Width), 1); CanvasSize = new Gdk.Size (new_x, new_y); Invalidate (); if (PintaCore.Tools.CurrentTool.CursorChangesOnZoom) { //The current tool's cursor changes when the zoom changes. PintaCore.Tools.CurrentTool.SetCursor(PintaCore.Tools.CurrentTool.DefaultCursor); } } } } #endregion #region Public Methods public void Invalidate () { PintaCore.Workspace.OnCanvasInvalidated (new CanvasInvalidatedEventArgs ()); } /// /// Repaints a rectangle region on the canvas. /// /// /// The rectangle region of the canvas requiring repainting /// public void Invalidate (Gdk.Rectangle canvasRect) { Cairo.PointD canvasTopLeft = new Cairo.PointD(canvasRect.Left, canvasRect.Top); Cairo.PointD canvasBtmRight = new Cairo.PointD(canvasRect.Right + 1, canvasRect.Bottom + 1); Cairo.PointD winTopLeft = CanvasPointToWindow(canvasTopLeft.X, canvasTopLeft.Y); Cairo.PointD winBtmRight = CanvasPointToWindow(canvasBtmRight.X, canvasBtmRight.Y); Gdk.Rectangle winRect = Utility.PointsToRectangle(winTopLeft, winBtmRight, false).ToGdkRectangle(); PintaCore.Workspace.OnCanvasInvalidated (new CanvasInvalidatedEventArgs (winRect)); } /// /// Determines whether the rectangle lies (at least partially) outside the canvas area. /// public bool IsPartiallyOffscreen (Gdk.Rectangle rect) { return (rect.IsEmpty || rect.Left < 0 || rect.Top < 0); } 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); } /// /// Converts a point from window coordinates to canvas coordinates /// /// /// The X coordinate of the window point /// /// /// The Y coordinate of the window point /// public Cairo.PointD WindowPointToCanvas (double x, double y) { ScaleFactor sf = new ScaleFactor (PintaCore.Workspace.ImageSize.Width, PintaCore.Workspace.CanvasSize.Width); Cairo.PointD pt = sf.ScalePoint (new Cairo.PointD (x - Offset.X, y - Offset.Y)); return new Cairo.PointD((int)pt.X, (int)pt.Y); } /// /// Converts a point from canvas coordinates to window coordinates /// /// /// The X coordinate of the canvas point /// /// /// The Y coordinate of the canvas point /// public Cairo.PointD CanvasPointToWindow (double x, double y) { ScaleFactor sf = new ScaleFactor (PintaCore.Workspace.ImageSize.Width, PintaCore.Workspace.CanvasSize.Width); Cairo.PointD pt = sf.UnscalePoint (new Cairo.PointD (x, y)); return new Cairo.PointD(pt.X + Offset.X, pt.Y + Offset.Y); } 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 = ViewActions.ToPercent (ratio); 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 => { double zoom_level; if (!ViewActions.TryParsePercent (zoomInList, out zoom_level)) return false; switch (zoomType) { case ZoomType.ZoomIn: if (zoomInList == Catalog.GetString ("Window") || zoom_level <= zoom) { PintaCore.Actions.View.ZoomComboBox.ComboBox.Active = i - 1; return true; } break; case ZoomType.ZoomOut: if (zoomInList == Catalog.GetString ("Window")) return true; if (zoom_level < 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.6/Pinta.Core/Classes/Document.cs0000664000175000017500000006133012474706675021320 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 Gtk; using System.Collections.Generic; using Cairo; using System.ComponentModel; using Pinta; 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 bool show_selection; public DocumentSelection Selection = new DocumentSelection (); public DocumentSelection PreviousSelection = new DocumentSelection (); public Document (Gdk.Size size) { Guid = Guid.NewGuid (); Workspace = new DocumentWorkspace (this); IsDirty = false; HasFile = false; HasBeenSavedInSession = false; ImageSize = size; UserLayers = new List(); tool_layer = CreateLayer ("Tool Layer"); tool_layer.Hidden = true; selection_layer = CreateLayer ("Selection Layer"); selection_layer.Hidden = true; ResetSelectionPaths (); } #region Public Properties public UserLayer CurrentUserLayer { get { return UserLayers[current_layer]; } } public int CurrentUserLayerIndex { 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; } //Determines whether or not the Document has been saved to the file that it is currently associated with in the //current session. This should be false if the Document has not yet been saved, if it was just loaded into //Pinta from a file, or if the user just clicked Save As. public bool HasBeenSavedInSession { 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 UserLayers { 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 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; PintaCore.Actions.Edit.InvertSelection.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; } public delegate void LayerCloneEvent(); #endregion #region Public Methods // Adds a new layer above the current one public UserLayer AddNewLayer(string name) { UserLayer layer; if (string.IsNullOrEmpty (name)) layer = CreateLayer (); else layer = CreateLayer (name); UserLayers.Insert (current_layer + 1, layer); if (UserLayers.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 (UserLayers.Count > 0) { Layer l = UserLayers[UserLayers.Count - 1]; UserLayers.RemoveAt (UserLayers.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 (UserLayers.Count > 0) { Layer l = UserLayers[UserLayers.Count - 1]; UserLayers.RemoveAt (UserLayers.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 (); Selection.Dispose (); PreviousSelection.Dispose (); Workspace.History.Clear (); } public Context CreateClippedContext () { Context g = new Context (CurrentUserLayer.Surface); Selection.Clip (g); return g; } public Context CreateClippedContext (bool antialias) { Context g = new Context (CurrentUserLayer.Surface); Selection.Clip (g); g.Antialias = antialias ? Antialias.Subpixel : Antialias.None; return g; } public Context CreateClippedToolContext () { Context g = new Context (ToolLayer.Surface); Selection.Clip (g); return g; } public Context CreateClippedToolContext (bool antialias) { Context g = new Context (ToolLayer.Surface); Selection.Clip (g); g.Antialias = antialias ? Antialias.Subpixel : Antialias.None; return g; } public UserLayer CreateLayer () { return CreateLayer (string.Format ("{0} {1}", Catalog.GetString ("Layer"), layer_name_int++)); } public UserLayer CreateLayer (int width, int height) { return CreateLayer (string.Format ("{0} {1}", Catalog.GetString ("Layer"), layer_name_int++), width, height); } public UserLayer CreateLayer (string name) { return CreateLayer (name, ImageSize.Width, ImageSize.Height); } public UserLayer CreateLayer(string name, int width, int height) { Cairo.ImageSurface surface = new Cairo.ImageSurface (Cairo.Format.ARGB32, width, height); UserLayer layer = new UserLayer(surface) { Name = name }; return layer; } public void CreateSelectionLayer () { Layer old = selection_layer; selection_layer = CreateLayer (); if (old != null) (old.Surface as IDisposable).Dispose (); } public void CreateSelectionLayer (int width, int height) { Layer old = selection_layer; selection_layer = CreateLayer (width, height); if (old != null) (old.Surface as IDisposable).Dispose (); } // Delete the current layer public void DeleteCurrentLayer () { Layer layer = CurrentUserLayer; UserLayers.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 = UserLayers[index]; UserLayers.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.Transform.InitIdentity(); } // Duplicate current layer public UserLayer DuplicateCurrentLayer() { UserLayer source = CurrentUserLayer; UserLayer 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; UserLayers.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 (CurrentUserLayer.Surface)) { layer.Draw(g); } DestroySelectionLayer (); Workspace.Invalidate (); Workspace.History.PushNewItem (hist); } // Flatten image public void FlattenImage () { if (UserLayers.Count < 2) throw new InvalidOperationException ("Cannot flatten image because there is only one layer."); // Find the "bottom" layer var bottom_layer = UserLayers[0]; var old_surf = bottom_layer.Surface; // Replace the bottom surface with the flattened image, // and dispose the old surface bottom_layer.Surface = GetFlattenedImage (); (old_surf as IDisposable).Dispose (); // Reset our layer pointer to the only remaining layer current_layer = 0; // Delete all other layers while (UserLayers.Count > 1) UserLayers.RemoveAt (1); PintaCore.Layers.OnLayerRemoved (); Workspace.Invalidate (); } // Flip image horizontally public void FlipImageHorizontal () { foreach (var layer in UserLayers) layer.FlipHorizontal (); Workspace.Invalidate (); } // Flip image vertically public void FlipImageVertical () { foreach (var layer in UserLayers) 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(Selection.SelectionPath); g.Clip (); g.SetSource (UserLayers[index].Surface); g.Paint (); } return surf; } /// /// Gets the final pixel color for the given point, taking layers, opacity, and blend modes into account. /// public ColorBgra GetComputedPixel (int x, int y) { var pixel = ColorBgra.Zero; foreach (var layer in GetLayersToPaint ()) { var blend_op = UserBlendOps.GetBlendOp (layer.BlendMode, layer.Opacity); pixel = blend_op.Apply (pixel, layer.Surface.GetColorBgraUnchecked (x, y)); } return pixel; } public ImageSurface GetFlattenedImage () { // Create a new image surface var surf = new Cairo.ImageSurface (Cairo.Format.Argb32, ImageSize.Width, ImageSize.Height); // Blend each visible layer onto our surface foreach (var layer in GetLayersToPaint ()) { var blendop = UserBlendOps.GetBlendOp (layer.BlendMode, layer.Opacity); blendop.Apply (surf, layer.Surface); } surf.MarkDirty (); return surf; } public List GetLayersToPaint () { List paint = new List (); foreach (var layer in UserLayers) { if (!layer.Hidden) paint.Add (layer); if (layer == CurrentUserLayer) { if (!ToolLayer.Hidden) paint.Add (ToolLayer); if (ShowSelectionLayer) paint.Add (SelectionLayer); } if (!layer.Hidden) { foreach (ReEditableLayer rel in layer.ReEditableLayers) { //Make sure that each UserLayer's ReEditableLayer is in use before adding it to the List of Layers to Paint. if (rel.IsLayerSetup) { paint.Add(rel.Layer); } } } } return paint; } /// false for the whole selection, true for the part only on our canvas public Gdk.Rectangle GetSelectedBounds (bool canvasOnly) { var bounds = Selection.SelectionPath.GetBounds(); if (canvasOnly) bounds = ClampToImageSize (bounds); return bounds; } public int IndexOf(UserLayer layer) { return UserLayers.IndexOf (layer); } // Adds a new layer above the current one public void Insert(UserLayer layer, int index) { UserLayers.Insert (index, layer); if (UserLayers.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."); // Get our source and destination layers var source = CurrentUserLayer; var dest = UserLayers[current_layer - 1]; // Blend the layers var blendop = UserBlendOps.GetBlendOp (source.BlendMode, source.Opacity); blendop.Apply (dest.Surface, source.Surface); 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."); UserLayer layer = CurrentUserLayer; UserLayers.RemoveAt (current_layer); UserLayers.Insert (--current_layer, layer); PintaCore.Layers.OnSelectedLayerChanged (); Workspace.Invalidate (); } // Move current layer up public void MoveCurrentLayerUp () { if (current_layer == UserLayers.Count) throw new InvalidOperationException ("Cannot move layer up because current layer is the top layer."); UserLayer layer = CurrentUserLayer; UserLayers.RemoveAt (current_layer); UserLayers.Insert (++current_layer, layer); PintaCore.Layers.OnSelectedLayerChanged (); Workspace.Invalidate (); } public void ResetSelectionPaths() { Selection.ResetSelection(selection_layer.Surface, ImageSize); PreviousSelection.ResetSelection(selection_layer.Surface, ImageSize); ShowSelection = false; } /// /// Resizes the canvas. /// /// The new width of the canvas. /// The new height of the canvas. /// Direction in which to adjust the canvas /// /// Optionally, the history item for resizing the canvas can be added to /// a CompoundHistoryItem if it is part of a larger action (e.g. pasting an image). /// public void ResizeCanvas (int width, int height, Anchor anchor, CompoundHistoryItem compoundAction) { 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.StartSnapshotOfImage (); scale = Workspace.Scale; ImageSize = new Gdk.Size (width, height); foreach (var layer in UserLayers) layer.ResizeCanvas (width, height, anchor); hist.FinishSnapshotOfImage (); if (compoundAction != null) { compoundAction.Push (hist); } else { Workspace.History.PushNewItem (hist); } ResetSelectionPaths (); 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.StartSnapshotOfImage (); scale = Workspace.Scale; ImageSize = new Gdk.Size (width, height); foreach (var layer in UserLayers) layer.Resize (width, height); hist.FinishSnapshotOfImage (); Workspace.History.PushNewItem (hist); ResetSelectionPaths (); 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 UserLayers) { 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 SetCurrentUserLayer (int i) { // Ensure that the current tool's modifications are finalized before // switching layers. PintaCore.Tools.CurrentTool.DoCommit (); current_layer = i; PintaCore.Layers.OnSelectedLayerChanged (); } public void SetCurrentUserLayer(UserLayer layer) { SetCurrentUserLayer (UserLayers.IndexOf (layer)); } /// /// Pastes an image from the clipboard. /// /// Set to TRUE to paste into a /// new layer. Otherwise, will paste to the current layer. /// Optional. Location within image to paste to. /// Position will be adjusted if pasted image would hang /// over right or bottom edges of canvas. /// Optional. Location within image to paste to. /// Position will be adjusted if pasted image would hang /// over right or bottom edges of canvas. public void Paste (bool toNewLayer, int x = 0, int y = 0) { // Create a compound history item for recording several // operations so that they can all be undone/redone together. CompoundHistoryItem paste_action; if (toNewLayer) { paste_action = new CompoundHistoryItem (Stock.Paste, Catalog.GetString ("Paste Into New Layer")); } else { paste_action = new CompoundHistoryItem (Stock.Paste, Catalog.GetString ("Paste")); } Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); // See if the current tool wants to handle the paste // operation (e.g., the text tool could paste text) if (!toNewLayer) { if (PintaCore.Tools.CurrentTool.TryHandlePaste (cb)) return; } PintaCore.Tools.Commit (); // Don't dispose this, as we're going to give it to the history Gdk.Pixbuf cbImage = null; if (cb.WaitIsImageAvailable ()) { cbImage = cb.WaitForImage (); } if (cbImage == null) { ShowClipboardEmptyDialog(); 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 (cbImage.Width > canvas_size.Width || cbImage.Height > canvas_size.Height) { ResponseType response = ShowExpandCanvasDialog (); if (response == ResponseType.Accept) { PintaCore.Workspace.ResizeCanvas (cbImage.Width, cbImage.Height, Pinta.Core.Anchor.Center, paste_action); PintaCore.Actions.View.UpdateCanvasScale (); } else if (response == ResponseType.Cancel || response == ResponseType.DeleteEvent) { return; } } // If the pasted image would fall off bottom- or right- // side of image, adjust paste position x = Math.Max (0, Math.Min (x, canvas_size.Width - cbImage.Width)); y = Math.Max (0, Math.Min (y, canvas_size.Height - cbImage.Height)); // If requested, create a new layer, make it the current // layer and record it's creation in the history if (toNewLayer) { UserLayer l = AddNewLayer (string.Empty); SetCurrentUserLayer (l); paste_action.Push (new AddLayerHistoryItem ("Menu.Layers.AddNewLayer.png", Catalog.GetString ("Add New Layer"), UserLayers.IndexOf (l))); } // Copy the paste to the temp layer, which should be at least the size of this document. CreateSelectionLayer (Math.Max(ImageSize.Width, cbImage.Width), Math.Max(ImageSize.Height, cbImage.Height)); ShowSelectionLayer = true; using (Cairo.Context g = new Cairo.Context (SelectionLayer.Surface)) { g.DrawPixbuf (cbImage, new Cairo.Point (0, 0)); } SelectionLayer.Transform.InitIdentity(); SelectionLayer.Transform.Translate (x, y); PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); DocumentSelection old_selection = Selection.Clone(); bool old_show_selection = ShowSelection; Selection.CreateRectangleSelection (SelectionLayer.Surface, new Cairo.Rectangle (x, y, cbImage.Width, cbImage.Height)); ShowSelection = true; Workspace.Invalidate (); paste_action.Push (new PasteHistoryItem (cbImage, old_selection, old_show_selection)); History.PushNewItem (paste_action); } private ResponseType ShowExpandCanvasDialog () { const string markup = "{0}\n\n{1}"; 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; } public static void ShowClipboardEmptyDialog() { 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 (); } /// /// Signal to the TextTool that an ImageSurface was cloned. /// public void SignalSurfaceCloned() { if (LayerCloned != null) { LayerCloned(); } } #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; public event LayerCloneEvent LayerCloned; #endregion } } pinta-1.6/Pinta.Core/Classes/Anchor.cs0000664000175000017500000000244712474706675020760 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.6/Pinta.Core/Classes/Palette.cs0000664000175000017500000001722712474706675021146 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.6/Pinta.Core/Classes/DocumentWorkspaceHistory.cs0000664000175000017500000001071512474706675024562 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; List history = new List (); int historyPointer = -1; internal DocumentWorkspaceHistory (Document document) { this.document = document; 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.6/Pinta.Core/Classes/ScaleFactor.cs0000664000175000017500000002253612474706675021735 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.6/Pinta.Core/Classes/IndexEventArgs.cs0000664000175000017500000000131312474706675022423 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.6/Pinta.Core/Classes/ObservableObject.cs0000664000175000017500000000331112474706675022750 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.6/Pinta.Core/Classes/AsyncEffectRenderer.cs0000664000175000017500000002341112474706675023421 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.GetRight () + 1 - x); int h = Math.Min(settings.TileHeight, render_bounds.GetBottom () + 1 - 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.6/Pinta.Core/Classes/BasePaintBrush.cs0000664000175000017500000000717212474706675022420 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; using Cairo; namespace Pinta.Core { /// /// The base class for all brushes. /// [TypeExtensionPoint] public abstract class BasePaintBrush { private static Random random = new Random (); /// /// The name of the brush. /// public abstract string Name { get; } /// /// Priority value for ordering brushes. If the priority is zero, then /// alphabetical ordering is used. /// public virtual int Priority { get { return 0; } } /// /// Random number generator. This can be used to implement brushes with /// random effects. /// public Random Random { get { return random; } } /// /// Used to multiply the alpha value of the stroke color by a /// constant factor. /// public virtual double StrokeAlphaMultiplier { get { return 1; } } public virtual void DoMouseUp () { OnMouseUp (); } public virtual void DoMouseDown () { OnMouseDown (); } public virtual Gdk.Rectangle DoMouseMove (Context g, Color strokeColor, ImageSurface surface, int x, int y, int lastX, int lastY) { return OnMouseMove (g, strokeColor, surface, x, y, lastX, lastY); } /// /// Event handler called when the mouse is released. /// protected virtual void OnMouseUp () { } /// /// Event handler called when the mouse is pressed down. /// protected virtual void OnMouseDown () { } /// /// Event handler called when the mouse is moved. This method is where /// the brush should perform its drawing. /// /// The current Cairo drawing context. /// The current stroke color. /// Image surface to draw on. /// The current x coordinate of the mouse. /// The current y coordinate of the mouse. /// The previous x coordinate of the mouse. /// The previous y coordinate of the mouse. /// A rectangle containing the area of the canvas that should be redrawn. protected abstract Gdk.Rectangle OnMouseMove (Context g, Color strokeColor, ImageSurface surface, int x, int y, int lastX, int lastY); } }pinta-1.6/Pinta.Core/Classes/GradientRenderer.cs0000664000175000017500000001447112474706675022772 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.Linq; using System.Threading.Tasks; 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.GetBottom (); ++y) { ColorBgra* pixelPtr = surface.GetPointAddress(rect.Left, y); for (int x = rect.Left; x <= rect.GetRight (); ++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; Parallel.ForEach(Enumerable.Range (rect.Top, rect.GetBottom () + 1), (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.GetRight (); 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.6/Pinta.Core/Classes/UserLayer.cs0000664000175000017500000000675212474706675021464 0ustar00cameroncameron00000000000000// // UserLayer.cs // // Author: // Andrew Davis // // Copyright (c) 2013 Andrew Davis, GSoC 2012 and GSoC 2013 // // 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; using System.Collections.Generic; namespace Pinta.Core { /// /// A UserLayer is a Layer that the user interacts with directly. Each UserLayer contains special layers /// and some other special variables that allow for re-editability of various things. /// public class UserLayer : Layer { //Special layers to be drawn on to keep things editable by drawing them separately from the UserLayers. public List ReEditableLayers = new List(); public ReEditableLayer TextLayer; //Call the base class constructor and setup the engines. public UserLayer(ImageSurface surface) : base(surface) { setupUserLayer(); } //Call the base class constructor and setup the engines. public UserLayer(ImageSurface surface, bool hidden, double opacity, string name) : base(surface, hidden, opacity, name) { setupUserLayer(); } private void setupUserLayer() { tEngine = new TextEngine(); TextLayer = new ReEditableLayer(this); } //Stores most of the editable text's data, including the text itself. public TextEngine tEngine; //Rectangular boundary surrounding the editable text. public Gdk.Rectangle textBounds = Gdk.Rectangle.Zero; public Gdk.Rectangle previousTextBounds = Gdk.Rectangle.Zero; public override void Rotate(double angle) { base.Rotate (angle); foreach (ReEditableLayer rel in ReEditableLayers) { if (rel.IsLayerSetup) { rel.Layer.Rotate(angle); } } } public override void Crop(Gdk.Rectangle rect) { base.Crop (rect); foreach (ReEditableLayer rel in ReEditableLayers) { if (rel.IsLayerSetup) { rel.Layer.Crop(rect); } } } public override void ResizeCanvas(int width, int height, Anchor anchor) { base.ResizeCanvas (width, height, anchor); foreach (ReEditableLayer rel in ReEditableLayers) { if (rel.IsLayerSetup) { rel.Layer.ResizeCanvas(width, height, anchor); } } } public override void Resize(int width, int height) { base.Resize (width, height); foreach (ReEditableLayer rel in ReEditableLayers) { if (rel.IsLayerSetup) { rel.Layer.Resize(width, height); } } } } } pinta-1.6/Pinta.Core/Extensions/0000775000175000017500000000000012474706675017752 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Extensions/CairoExtensions.cs0000664000175000017500000012654012474706675023426 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; using System.Runtime.InteropServices; 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-1, r.Height-1); 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.SetSourceColor (color); g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.FixedStrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle DrawFullRectangle(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 - 1, r.Height - 1); g.Save(); g.MoveTo(r.X - (double)lineWidth / 2d, 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.SetSourceColor (color); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents(); 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.SetSourceColor (color); Rectangle dirty = g.FixedStrokeExtents (); 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.SetSource (pattern); Rectangle dirty = g.FixedStrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static Rectangle DrawPolygonal (this Context g, PointD[] points, Color color) { g.Save (); g.MoveTo (points[0]); foreach (var point in points) { g.LineTo (point.X, point.Y); } g.SetSourceColor (color); Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (color); Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (fill); g.FillPreserve (); g.SetSourceColor (stroke); g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.FixedStrokeExtents (); g.Stroke (); g.Restore (); return dirty; } public static Rectangle FillStrokedFullRectangle(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 - (double)lineWidth / 2d, 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.SetSourceColor (fill); g.FillPreserve(); g.SetSourceColor (stroke); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents(); 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.SetSourceColor (color); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (color); Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (fill); g.FillPreserve (); g.SetSourceColor (stroke); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (fill); g.FillPreserve (); g.SetSourceColor (stroke); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents (); 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.SetSourceColor (fill); Rectangle dirty = g.FixedStrokeExtents (); g.Fill (); g.Restore (); return dirty; } public static void FillRegion (this Context g, Gdk.Region region, Color color) { g.Save (); g.SetSourceColor (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.SetSourceColor (color); g.FixedStrokeExtents (); 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.SetSourceColor (stroke); g.LineWidth = lineWidth; Rectangle dirty = g.FixedStrokeExtents (); 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); p2 = new PointD (p2.X + 0.5, p2.Y + 0.5); } g.Save (); g.MoveTo (p1.X, p1.Y); g.LineTo (p2.X, p2.Y); g.SetSourceColor (color); g.LineWidth = lineWidth; g.LineCap = LineCap.Square; Rectangle dirty = g.FixedStrokeExtents (); g.Stroke (); g.Restore (); return dirty; } /// /// Computes a bounding box in user coordinates covering the /// area that would be affected by a call to Context.Stroke() /// using the current stroke parameters. /// /// The rectangle returned by Cairo.Context.StrokeExtents() /// incorrectly specifies the X and Y coordinates of the /// bottom-right corner of the Rectangle in the width and /// height members. This method corrects the rectangle to /// contain the width and height in the width and height members. /// /// This can be removed once we port to GTK3. /// /// /// The rectangle describing the area that would be /// affected. /// public static Rectangle FixedStrokeExtents (this Context g) { double x1, y1, x2, y2; cairo_stroke_extents (g.Handle, out x1, out y1, out x2, out y2); return new Rectangle (x1, y1, x2 - x1, y2 - y1); } /// /// The Pattern property is now deprecated in favour of the SetSource (pattern) method, /// but that method doesn't exist in older versions of Mono.Cairo. This extension method /// provides an implementation of that functionality. /// /// This can be removed once we port to GTK3. /// public static void SetSource (this Context g, Pattern source) { #pragma warning disable 612 cairo_set_source (g.Handle, source.Pointer); #pragma warning restore 612 } private const string CairoLib = "libcairo-2.dll"; [DllImport (CairoLib, CallingConvention=CallingConvention.Cdecl)] private static extern void cairo_stroke_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2); [DllImport (CairoLib, CallingConvention=CallingConvention.Cdecl)] private static extern void cairo_set_source (IntPtr cr, IntPtr pattern); 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.SetSourceColor (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.SetSource (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.SetSource (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.SetSource (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.SetSource (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.SetSource (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.SetSource (new SurfacePattern (oldsurface)); g.Mask (gradient); } g.Restore (); } // The Color property is deprecated, so use this extension method until SetSourceColor is officially available everywhere. public static void SetSourceColor (this Context g, Color c) { g.SetSourceRGBA (c.R, c.G, c.B, c.A); } #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)Math.Floor (r.X), (int)Math.Floor (r.Y), (int)Math.Ceiling (r.Width), (int)Math.Ceiling (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) { using (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); 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 GetColorBgraUnchecked (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) { if (x > surf.Width || y > surf.Height) throw new ArgumentOutOfRangeException ("Invalid canvas coordinates"); ColorBgra* dstPtr = (ColorBgra*)surf.DataPtr; dstPtr += (x) + (y * surf.Width); *dstPtr = color; } /// /// For performance reasons, this method does not check that the x and y coordinates are /// within the bounds of the image. /// public unsafe static void SetColorBgraUnchecked (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 GetColorBgraUnchecked (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) { if (PintaCore.Workspace.HasOpenDocuments) PintaCore.Workspace.ActiveDocument.SignalSurfaceCloned (); 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.GetColorBgraUnchecked (ptr, width, x, y).A; if (a > 0 && a < 255) { Console.WriteLine (surf.GetColorBgraUnchecked (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 (path); // 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.FixedStrokeExtents (); } 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, h); } public static Color Clone(this Color color) { return new Color(color.R, color.G, color.B, color.A); } 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; } /// /// Creates a copy of the rectangle but with the side edges /// moved out from the center by dx, and the top and bottom /// edges moved out from the center by dy. Edges are moved /// inwards when dx or dy are negative. /// /// The source rectangle. /// Distance to move sides from center. /// Distance to move top and bottom from center. /// The inflated (or deflated) rectangle. public static Rectangle Inflate (this Rectangle rect, int dx, int dy) { return new Rectangle(rect.X - dx, rect.Y - dy, rect.Width + 2 * dx, rect.Height + 2 * dy); } /// /// Determines if the requested pixel coordinate is within bounds. /// /// The image surface to check against. /// 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.GetRight ())) && (y >= r.Top)) && (y <= r.GetBottom ())); } /// /// 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); } public static bool IsEmpty (this PointD point) { return point.X == 0 && point.Y == 0; } public static void TransformPoint(this Matrix matrix, ref PointD point) { double x = point.X; double y = point.Y; matrix.TransformPoint(ref x, ref y); point.X = x; point.Y = y; } public static void InitMatrix(this Matrix matrix, Matrix source) { matrix.X0 = source.X0; matrix.Xx = source.Xx; matrix.Xy = source.Xy; matrix.Y0 = source.Y0; matrix.Yx = source.Yx; matrix.Yy = source.Yy; } public static void InitRectToRect(this Matrix matrix, Rectangle src, Rectangle dst) { matrix.InitIdentity(); matrix.Xx = dst.Width / src.Width; matrix.Yy = dst.Height / src.Height; matrix.X0 = dst.X - (matrix.Xx * src.X); matrix.Y0 = dst.Y - (matrix.Yy * src.Y); } public static Rectangle FromLTRB(double left, double top, double right, double bottom) { return new Rectangle(Math.Min(left, right), Math.Min(top, bottom), Math.Abs(right - left), Math.Abs(bottom - top)); } public static PointD GetCenter(this Cairo.Rectangle rect) { return new PointD(rect.X + rect.Width / 2, rect.Y + rect.Height / 2); } /// /// Computes and returns the Union (largest possible combination) of two Rectangles. /// The two given Rectangles do not need to intersect. /// /// Another way to understand this function is that it computes and returns the /// smallest possible Rectangle that encompasses both given Rectangles. /// /// This function works as is intuitively expected with neither, either, or both given Rectangles being null. /// /// The first given Rectangle. /// The second given Rectangle. /// public static Rectangle? UnionRectangles(this Rectangle? r1, Rectangle? r2) { if (r1 == null) { //r2 is the only given Rectangle that could still have a value, and if it's null, return that anyways. return r2; } else if (r2 == null) { //Only r1 has a value. return r1; } else { //Both r1 and r2 have values. //Calculate the left-most and top-most values. double minX = Math.Min(r1.Value.X, r2.Value.X); double minY = Math.Min(r1.Value.Y, r2.Value.Y); //Calculate the right-most and bottom-most values and subtract the left-most and top-most values from them to get the width and height. return new Rectangle(minX, minY, Math.Max(r1.Value.X + r1.Value.Width, r2.Value.X + r2.Value.Width) - minX, Math.Max(r1.Value.Y + r1.Value.Height, r2.Value.Y + r2.Value.Height) - minY); } } public static Pattern ToTiledPattern (this Surface surface) { var pattern = new Cairo.SurfacePattern (surface); pattern.Extend = Extend.Repeat; return pattern; } } } pinta-1.6/Pinta.Core/Extensions/ToolBarToggleButton.cs0000664000175000017500000000302212474706675024176 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.6/Pinta.Core/Extensions/ToolBarSlider.cs0000664000175000017500000000314512474706675023011 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.6/Pinta.Core/Extensions/GdkExtensions.cs0000664000175000017500000001354412474706675023075 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 ModifierType m) { return (m & ModifierType.ShiftMask) == ModifierType.ShiftMask; } public static bool IsControlPressed (this ModifierType m) { return (m & ModifierType.ControlMask) == ModifierType.ControlMask; } public static bool IsShiftPressed (this EventButton ev) { return ev.State.IsShiftPressed (); } public static bool IsControlPressed (this EventButton ev) { return ev.State.IsControlPressed (); } public static Cairo.PointD GetPoint (this EventButton ev) { return new Cairo.PointD (ev.X, ev.Y); } /// /// The implementation of Rectangle.Bottom was changed in 2.12.11 to fix an off-by-one error, /// and this function provides the newer behaviour for backwards compatibility with older versions. /// public static int GetBottom(this Rectangle r) { return r.Y + r.Height - 1; } /// /// The implementation of Rectangle.Right was changed in 2.12.11 to fix an off-by-one error, /// and this function provides the newer behaviour for backwards compatibility with older versions. /// public static int GetRight(this Rectangle r) { return r.X + r.Width - 1; } public static Cairo.Surface ToSurface (this Pixbuf pixbuf) { var surface = new Cairo.ImageSurface (Cairo.Format.ARGB32, pixbuf.Width, pixbuf.Height); using (var g = new Cairo.Context (surface)) { Gdk.CairoHelper.SetSourcePixbuf (g, pixbuf, 0, 0); g.Paint (); } return surface; } public static Pixbuf CreateColorSwatch (int size, Color color) { using (var pmap = new Pixmap (Screen.Default.RootWindow, size, size)) using (var gc = new Gdk.GC (pmap)) { gc.RgbFgColor = color; pmap.DrawRectangle (gc, true, 0, 0, size, size); gc.RgbFgColor = new Color (0, 0, 0); pmap.DrawRectangle (gc, false, 0, 0, (size - 1), (size - 1)); return Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, size, size); } } public static Pixbuf CreateTransparentColorSwatch (bool drawBorder) { var size = 16; using (var pmap = new Pixmap (Screen.Default.RootWindow, size, size)) using (var gc = new Gdk.GC (pmap)) { gc.RgbFgColor = new Color (255, 255, 255); pmap.DrawRectangle (gc, true, 0, 0, size, size); gc.RgbFgColor = new Color (200, 200, 200); pmap.DrawRectangle (gc, true, 0, 0, (size / 2), (size / 2)); pmap.DrawRectangle (gc, true, size / 2, size / 2, (size / 2), (size / 2)); if (drawBorder) { gc.RgbFgColor = new Color (0, 0, 0); pmap.DrawRectangle (gc, false, 0, 0, (size - 1), (size - 1)); } return Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, size, size); } } } } pinta-1.6/Pinta.Core/Extensions/ToolBarButton.cs0000664000175000017500000000301412474706675023035 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.6/Pinta.Core/Extensions/GtkExtensions.cs0000664000175000017500000001671012474706675023113 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 const int MouseLeftButton = 1; public const int MouseMiddleButton = 2; public const int MouseRightButton = 3; 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; } public static void Toggle (this Gtk.ToggleToolButton button) { button.Active = !button.Active; } /// /// 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; string filename = dialog.PreviewFilename; IImageImporter importer = PintaCore.System.ImageFormats.GetImporterByFile (filename); if (importer != null) { pixbuf = importer.LoadThumbnail (filename, MaxPreviewWidth, MaxPreviewHeight, dialog); } if (pixbuf == null) { dialog.PreviewWidgetActive = false; return; } // Resize the thumbnail in case the importer didn't. if (pixbuf.Width > MaxPreviewWidth || pixbuf.Width > MaxPreviewHeight) { double ratio = Math.Min ((double)MaxPreviewWidth / pixbuf.Width, (double)MaxPreviewHeight / pixbuf.Height); var old_pixbuf = pixbuf; pixbuf = pixbuf.ScaleSimple ((int)(ratio * pixbuf.Width), (int)(ratio * pixbuf.Height), Gdk.InterpType.Bilinear); old_pixbuf.Dispose (); } // 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; } } public static int GetItemCount (this ComboBox combo) { return (combo.Model as ListStore).IterNChildren (); } public static int FindValue (this ComboBox combo, T value) { for (var i = 0; i < combo.GetItemCount (); i++) if (combo.GetValueAt (i).Equals (value)) return i; return -1; } public static T GetValueAt (this ComboBox combo, int index) { TreeIter iter; // Set the tree iter to the correct row (combo.Model as ListStore).IterNthChild (out iter, index); // Retrieve the value of the first column at that row return (T)combo.Model.GetValue (iter, 0); } public static void SetValueAt (this ComboBox combo, int index, object value) { TreeIter iter; // Set the tree iter to the correct row (combo.Model as ListStore).IterNthChild (out iter, index); // Set the value of the first column at that row combo.Model.SetValue (iter, 0, value); } } } pinta-1.6/Pinta.Core/Extensions/ToolBarLabel.cs0000664000175000017500000000276612474706675022616 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.6/Pinta.Core/Extensions/ToolBarImage.cs0000664000175000017500000000264712474706675022617 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.6/Pinta.Core/Extensions/OtherExtensions.cs0000664000175000017500000000603612474706675023447 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.6/Pinta.Core/Extensions/ToolBarFontComboBox.cs0000664000175000017500000000421312474706675024123 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.6/Pinta.Core/Extensions/ToolBarComboBox.cs0000664000175000017500000000411012474706675023270 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.6/Pinta.Core/ImageFormats/0000775000175000017500000000000012474706675020171 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/ImageFormats/IImageExporter.cs0000664000175000017500000000331312474706675023404 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; using Mono.Addins; namespace Pinta.Core { [TypeExtensionPoint] public interface IImageExporter { /// /// Exports a document to a file. /// /// /// The document to be saved. /// /// /// File name to save to. /// /// /// Window to be used as a parent for any dialogs that are shown. /// void Export (Document document, string fileName, Gtk.Window parent); } } pinta-1.6/Pinta.Core/ImageFormats/JpegFormat.cs0000664000175000017500000000543612474706675022566 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 { //The identifier of the setting that is used to remember the previously //saved JPG compression quality, even when Pinta is restarted. private const string JpgCompressionQualitySetting = "jpg-quality"; //The default JPG compression quality to use when no saved setting is loaded. This will usually //occur when Pinta is first run on a machine, although there are other possibile cases as well. private const int defaultQuality = 85; public JpegFormat() : base ("jpeg") { } protected override void DoSave(Pixbuf pb, string fileName, string fileType, Gtk.Window parent) { //Load the JPG compression quality, but use the default value if there is no saved value. int level = PintaCore.Settings.GetSetting(JpgCompressionQualitySetting, defaultQuality); //Check to see if the Document has been saved before. if (!PintaCore.Workspace.ActiveDocument.HasBeenSavedInSession) { //Show the user the JPG export compression quality dialog, with the default //value being the one loaded in (or the default value if it was not saved). level = PintaCore.Actions.File.RaiseModifyCompression(level, parent); if (level == -1) throw new OperationCanceledException (); } //Store the "previous" JPG compression quality value (before saving with it). PintaCore.Settings.PutSetting(JpgCompressionQualitySetting, level); //Save the file. pb.SavevUtf8(fileName, fileType, new string[] { "quality", null }, new string[] { level.ToString(), null }); } } } pinta-1.6/Pinta.Core/ImageFormats/GdkPixbufFormat.cs0000664000175000017500000001360412474706675023560 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 System.Runtime.InteropServices; using Gdk; namespace Pinta.Core { public class GdkPixbufFormat: IImageImporter, IImageExporter { private string filetype; public GdkPixbufFormat(string filetype) { this.filetype = filetype; } #region IImageImporter implementation public void Import (string fileName, Gtk.Window parent) { 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 (); } public Pixbuf LoadThumbnail (string filename, int maxWidth, int maxHeight, Gtk.Window parent) { int imageWidth; int imageHeight; Pixbuf pixbuf = null; var imageInfo = Gdk.Pixbuf.GetFileInfo (filename, out imageWidth, out imageHeight); if (imageInfo == null) { return null; } // Scale down images that are too large, but don't scale up small images. if (imageWidth > maxWidth || imageHeight > maxHeight) { pixbuf = new Gdk.Pixbuf (filename, maxWidth, maxHeight, true); } else { pixbuf = new Gdk.Pixbuf (filename); } return pixbuf; } #endregion protected virtual void DoSave (Pixbuf pb, string fileName, string fileType, Gtk.Window parent) { pb.SaveUtf8(fileName, fileType); } public void Export (Document document, string fileName, Gtk.Window parent) { Cairo.ImageSurface surf = document.GetFlattenedImage (); Pixbuf pb = surf.ToPixbuf (); DoSave(pb, fileName, filetype, parent); (pb as IDisposable).Dispose (); (surf as IDisposable).Dispose (); } } /// /// Contains bindings for gdk_pixbuf_save_utf8 and gdk_pixbuf_savev_utf8, which are not exposed by gtk-sharp. /// internal static class PixbufExtensions { [DllImport ("libgdk_pixbuf-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)] private static extern bool gdk_pixbuf_save_utf8 (IntPtr raw, IntPtr filename, IntPtr type, out IntPtr error, IntPtr dummy); public static bool SaveUtf8 (this Pixbuf pb, string filename, string type) { if (PintaCore.System.OperatingSystem == OS.Windows) { IntPtr error = IntPtr.Zero; IntPtr native_filename = GLib.Marshaller.StringToPtrGStrdup (filename); IntPtr native_type = GLib.Marshaller.StringToPtrGStrdup (type); bool result = gdk_pixbuf_save_utf8 (pb.Handle, native_filename, native_type, out error, IntPtr.Zero); GLib.Marshaller.Free (native_filename); GLib.Marshaller.Free (native_type); if (error != IntPtr.Zero) { throw new GLib.GException (error); } return result; } else { return pb.Save (filename, type); } } [DllImport("libgdk_pixbuf-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)] private static extern bool gdk_pixbuf_savev_utf8 (IntPtr raw, IntPtr filename, IntPtr type, IntPtr[] option_keys, IntPtr[] option_values, out IntPtr error); public static bool SavevUtf8 (this Pixbuf pb, string filename, string type, string[] option_keys, string[] option_values) { if (PintaCore.System.OperatingSystem == OS.Windows) { IntPtr native_filename = GLib.Marshaller.StringToPtrGStrdup (filename); IntPtr native_type = GLib.Marshaller.StringToPtrGStrdup (type); int num = (option_keys == null) ? 0 : option_keys.Length; IntPtr[] native_keys = new IntPtr[num]; for (int i = 0; i < num; i++) { native_keys[i] = GLib.Marshaller.StringToPtrGStrdup (option_keys[i]); } int num2 = (option_values == null) ? 0 : option_values.Length; IntPtr[] native_values = new IntPtr[num2]; for (int j = 0; j < num2; j++) { native_values[j] = GLib.Marshaller.StringToPtrGStrdup (option_values[j]); } IntPtr error = IntPtr.Zero; bool result = gdk_pixbuf_savev_utf8 (pb.Handle, native_filename, native_type, native_keys, native_values, out error); GLib.Marshaller.Free (native_filename); GLib.Marshaller.Free (native_type); ReleaseArray (native_keys); ReleaseArray (native_values); if (error != IntPtr.Zero) { throw new GLib.GException (error); } return result; } else { return pb.Savev (filename, type, option_keys, option_values); } } private static void ReleaseArray (IntPtr[] arr) { foreach (IntPtr p in arr) GLib.Marshaller.Free (p); } } } pinta-1.6/Pinta.Core/ImageFormats/TgaExporter.cs0000664000175000017500000001146412474706675022772 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); } } /// /// The image ID field contents. It is important for this field to be non-empty, since /// GDK incorrectly identifies the mime type as image/x-win-bitmap if the idLength /// value is 0 (see bug #987641). /// private const string ImageIdField = "Created by Pinta"; // 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, Gtk.Window parent) { 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 = (byte) (ImageIdField.Length + 1); 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); writer.Write(ImageIdField); 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.6/Pinta.Core/ImageFormats/OraFormat.cs0000664000175000017500000002340412474706675022415 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; #region IImageImporter implementation public void Import (string fileName, Gtk.Window parent) { 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; } } UserLayer layer = doc.CreateLayer(name); doc.Insert (layer, 0); layer.Opacity = double.Parse (GetAttribute (layerElement, "opacity", "1"), GetFormat ()); layer.BlendMode = StandardToBlendMode (GetAttribute (layerElement, "composite-op", "svg:src-over")); 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 (parent, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Could not import layer \"{0}\" from {0}", name, file); md.Title = "Error"; md.Run (); md.Destroy (); } } file.Close (); } public Pixbuf LoadThumbnail (string filename, int maxWidth, int maxHeight, Gtk.Window parent) { ZipFile file = new ZipFile (filename); ZipEntry ze = file.GetEntry ("Thumbnails/thumbnail.png"); // The ORA specification requires that all files will have a // thumbnail that is less than 256x256 pixels, so don't bother // with scaling the preview. Pixbuf p = new Pixbuf (file.GetInputStream (ze)); file.Close (); return p; } #endregion 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 ("composite-op", BlendModeToStandard (layers[i].BlendMode)); 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, Gtk.Window parent) { 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.UserLayers.Count; i++) { Pixbuf pb = document.UserLayers[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.UserLayers); 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 (); } private string BlendModeToStandard (BlendMode mode) { switch (mode) { case BlendMode.Normal: default: return "svg:src-over"; case BlendMode.Multiply: return "svg:multiply"; case BlendMode.Additive: return "svg:plus"; case BlendMode.ColorBurn: return "svg:color-burn"; case BlendMode.ColorDodge: return "svg:color-dodge"; case BlendMode.Reflect: return "pinta-reflect"; case BlendMode.Glow: return "pinta-glow"; case BlendMode.Overlay: return "svg:overlay"; case BlendMode.Difference: return "svg:difference"; case BlendMode.Negation: return "pinta-negation"; case BlendMode.Lighten: return "svg:lighten"; case BlendMode.Darken: return "svg:darken"; case BlendMode.Screen: return "svg:screen"; case BlendMode.Xor: return "svg:xor"; } } private BlendMode StandardToBlendMode (string mode) { switch (mode) { case "svg:src-over": return BlendMode.Normal; case "svg:multiply": return BlendMode.Multiply; case "svg:plus": return BlendMode.Additive; case "svg:color-burn": return BlendMode.ColorBurn; case "svg:color-dodge": return BlendMode.ColorDodge; case "pinta-reflect": return BlendMode.Reflect; case "pinta-glow": return BlendMode.Glow; case "svg:overlay": return BlendMode.Overlay; case "svg:difference": return BlendMode.Difference; case "pinta-negation": return BlendMode.Negation; case "svg:lighten": return BlendMode.Lighten; case "svg:darken": return BlendMode.Darken; case "svg:screen": return BlendMode.Screen; case "svg:xor": return BlendMode.Xor; default: Console.WriteLine ("Unrecognized composite-op: {0}, using Normal.", mode); return BlendMode.Normal; } } } } pinta-1.6/Pinta.Core/ImageFormats/FormatDescriptor.cs0000664000175000017500000000711712474706675024015 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 { /// /// Describes information about a file format, such as the /// supported file extensions. /// public sealed class FormatDescriptor { /// /// A list of the supported extensions (for example, "jpeg" and "JPEG"). /// public string[] Extensions { get; private set; } /// /// The importer for this file format. This may be null if only exporting /// is supported for this format. /// public IImageImporter Importer { get; private set; } /// /// The exporter for this file format. This may be null if only importing /// is supported for this format. /// public IImageExporter Exporter { get; private set; } /// /// A file filter for use in the file dialog. /// public FileFilter Filter { get; private set; } /// /// A descriptive name for the format, such as "OpenRaster". This will be displayed /// in the file dialog's filter. /// /// A list of supported file extensions (for example, "jpeg" and "JPEG"). /// The importer for this file format, or null if importing is not supported. /// The exporter for this file format, or null if exporting is not supported. public FormatDescriptor (string displayPrefix, string[] extensions, IImageImporter importer, IImageExporter exporter) { if (extensions == null || (importer == null && exporter == null)) { throw new ArgumentNullException ("Format descriptor is initialized incorrectly"); } 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 bool IsWriteOnly () { return Importer == null; } } } pinta-1.6/Pinta.Core/ImageFormats/IImageImporter.cs0000664000175000017500000000502612474706675023400 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; using Mono.Addins; namespace Pinta.Core { [TypeExtensionPoint] public interface IImageImporter { /// /// Imports a document into Pinta. /// /// The name of the file to be imported. /// /// Window to be used as a parent for any dialogs that are shown. /// void Import (string filename, Gtk.Window parent); /// /// Returns a thumbnail of an image. /// If the format provides an efficient way to load a smaller version of /// the image, it is suggested to use that method to load a thumbnail /// no larger than the given width and height parameters. Otherwise, the /// returned pixbuf will need to be rescaled by the calling code if it /// exceeds the maximum size. /// /// The name of the file to be imported. /// The maximum width of the thumbnail. /// The maximum height of the thumbnail. /// /// Window to be used as a parent for any dialogs that are shown. /// /// The thumbnail, or null if the image could not be loaded. Gdk.Pixbuf LoadThumbnail (string filename, int maxWidth, int maxHeight, Gtk.Window parent); } } pinta-1.6/Pinta.Core/Pinta.Core.csproj0000664000175000017500000002717512474706675021013 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {30091528-6EC1-40F8-B4BF-8EB41CBE8A8B} Library Pinta.Core Pinta.Core 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 true 1591 none False ..\bin prompt 4 False True AllRules.ruleset ..\lib\Mono.Addins.dll ..\lib\ICSharpCode.SharpZipLib.dll False False False False 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.6/Pinta.Core/Enumerations/0000775000175000017500000000000012474706675020264 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Enumerations/TextMode.cs0000664000175000017500000000245712474706675022354 0ustar00cameroncameron00000000000000// // TextMode.cs // // Author: // Andrew Davis // // Copyright (c) 2012 Andrew Davis, GSoC 2012 // // 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 TextMode { Unchanged, Uncommitted, NotFinalized, } } pinta-1.6/Pinta.Core/Enumerations/BlendMode.cs0000664000175000017500000000262212474706675022446 0ustar00cameroncameron00000000000000// // BlendMode.cs // // Author: // Jonathan Pobst // // Copyright (c) 2012 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 BlendMode { Normal, Multiply, Additive, ColorBurn, ColorDodge, Reflect, Glow, Overlay, Difference, Negation, Lighten, Darken, Screen, Xor } } pinta-1.6/Pinta.Core/Enumerations/EffectAdjustment.cs0000664000175000017500000000243512474706675024052 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.6/Pinta.Core/Enumerations/CursorShape.cs0000664000175000017500000000240412474706675023051 0ustar00cameroncameron00000000000000// // CursorShape.cs // // Author: // Don McComb // // Copyright (c) 2012 Don McComb // // 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 CursorShape { Ellipse, Rectangle } } pinta-1.6/Pinta.Core/Enumerations/GradientColorMode.cs0000664000175000017500000000244012474706675024154 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.6/Pinta.Core/Enumerations/TextAlignment.cs0000664000175000017500000000136712474706675023405 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.Core { public enum TextAlignment { Right, Center, Left } } pinta-1.6/Pinta.Core/Widgets/0000775000175000017500000000000012474706675017221 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Widgets/MenuButton.cs0000664000175000017500000001202112474706675021644 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 Gtk.Label label_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, bool showLabel = false) { 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) { if (showLabel) { box.PackStart (button_widget, true, true, 3); label_widget = new Gtk.Label (); box.PackStart (label_widget, true, false, 2); } else { 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.6/Pinta.Core/Widgets/ToolBarDropDownButton.cs0000664000175000017500000000413712474706675023770 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 (bool showLabel = false) { Items = new List (); dropdown = new Menu (); image = new Image (); Construct (image, dropdown, true, showLabel); } 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; if (label_widget != null) label_widget.Text = 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.6/Pinta.Core/Managers/0000775000175000017500000000000012474707505017341 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Managers/EffectsManager.cs0000664000175000017500000001263312474706675022556 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 type of the effect to unregister public void UnregisterInstanceOfEffect (System.Type effect_type) { foreach (BaseEffect effect in effects.Keys) { if (effect.GetType () == effect_type) { var action = effects[effect]; effects.Remove (effect); PintaCore.Actions.Effects.RemoveEffect (effect.EffectMenuCategory, action); return; } } } /// /// Unregister an effect with Pinta, causing it to be removed from the Adjustments menu. /// /// The type of the adjustment to unregister public void UnregisterInstanceOfAdjustment (System.Type adjustment_type) { foreach (BaseEffect adjustment in adjustments.Keys) { if (adjustment.GetType () == adjustment_type) { 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); return; } } } } } pinta-1.6/Pinta.Core/Managers/WorkspaceManager.cs0000664000175000017500000002516512474706675023141 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 event EventHandler SelectionChanged; public WorkspaceManager () { OpenDocuments = new List (); SelectionHandler = new SelectionModeHandler (); } public void CallSelectionChanged(object sender, EventArgs e) { SelectionChanged(sender, e); } 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 SelectionModeHandler SelectionHandler { get; private set; } 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, Color backgroundColor) { Document doc = CreateAndActivateDocument (null, imageSize); doc.Workspace.CanvasSize = imageSize; // Start with an empty white layer Layer background = doc.AddNewLayer (Catalog.GetString ("Background")); if (backgroundColor.A != 0) { using (Cairo.Context g = new Cairo.Context (background.Surface)) { g.SetSourceColor (backgroundColor); 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, Window parent = null) { bool fileOpened = false; if (parent == null) parent = PintaCore.Chrome.MainWindow; try { // Open the image and add it to the layers IImageImporter importer = PintaCore.System.ImageFormats.GetImporterByFile (file); if (importer == null) throw new FormatException( Catalog.GetString ("Unsupported file format")); importer.Import (file, parent); 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 (UnauthorizedAccessException e) { ShowOpenFileErrorDialog (parent, file, Catalog.GetString ("Permission denied"), e.ToString ()); } catch (Exception e) { ShowOpenFileErrorDialog (parent, file, e.Message, e.ToString ()); } return fileOpened; } public void ResizeImage (int width, int height) { ActiveDocument.ResizeImage (width, height); } public void ResizeCanvas (int width, int height, Anchor anchor, CompoundHistoryItem compoundAction) { ActiveDocument.ResizeCanvas (width, height, anchor, compoundAction); } /// /// Converts a point from the active documents /// window coordinates to canvas coordinates /// /// /// The X coordinate of the window point /// /// /// The Y coordinate of the window point /// public Cairo.PointD WindowPointToCanvas (double x, double y) { return ActiveWorkspace.WindowPointToCanvas (x, y); } /// /// Converts a point from the active documents /// canvas coordinates to window coordinates /// /// /// The X coordinate of the canvas point /// /// /// The Y coordinate of the canvas point /// public Cairo.PointD CanvasPointToWindow (double x, double y) { return ActiveWorkspace.CanvasPointToWindow (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 private void ShowOpenFileErrorDialog (Window parent, string filename, string primaryText, string details) { string markup = "{0}\n\n{1}"; string secondaryText = string.Format (Catalog.GetString ("Could not open file: {0}"), filename); string message = string.Format (markup, primaryText, secondaryText); PintaCore.Chrome.ShowErrorDialog(parent, message, details); } #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.6/Pinta.Core/Managers/ImageConverterManager.cs0000664000175000017500000001471312474706675024112 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 { private List formats; 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; RegisterFormat (new FormatDescriptor (formatNameUpperCase, extensions, importer, exporter)); } // Create all the formats we have our own importers/exporters for OraFormat oraHandler = new OraFormat (); RegisterFormat (new FormatDescriptor ("OpenRaster", new string[] { "ora", "ORA" }, oraHandler, oraHandler)); } public IEnumerable Formats { get { return formats; } } /// /// Registers a new file format. /// public void RegisterFormat (FormatDescriptor fd) { formats.Add (fd); } /// /// Unregisters the file format for the given extension. /// public void UnregisterFormatByExtension (string extension) { extension = NormalizeExtension (extension); formats.RemoveAll (f => f.Extensions.Contains (extension)); } /// /// Returns the default format that should be used when saving a file. /// This is normally the last format that was chosen by the user. /// 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."); } /// /// Finds the correct exporter to use for opening the given file, or null /// if no exporter exists for the file. /// public IImageExporter GetExporterByFile (string file) { string extension = Path.GetExtension (file); return GetExporterByExtension (extension); } /// /// Finds the file format for the given file name, or null /// if no file format exists for that file. /// public FormatDescriptor GetFormatByFile (string file) { string extension = Path.GetExtension (file); extension = NormalizeExtension (extension); return Formats.Where (p => p.Extensions.Contains (extension)).FirstOrDefault (); } /// /// Finds the correct importer to use for opening the given file, or null /// if no importer exists for the file. /// public IImageImporter GetImporterByFile (string file) { string extension = Path.GetExtension (file); if (extension == null) { return null; } else { return GetImporterByExtension (extension); } } /// /// Sets the default format used when saving files to the given extension. /// public void SetDefaultFormat (string extension) { extension = NormalizeExtension (extension); PintaCore.Settings.PutSetting ("default-image-type", extension); PintaCore.Settings.SaveSettings (); } /// /// Finds the correct exporter to use for the given file extension, or null /// if no exporter exists for that extension. /// private IImageExporter GetExporterByExtension (string extension) { FormatDescriptor format = GetFormatByExtension (extension); if (format == null) return null; return format.Exporter; } /// /// Finds the correct importer to use for the given file extension, or null /// if no importer exists for that extension. /// private IImageImporter GetImporterByExtension (string extension) { FormatDescriptor format = GetFormatByExtension (extension); if (format == null) return null; return format.Importer; } /// /// Finds the file format for the given file extension, or null /// if no file format exists for that extension. /// private FormatDescriptor GetFormatByExtension (string extension) { extension = NormalizeExtension (extension); return Formats.Where (p => p.Extensions.Contains (extension)).FirstOrDefault (); } /// /// Normalizes the extension. /// private static string NormalizeExtension (string extension) { return extension.ToLowerInvariant ().TrimStart ('.').Trim (); } } } pinta-1.6/Pinta.Core/Managers/PaletteManager.cs0000664000175000017500000000463112474706675022574 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.6/Pinta.Core/Managers/ToolManager.cs0000664000175000017500000001400012474706675022102 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 event EventHandler ToolRemoved; 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); } public void RemoveInstanceOfTool (System.Type tool_type) { foreach (BaseTool tool in Tools) { if (tool.GetType () == tool_type) { tool.ToolItem.Clicked -= HandlePbToolItemClicked; tool.ToolItem.Active = false; tool.ToolItem.Sensitive = false; Tools.Remove (tool); Tools.Sort (new ToolSorter ()); SetCurrentTool(new DummyTool()); OnToolRemoved (tool); return; } } } 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];} else { DummyTool dummy = new DummyTool (); SetCurrentTool(dummy); return dummy; } } } 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(tool); 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)); } private void OnToolRemoved (BaseTool tool) { if (ToolRemoved != null) ToolRemoved (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; } } } //This tool does nothing, is used when no tools are in toolbox. If used seriously will probably // throw a zillion exceptions due to missing overrides public class DummyTool : BaseTool { public override string Name { get { return Mono.Unix.Catalog.GetString ("No tool selected."); } } public override string Icon { get { return Gtk.Stock.MissingImage; } } public override string StatusBarText { get { return Mono.Unix.Catalog.GetString ("No tool selected."); } } protected override void OnBuildToolBar (Toolbar tb) { tool_label = null; tool_image = null; tool_sep = null; } } } pinta-1.6/Pinta.Core/Managers/SettingsManager.cs0000664000175000017500000001102612474706675022772 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.6/Pinta.Core/Managers/SystemManager.cs0000664000175000017500000001041212474706675022454 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 { // The file chooser dialog may return null for the current folder in certain cases, // such as the Recently Used pane in the Gnome file chooser. if (value != null) 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.6/Pinta.Core/Managers/FontManager.cs0000664000175000017500000000463212474706675022105 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.6/Pinta.Core/Managers/HistoryManager.cs0000664000175000017500000000576412474706675022647 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.6/Pinta.Core/Managers/ChromeManager.cs0000664000175000017500000001061112474706675022406 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; private ErrorDialogHandler error_dialog_handler; 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 = new Gdk.Cursor(Gdk.CursorType.Arrow); } } #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 InitializeErrorDialogHandler (ErrorDialogHandler handler) { error_dialog_handler = handler; } public void ShowErrorDialog (Window parent, string message, string details) { error_dialog_handler (parent, message, details); } 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; } public delegate void ErrorDialogHandler(Window parent, string message, string details); } pinta-1.6/Pinta.Core/Managers/LayerManager.cs0000664000175000017500000001535612474706675022260 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 UserLayer this[int index] { get { return PintaCore.Workspace.ActiveDocument.UserLayers[index]; } } public UserLayer CurrentLayer { get { return PintaCore.Workspace.ActiveDocument.CurrentUserLayer; } } public int Count { get { return PintaCore.Workspace.ActiveDocument.UserLayers.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.CurrentUserLayerIndex; } } 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.SetCurrentUserLayer (i); } public void SetCurrentLayer(UserLayer layer) { PintaCore.Workspace.ActiveDocument.SetCurrentUserLayer (layer); } public void FinishSelection () { PintaCore.Workspace.ActiveDocument.FinishSelection (); } // Adds a new layer above the current one public UserLayer AddNewLayer(string name) { return PintaCore.Workspace.ActiveDocument.AddNewLayer (name); } // Adds a new layer above the current one public void Insert(UserLayer layer, int index) { PintaCore.Workspace.ActiveDocument.Insert (layer, index); } public int IndexOf(UserLayer 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.ResetSelectionPaths (); } 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.6/Pinta.Core/Managers/PaintBrushManager.cs0000664000175000017500000000607012474706675023254 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 event EventHandler BrushAdded; public event EventHandler BrushRemoved; /// /// Register a new brush. /// public void AddPaintBrush (BasePaintBrush paintBrush) { paint_brushes.Add (paintBrush); paint_brushes.Sort (new BrushSorter ()); OnBrushAdded (paintBrush); } /// /// Remove a brush type. /// public void RemoveInstanceOfPaintBrush (System.Type paintBrush) { foreach (BasePaintBrush brush in paint_brushes) { if (brush.GetType () == paintBrush) { paint_brushes.Remove (brush); paint_brushes.Sort (new BrushSorter ()); OnBrushRemoved (brush); return; } } } #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 private void OnBrushAdded (BasePaintBrush brush) { var handler = BrushAdded; if (handler != null) handler (this, new BrushEventArgs (brush)); } private void OnBrushRemoved (BasePaintBrush brush) { var handler = BrushRemoved; if (handler != null) handler (this, new BrushEventArgs (brush)); } 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.6/Pinta.Core/Managers/LivePreviewManager.cs0000664000175000017500000002715212474706675023442 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; SimpleHistoryItem history_item; 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 Gdk.Rectangle RenderBounds { get { return render_bounds; } } 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; //TODO Use the current tool layer instead. live_preview_surface = new Cairo.ImageSurface (Cairo.Format.Argb32, PintaCore.Workspace.ImageSize.Width, PintaCore.Workspace.ImageSize.Height); // Handle selection path. PintaCore.Tools.Commit (); selection_path = (PintaCore.Layers.ShowSelection) ? PintaCore.Workspace.ActiveDocument.Selection.SelectionPath : null; render_bounds = (selection_path != null) ? selection_path.GetBounds () : live_preview_surface.GetBounds (); render_bounds = PintaCore.Workspace.ClampToImageSize (render_bounds); history_item = new SimpleHistoryItem (effect.Icon, effect.Name); history_item.TakeSnapshotOfLayer (PintaCore.Layers.CurrentLayerIndex); // Paint the pre-effect layer surface into into the working surface. using (var ctx = new Cairo.Context (live_preview_surface)) { layer.Draw(ctx, layer.Surface, 1); } 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 (); layer.Draw(ctx, layer.Surface, opacity); ctx.ResetClip (); // Paint area inside the selection path, with the post-effect image. ctx.AppendPath (selection_path); ctx.Clip (); layer.Draw(ctx, live_preview_surface, opacity); ctx.PaintWithAlpha (opacity); ctx.AppendPath (selection_path); ctx.FillRule = Cairo.FillRule.EvenOdd; ctx.Clip (); } else { layer.Draw(ctx, live_preview_surface, 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) { (live_preview_surface as IDisposable).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()"); using (var ctx = new Cairo.Context (layer.Surface)) { ctx.Save (); PintaCore.Workspace.ActiveDocument.Selection.Clip (ctx); ctx.Operator = Cairo.Operator.Source; layer.Draw(ctx, live_preview_surface, 1); ctx.Restore (); } PintaCore.History.PushNewItem (history_item); history_item = null; 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; } if (history_item != null) { history_item.Dispose (); history_item = 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.GetRight () + 1) * scale; double y2 = (bounds.GetBottom () + 1) * 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.6/Pinta.Core/Managers/ResourceManager.cs0000664000175000017500000000272012474706675022762 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.6/Pinta.Core/Managers/ActionManager.cs0000664000175000017500000001553412474707505022410 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; using System.Collections.Generic; using ClipperLibrary; 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 AddinActions Addins { 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 (); Addins = new AddinActions (); 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); // Add-ins menu ImageMenuItem addins = (ImageMenuItem)menu.Children[7]; addins.Submenu = new Menu (); Addins.CreateMainMenu ((Menu)addins.Submenu); // Window menu ImageMenuItem window = (ImageMenuItem)menu.Children[8]; window.Submenu = new Menu (); Window.CreateMainMenu ((Menu)window.Submenu); //Help menu ImageMenuItem help = (ImageMenuItem)menu.Children[9]; 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 (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); }; toolbar.AppendItem(new SeparatorToolItem()); toolbar.AppendItem(new ToolBarImage("Tools.RectangleSelect.png")); ToolBarLabel SelectionSize = new ToolBarLabel(" 0, 0"); toolbar.AppendItem(SelectionSize); PintaCore.Workspace.SelectionChanged += delegate { double minX = double.MaxValue; double minY = double.MaxValue; double maxX = double.MinValue; double maxY = double.MinValue; //Calculate the minimum rectangular bounds that surround the current selection. foreach (List li in PintaCore.Workspace.ActiveDocument.Selection.SelectionPolygons) { foreach (IntPoint ip in li) { if (minX > ip.X) { minX = ip.X; } if (minY > ip.Y) { minY = ip.Y; } if (maxX < ip.X) { maxX = ip.X; } if (maxY < ip.Y) { maxY = ip.Y; } } } double xDiff = maxX - minX; double yDiff = maxY - minY; if (double.IsNegativeInfinity(xDiff)) { xDiff = 0d; } if (double.IsNegativeInfinity(yDiff)) { yDiff = 0d; } SelectionSize.Text = string.Format(" {0}, {1}", xDiff, yDiff); }; } public void RegisterHandlers () { File.RegisterHandlers (); Edit.RegisterHandlers (); Image.RegisterHandlers (); Layers.RegisterHandlers (); View.RegisterHandlers (); Help.RegisterHandlers (); } } } pinta-1.6/Pinta.Core/.gitignore0000664000175000017500000000002212474706675017575 0ustar00cameroncameron00000000000000/bin/ /obj/ *.userpinta-1.6/Pinta.Core/Effects/0000775000175000017500000000000012474707505017163 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Effects/ColorTransferMode.cs0000664000175000017500000000114212474706675023107 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.6/Pinta.Core/Effects/LocalHistogramEffect.cs0000664000175000017500000003563412474706675023561 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.6/Pinta.Core/Effects/IBitVector2D.cs0000664000175000017500000000243312474706675021723 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.6/Pinta.Core/Effects/ColorDifferenceEffect.cs0000664000175000017500000000547712474706675023704 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.6/Pinta.Core/Effects/UserBlendOps.cs0000664000175000017500000001071612474706675022073 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.Linq; using System.Reflection; using Mono.Unix; 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 static UserBlendOp[] cached_ops; private static Dictionary blend_modes = new Dictionary (); static UserBlendOps () { cached_ops = new UserBlendOp[] { new NormalBlendOp (), new MultiplyBlendOp (), new AdditiveBlendOp (), new ColorBurnBlendOp (), new ColorDodgeBlendOp (), new ReflectBlendOp (), new GlowBlendOp (), new OverlayBlendOp (), new DifferenceBlendOp (), new NegationBlendOp (), new LightenBlendOp (), new DarkenBlendOp (), new ScreenBlendOp (), new XorBlendOp () }; blend_modes.Add (Catalog.GetString ("Normal"), BlendMode.Normal); blend_modes.Add (Catalog.GetString ("Multiply"), BlendMode.Multiply); blend_modes.Add (Catalog.GetString ("Additive"), BlendMode.Additive); blend_modes.Add (Catalog.GetString ("Color Burn"), BlendMode.ColorBurn); blend_modes.Add (Catalog.GetString ("Color Dodge"), BlendMode.ColorDodge); blend_modes.Add (Catalog.GetString ("Reflect"), BlendMode.Reflect); blend_modes.Add (Catalog.GetString ("Glow"), BlendMode.Glow); blend_modes.Add (Catalog.GetString ("Overlay"), BlendMode.Overlay); blend_modes.Add (Catalog.GetString ("Difference"), BlendMode.Difference); blend_modes.Add (Catalog.GetString ("Negation"), BlendMode.Negation); blend_modes.Add (Catalog.GetString ("Lighten"), BlendMode.Lighten); blend_modes.Add (Catalog.GetString ("Darken"), BlendMode.Darken); blend_modes.Add (Catalog.GetString ("Screen"), BlendMode.Screen); blend_modes.Add (Catalog.GetString ("Xor"), BlendMode.Xor); } 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); } public static UserBlendOp GetBlendOp (BlendMode mode, double opacity) { if (opacity == 1.0) return cached_ops[(int)mode]; return cached_ops[(int)mode].CreateWithOpacity ((int)(opacity * 255)); } public static IEnumerable GetAllBlendModeNames () { return blend_modes.Keys; } public static BlendMode GetBlendModeByName (string name) { return blend_modes[name]; } public static string GetBlendModeName (BlendMode mode) { return blend_modes.Where (p => p.Value == mode).First ().Key; } } } pinta-1.6/Pinta.Core/Effects/UnaryPixelOps.cs0000664000175000017500000007144212474706675022313 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.6/Pinta.Core/Effects/BitVector2DSurfaceAdapter.cs0000664000175000017500000001140512474706675024423 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.GetBottom (); ++y) { for (int x = rect.X; x <= rect.GetRight (); ++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.GetBottom (); ++y) { for (int x = rect.X; x <= rect.GetRight (); ++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.6/Pinta.Core/Effects/PixelOp.cs0000664000175000017500000001107712474706675021107 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). /// 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 < 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.6/Pinta.Core/Effects/ColorBgra.cs0000664000175000017500000005221512474706675021400 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; } } /// /// 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; } } /// /// 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.6/Pinta.Core/Effects/Histogram.cs0000664000175000017500000001342612474706675021464 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.6/Pinta.Core/Effects/HsvColor.cs0000664000175000017500000001312612474706675021263 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.6/Pinta.Core/Effects/UserBlendOp.cs0000664000175000017500000000233012474706675021701 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.6/Pinta.Core/Effects/SplineInterpolator.cs0000664000175000017500000000727212474706675023366 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.6/Pinta.Core/Effects/Scanline.cs0000664000175000017500000000407612474706675021264 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.6/Pinta.Core/Effects/UnaryPixelOp.cs0000664000175000017500000000615112474706675022123 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.GetBottom (); ++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.GetBottom(); ++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.6/Pinta.Core/Effects/HistogramRGB.cs0000664000175000017500000001161212474706675022012 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.GetRight (); for (int y = rect.Y; y <= rect.GetBottom (); ++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.6/Pinta.Core/Effects/BaseEffect.cs0000664000175000017500000001707412474707505021512 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.6")] 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.GetBottom (); ++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.6/Pinta.Core/Effects/RgbColor.cs0000664000175000017500000000770512474706675021243 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.6/Pinta.Core/Effects/BinaryPixelOp.cs0000664000175000017500000001253612474706675022255 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). /// 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.6/Pinta.Core/Effects/Utility.cs0000664000175000017500000005235412474706675021175 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. /// Index of the first rectangle in the array to examine. /// Number of rectangles to examine, beginning at startIndex. /// A rectangle 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].GetRight (); int bottom = rects[startIndex].GetBottom (); 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.GetRight () > right) { right = rect.GetRight (); } if (rect.GetBottom () > bottom) { bottom = rect.GetBottom (); } } 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 }; } } pinta-1.6/Pinta.Core/Effects/UserBlendOps.Generated.cs0000664000175000017500000050050412474706675023767 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.6/Pinta.Core/Actions/0000775000175000017500000000000012474707505017204 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Actions/HelpActions.cs0000664000175000017500000000633312474706675021760 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.6/Pinta.Core/Actions/LayerActions.cs0000664000175000017500000003314712474706675022147 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.UserLayers.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.CurrentUserLayerIndex > 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.CurrentUserLayerIndex < PintaCore.Workspace.ActiveDocument.UserLayers.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 (); var fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Image File"),PintaCore.Chrome.MainWindow, FileChooserAction.Open, Stock.Cancel, ResponseType.Cancel, Stock.Open, 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 UserLayer 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.SetCurrentUserLayer (layer); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.ImportFromFile.png", Catalog.GetString ("Import From File"), doc.UserLayers.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.CurrentUserLayer.FlipVertical (); doc.Workspace.Invalidate (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipLayerVertical, doc.CurrentUserLayerIndex)); } private void HandlePintaCoreActionsLayersFlipHorizontalActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.CurrentUserLayer.FlipHorizontal (); doc.Workspace.Invalidate (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.FlipLayerHorizontal, doc.CurrentUserLayerIndex)); } 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.CurrentUserLayerIndex, doc.CurrentUserLayerIndex + 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.CurrentUserLayerIndex, doc.CurrentUserLayerIndex - 1); doc.MoveCurrentLayerDown (); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersMergeLayerDownActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); int bottomLayerIndex = doc.CurrentUserLayerIndex - 1; var oldBottomSurface = doc.UserLayers[bottomLayerIndex].Surface.Clone (); CompoundHistoryItem hist = new CompoundHistoryItem ("Menu.Layers.MergeLayerDown.png", Catalog.GetString ("Merge Layer Down")); DeleteLayerHistoryItem h1 = new DeleteLayerHistoryItem (string.Empty, string.Empty, doc.CurrentUserLayer, doc.CurrentUserLayerIndex); doc.MergeCurrentLayerDown (); SimpleHistoryItem h2 = new SimpleHistoryItem (string.Empty, string.Empty, oldBottomSurface, bottomLayerIndex); hist.Push (h1); hist.Push (h2); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersDuplicateLayerActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); UserLayer l = doc.DuplicateCurrentLayer(); // Make new layer the current layer doc.SetCurrentUserLayer (l); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.DuplicateLayer.png", Catalog.GetString ("Duplicate Layer"), doc.UserLayers.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.CurrentUserLayer, doc.CurrentUserLayerIndex); doc.DeleteLayer (doc.CurrentUserLayerIndex, false); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsLayersAddNewLayerActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); UserLayer l = doc.AddNewLayer(string.Empty); // Make new layer the current layer doc.SetCurrentUserLayer (l); AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.AddNewLayer.png", Catalog.GetString ("Add New Layer"), doc.UserLayers.IndexOf (l)); doc.History.PushNewItem (hist); } #endregion } } pinta-1.6/Pinta.Core/Actions/AddinActions.cs0000664000175000017500000000403612474706675022105 0ustar00cameroncameron00000000000000// // AddinActions.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 Gtk; using Mono.Unix; namespace Pinta.Core { public class AddinActions { private Menu addins_menu; public Gtk.Action AddinManager { get; private set; } public AddinActions () { AddinManager = new Gtk.Action ("AddinManager", Catalog.GetString ("Add-in Manager"), null, "Menu.Edit.Addins.png"); } /// /// Adds a new item to the Add-ins menu. /// public void AddMenuItem (Widget item) { addins_menu.Add (item); } /// /// Removes an item from the Add-ins menu. /// public void RemoveMenuItem (Widget item) { addins_menu.Remove (item); } #region Initialization public void CreateMainMenu (Gtk.Menu menu) { addins_menu = menu; menu.Append (AddinManager.CreateMenuItem ()); menu.AppendSeparator (); } #endregion } } pinta-1.6/Pinta.Core/Actions/EditActions.cs0000664000175000017500000004271712474706675021763 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 CopyMerged { 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; } 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); CopyMerged = new Gtk.Action ("CopyMerged", Catalog.GetString ("Copy Merged"), 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"); 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 (CopyMerged.CreateAcceleratedMenuItem (Gdk.Key.C, Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask)); 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 ()); } 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; CopyMerged.Activated += HandlerPintaCoreActionsEditCopyMergedActivated; Undo.Activated += HandlerPintaCoreActionsEditUndoActivated; Redo.Activated += HandlerPintaCoreActionsEditRedoActivated; Cut.Activated += HandlerPintaCoreActionsEditCutActivated; LoadPalette.Activated += HandlerPintaCoreActionsEditLoadPaletteActivated; SavePalette.Activated += HandlerPintaCoreActionsEditSavePaletteActivated; ResetPalette.Activated += HandlerPintaCoreActionsEditResetPaletteActivated; InvertSelection.Activated += HandleInvertSelectionActivated; 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.CurrentUserLayer.Surface.Clone (); using (var g = new Cairo.Context (doc.CurrentUserLayer.Surface)) { g.AppendPath (doc.Selection.SelectionPath); g.FillRule = FillRule.EvenOdd; g.SetSourceColor (PintaCore.Palette.PrimaryColor); g.Fill (); } doc.Workspace.Invalidate (); doc.History.PushNewItem (new SimpleHistoryItem ("Menu.Edit.FillSelection.png", Catalog.GetString ("Fill Selection"), old, doc.CurrentUserLayerIndex)); } 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.ResetSelectionPaths (); 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.CurrentUserLayer.Surface.Clone (); using (var g = new Cairo.Context (doc.CurrentUserLayer.Surface)) { g.AppendPath (doc.Selection.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.CurrentUserLayerIndex)); else doc.History.PushNewItem (new SimpleHistoryItem ("Menu.Edit.EraseSelection.png", Catalog.GetString ("Erase Selection"), old, doc.CurrentUserLayerIndex)); } 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.ResetSelectionPaths (); doc.Selection.SelectionPolygons.Clear(); doc.PreviousSelection.SelectionPolygons.Clear (); doc.Selection.selOrigin = new PointD(); doc.Selection.selEnd = new PointD(); doc.History.PushNewItem (hist); doc.Workspace.Invalidate (); } private void HandlerPintaCoreActionsEditCopyActivated (object sender, EventArgs e) { Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (PintaCore.Tools.CurrentTool.TryHandleCopy (cb)) return; Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); using (ImageSurface src = doc.GetClippedLayer (doc.CurrentUserLayerIndex)) { Gdk.Rectangle rect = doc.GetSelectedBounds (true); if (rect.Width == 0 || rect.Height == 0) return; 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 (); } cb.Image = dest.ToPixbuf (); (dest as IDisposable).Dispose (); } } private void HandlerPintaCoreActionsEditCopyMergedActivated (object sender, EventArgs e) { var cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); var doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); // Get our merged ("flattened") image using (var src = doc.GetFlattenedImage ()) { var rect = doc.GetSelectedBounds (true); // Copy it to a correctly sized surface using (var dest = new ImageSurface (Format.Argb32, rect.Width, rect.Height)) { using (Context g = new Context (dest)) { g.SetSourceSurface (src, -rect.X, -rect.Y); g.Paint (); } // Give it to the clipboard cb.Image = dest.ToPixbuf (); } } } private void HandlerPintaCoreActionsEditCutActivated (object sender, EventArgs e) { Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (PintaCore.Tools.CurrentTool.TryHandleCut (cb)) return; PintaCore.Tools.Commit (); // Copy selection HandlerPintaCoreActionsEditCopyActivated (sender, e); // Erase selection HandlePintaCoreActionsEditEraseSelectionActivated ("Cut", e); } private void HandlerPintaCoreActionsEditUndoActivated (object sender, EventArgs e) { if (PintaCore.Tools.CurrentTool.TryHandleUndo ()) return; Document doc = PintaCore.Workspace.ActiveDocument; doc.History.Undo (); PintaCore.Tools.CurrentTool.AfterUndo(); } private void HandlerPintaCoreActionsEditRedoActivated (object sender, EventArgs e) { if (PintaCore.Tools.CurrentTool.TryHandleRedo ()) return; Document doc = PintaCore.Workspace.ActiveDocument; doc.History.Redo (); PintaCore.Tools.CurrentTool.AfterRedo(); } 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; string fileExtension = (fcd.Filter == ffPDN) ? ".txt" : ".gpl"; string finalFileName = fcd.Filename; bool fileNameHasExtension = finalFileName.EndsWith(".txt") || finalFileName.EndsWith(".gpl"); if (!fileNameHasExtension) finalFileName += fileExtension; PintaCore.Palette.CurrentPalette.Save (finalFileName, format); } fcd.Destroy (); } private void HandlerPintaCoreActionsEditResetPaletteActivated (object sender, EventArgs e) { PintaCore.Palette.CurrentPalette.LoadDefault (); } void HandleInvertSelectionActivated (object sender, EventArgs e) { PintaCore.Tools.Commit (); Document doc = PintaCore.Workspace.ActiveDocument; // Clear the selection resize handles if necessary. doc.ToolLayer.Clear (); SelectionHistoryItem historyItem = new SelectionHistoryItem ("Menu.Edit.InvertSelection.png", Catalog.GetString ("Invert Selection")); historyItem.TakeSnapshot (); doc.Selection.Invert (doc.SelectionLayer.Surface, doc.ImageSize); doc.History.PushNewItem (historyItem); doc.Workspace.Invalidate (); } 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.6/Pinta.Core/Actions/WindowActions.cs0000664000175000017500000001176112474706675022340 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.A, Gdk.ModifierType.Mod1Mask | Gdk.ModifierType.ControlMask)); 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 (); window_menu.HideAll (); // 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); } window_menu.ShowAll (); } #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.6/Pinta.Core/Actions/EffectsActions.cs0000664000175000017500000000545612474706675022454 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.6/Pinta.Core/Actions/AdjustmentsActions.cs0000664000175000017500000000333212474706675023365 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.6/Pinta.Core/Actions/FileActions.cs0000664000175000017500000001143612474707505021740 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 (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, Gtk.Window parent) { ModifyCompressionEventArgs e = new ModifyCompressionEventArgs (defaultCompression, parent); if (ModifyCompression != null) ModifyCompression (this, e); return e.Cancel ? -1 : e.Quality; } #endregion } } pinta-1.6/Pinta.Core/Actions/ViewActions.cs0000664000175000017500000003131212474706675021775 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 System.Globalization; 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[] { ToPercent (36), ToPercent (24), ToPercent (16), ToPercent (12), ToPercent (8), ToPercent (7), ToPercent (6), ToPercent (5), ToPercent (4), ToPercent (3), ToPercent (2), ToPercent (1.75), ToPercent (1.5), ToPercent (1.25), ToPercent (1), ToPercent (0.66), ToPercent (0.5), ToPercent (0.33), ToPercent (0.25), ToPercent (0.16), ToPercent (0.12), ToPercent (0.08), ToPercent (0.05), Catalog.GetString ("Window") }; ZoomComboBox = new ToolBarComboBox (90, 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; // The toolbar is shown by default. ToolBar.Active = true; } #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) { var culture = CultureInfo.CurrentCulture; var format = culture.NumberFormat; // In order to use double.TryParse, we must: // - replace the decimal separator for percents with the regular separator. // - remove the percent sign. // - remove the group separators, since they might be different from the regular // group separator, and the group sizes could also be different. text = text.Replace (format.PercentGroupSeparator, string.Empty); text = text.Replace (format.PercentSymbol, string.Empty); text = text.Replace (format.PercentDecimalSeparator, format.NumberDecimalSeparator); return double.TryParse (text, NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, culture, out percent); } /// /// Convert the given number to a percentage string using the current locale. /// public static string ToPercent (double n) { var percent = (n * 100).ToString ("N0", CultureInfo.CurrentCulture); // Translators: This specifies the format of the zoom percentage choices // in the toolbar. return string.Format (Catalog.GetString ("{0}%"), 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, ToPercent (1)); } } }pinta-1.6/Pinta.Core/Actions/ImageActions.cs0000664000175000017500000002614212474706675022112 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.ResetSelectionPaths (); 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.ResetSelectionPaths (); doc.History.PushNewItem (new InvertHistoryItem (InvertType.Rotate90CW)); } private void HandlePintaCoreActionsImageFlattenActivated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); var oldBottomSurface = doc.UserLayers[0].Surface.Clone (); CompoundHistoryItem hist = new CompoundHistoryItem ("Menu.Image.Flatten.png", Catalog.GetString ("Flatten")); for (int i = doc.UserLayers.Count - 1; i >= 1; i--) hist.Push (new DeleteLayerHistoryItem (string.Empty, string.Empty, doc.UserLayers[i], i)); doc.FlattenImage (); hist.Push (new SimpleHistoryItem (string.Empty, string.Empty, oldBottomSurface, 0)); doc.History.PushNewItem (hist); } private void HandlePintaCoreActionsImageRotate180Activated (object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); doc.RotateImage180 (); doc.ResetSelectionPaths (); 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.CurrentUserLayer.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) { if (rect.Width > 0 && rect.Height > 0) { ResizeHistoryItem hist = new ResizeHistoryItem(doc.ImageSize); hist.Icon = "Menu.Image.Crop.png"; hist.Text = Catalog.GetString("Crop to Selection"); hist.StartSnapshotOfImage(); hist.RestoreSelection = doc.Selection.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.UserLayers) layer.Crop(rect); hist.FinishSnapshotOfImage(); doc.History.PushNewItem(hist); doc.ResetSelectionPaths(); doc.Workspace.Invalidate(); } } } } pinta-1.6/Pinta.Core/Properties/0000775000175000017500000000000012474707505017740 5ustar00cameroncameron00000000000000pinta-1.6/Pinta.Core/Properties/AssemblyInfo.cs0000664000175000017500000000172112474707505022663 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.6.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.6/Makefile.am0000664000175000017500000000735412474706675015716 0ustar00cameroncameron00000000000000SUBDIRS = xdg DIST_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 DEBUG_FILES = $(addsuffix .mdb, $(BINFILES)) RELEASE_FILE = $(PACKAGE)-$(VERSION) MAC_APP_DIR = Pinta.app MAC_APP_BIN_DIR = "$(MAC_APP_DIR)/Contents/MacOS/" #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: cd po && intltool-update -m && intltool-update -p --gettext-package=messages cat po/messages.in >> po/messages.pot cat po/messages.pot | msguniq -o po/messages.pot # target: clean - Default clean command: cleanobj and cleanbin clean-local: cleanobj cleanbin maintainer-clean-local: rm -rf autom4te.cache # 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" releaseosx: build $(BINFILES) mkdir -p $(MAC_APP_DIR)/Contents/{MacOS,Resources} cp -r $(BINDIR)/locale $(BINFILES) $(DEBUG_FILES) $(BINDIR)/ICSharpCode.SharpZipLib.dll osx/pinta $(MAC_APP_BIN_DIR) chmod +x $(MAC_APP_BIN_DIR)/pinta cp osx/Info.plist $(MAC_APP_DIR)/Contents cp osx/pinta.icns $(MAC_APP_DIR)/Contents/Resources touch $(MAC_APP_DIR) zip -r9uq $(MAC_APP_DIR).zip $(MAC_APP_DIR) rm -rf $(MAC_APP_DIR) EXTRA_DIST = Pinta Pinta.Core Pinta.Effects Pinta.Gui.Widgets Pinta.Resources Pinta.Tools po xdg license-mit.txt \ license-pdn.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 \ intltool-extract.in \ intltool-update.in \ intltool-merge.in DISTCLEANFILES = po/.intltool-merge-cache \ po/Makefile \ po/Makefile.in \ po/Makefile MAINTAINERCLEANFILES = po/Makefile.in.in \ Makefile.in \ install-sh \ configure \ aclocal.m4 \ missing \ compile .PHONY: install uninstall cleanbin cleanobj release releasetar releasezip pinta-1.6/pinta.in0000664000175000017500000000014412474706675015313 0ustar00cameroncameron00000000000000#!/bin/sh prefix=@prefix@ exec_prefix=@exec_prefix@ exec @MONO@ @libdir@/@PACKAGE@/Pinta.exe "$@" pinta-1.6/license-mit.txt0000664000175000017500000000210612474706675016622 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.6/Pinta/0000775000175000017500000000000012474706675014724 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Main.cs0000664000175000017500000001605212474706675016143 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; using System.Runtime.InteropServices; namespace Pinta { class MainClass { [STAThread] 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; bool show_help = false; bool show_version = false; var p = new OptionSet () { { "h|help", Catalog.GetString("Show this message and exit."), v => show_help = v != null }, { "v|version", Catalog.GetString("Display the application version."), v => show_version = v != null }, { "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.WriteLine (e.Message); ShowHelp (p); return; } if (show_version) { Console.WriteLine (PintaCore.ApplicationVersion); return; } if (show_help) { ShowHelp (p); return; } GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler (ExceptionManager_UnhandledException); if (SystemManager.GetOperatingSystem () == OS.Windows) { SetWindowsGtkPath (); } Application.Init (); new MainWindow (); if (threads != -1) Pinta.Core.PintaCore.System.RenderThreads = threads; if (SystemManager.GetOperatingSystem () == OS.Mac) { RegisterForAppleEvents (); } OpenFilesFromCommandLine (extra); Application.Run (); } private static void ShowHelp (OptionSet p) { Console.WriteLine (Catalog.GetString ("Usage: pinta [files]")); Console.WriteLine (); Console.WriteLine (Catalog.GetString ("Options: ")); p.WriteOptionDescriptions (Console.Out); } 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), new Cairo.Color (1, 1, 1)); } } private static void ExceptionManager_UnhandledException (GLib.UnhandledExceptionArgs args) { Exception ex = (Exception)args.ExceptionObject; PintaCore.Chrome.ShowErrorDialog (PintaCore.Chrome.MainWindow, string.Format ("{0}:\n{1}", "Unhandled exception", ex.Message), ex.ToString ()); } /// /// Registers for OSX-specific events, like quitting from the dock. /// static void RegisterForAppleEvents () { MacInterop.ApplicationEvents.Quit += (sender, e) => { GLib.Timeout.Add (10, delegate { PintaCore.Actions.File.Exit.Activate (); return false; }); e.Handled = true; }; MacInterop.ApplicationEvents.Reopen += (sender, e) => { var window = PintaCore.Chrome.MainWindow; window.Deiconify (); window.Hide (); window.Show (); window.Present (); e.Handled = true; }; MacInterop.ApplicationEvents.OpenDocuments += (sender, e) => { if (e.Documents != null) { GLib.Timeout.Add (10, delegate { foreach (string filename in e.Documents.Keys) { System.Console.Error.WriteLine ("Opening: {0}", filename); PintaCore.Workspace.OpenFile (filename); } return false; }); } e.Handled = true; }; } [DllImport ("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] [return: MarshalAs (UnmanagedType.Bool)] static extern bool SetDllDirectory (string lpPathName); /// /// Explicitly add GTK+ to the search path. /// From MonoDevelop: https://bugzilla.xamarin.com/show_bug.cgi?id=10558 /// private static void SetWindowsGtkPath () { string location = null; using (var key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey (@"SOFTWARE\Xamarin\GtkSharp\InstallFolder")) { if (key != null) { location = key.GetValue (null) as string; } } if (location == null || !File.Exists (Path.Combine (location, "bin", "libgtk-win32-2.0-0.dll"))) { System.Console.Error.WriteLine ("Did not find registered GTK# installation"); return; } var path = Path.Combine (location, @"bin"); try { if (SetDllDirectory (path)) { return; } } catch (EntryPointNotFoundException) { } System.Console.Error.WriteLine ("Unable to set GTK# dll directory"); } } } pinta-1.6/Pinta/Pinta.ico0000664000175000017500000003535612474706675016507 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.6/Pinta/gtk-gui/0000775000175000017500000000000012474706675016273 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/gtk-gui/Pinta.ResizeImageDialog.cs0000664000175000017500000002662212474706675023230 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.6/Pinta/gtk-gui/gui.stetic0000664000175000017500000012434412474706675020304 0ustar00cameroncameron00000000000000 .. 2.12 Resize Image CenterOnParent True 300 200 2 False 2 6 12 6 True By percentage: True 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 pinta-1.6/Pinta/gtk-gui/generated.cs0000664000175000017500000001040512474706675020560 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.6/Pinta/gtk-gui/Pinta.ResizeCanvasDialog.cs0000664000175000017500000006410712474706675023421 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.6/Pinta/MainWindow.cs0000664000175000017500000004020612474706675017331 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; using Pinta.MacInterop; namespace Pinta { public class MainWindow { WindowShell window_shell; ScrolledWindow sw; DockFrame dock; Menu show_pad; CanvasPad canvas_pad; public MainWindow () { // Build our window CreateWindow (); // Initialize interface things window_shell.AddAccelGroup (PintaCore.Actions.AccelGroup); new ActionHandlers (); PintaCore.Chrome.InitializeProgessDialog (new ProgressDialog ()); PintaCore.Chrome.InitializeErrorDialogHandler ((parent, message, details) => { System.Console.Error.WriteLine ("Pinta: {0}", details); ErrorDialog errorDialog = new ErrorDialog (parent); try { errorDialog.SetMessage (message); errorDialog.AddDetails (details); errorDialog.Run (); } finally { errorDialog.Destroy (); } } ); PintaCore.Initialize (); // Initialize extensions AddinManager.Initialize (); AddinManager.Registry.Update (); AddinSetupService setupService = new AddinSetupService (AddinManager.Registry); if (!setupService.AreRepositoriesRegistered ()) setupService.RegisterRepositories (true); //Look out for any changes in extensions AddinManager.AddExtensionNodeHandler (typeof (IExtension), OnExtensionChanged); // 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; window_shell.KeyPressEvent += MainWindow_KeyPressEvent; window_shell.KeyReleaseEvent += MainWindow_KeyReleaseEvent; // 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; } [GLib.ConnectBefore] private void MainWindow_KeyPressEvent (object o, KeyPressEventArgs e) { // Give the widget that has focus a first shot at handling the event. // Otherwise, key presses may be intercepted by shortcuts for menu items. if (SendToFocusWidget (e, e.Event)) return; // Give the Canvas (and by extension the tools) // first shot at handling the event if // the mouse pointer is on the canvas if (IsMouseOnCanvas() || canvas_pad.Canvas.HasFocus) { canvas_pad.Canvas.DoKeyPressEvent (o, e); } } [GLib.ConnectBefore] private void MainWindow_KeyReleaseEvent (object o, KeyReleaseEventArgs e) { if (SendToFocusWidget (e, e.Event)) return; // Give the Canvas (and by extension the tools) // first shot at handling the event if // the mouse pointer is on the canvas if (IsMouseOnCanvas() || canvas_pad.Canvas.HasFocus) { canvas_pad.Canvas.DoKeyReleaseEvent (o, e); } } private bool SendToFocusWidget (GLib.SignalArgs args, Gdk.EventKey e) { var widget = window_shell.Focus; if (widget != null && widget.ProcessEvent (e)) { args.RetVal = true; return true; } return false; } // Check if the mouse pointer is on the canvas private bool IsMouseOnCanvas() { int x = 0; int y = 0; // Get the position of the mouse pointer relative // to canvas scrolled window top-left corner sw.GetPointer (out x, out y); // Check if the pointer is on the canvas return (x > 0) && (x < sw.Allocation.Width) && (y > 0) && (y < sw.Allocation.Height); } // Called when an extension node is added or removed private void OnExtensionChanged (object s, ExtensionNodeEventArgs args) { IExtension extension = (IExtension) args.ExtensionObject; if (args.Change == ExtensionChange.Add) extension.Initialize (); else extension.Uninitialize (); } #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 ()); main_menu.Append (new Gtk.Action ("addins", Catalog.GetString ("A_dd-ins")).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 = (MenuItem)PintaCore.Actions.File.Exit.CreateMenuItem (); //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 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); // Open Images pad var open_images_pad = new OpenImagesPad (); open_images_pad.Initialize (dock, show_pad); // History pad var history_pad = new HistoryPad (); history_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.Pixels: PintaCore.Actions.View.Pixels.Activate (); break; 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.Selection.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 = ViewActions.ToPercent (PintaCore.Workspace.Scale); PintaCore.Actions.View.ResumeZoomUpdate (); } PintaCore.Actions.View.ZoomToWindowActivated = true; } private void ActiveDocumentChanged (object sender, EventArgs e) { if (PintaCore.Workspace.HasOpenDocuments) { PintaCore.Actions.View.SuspendZoomUpdate (); (PintaCore.Actions.View.ZoomComboBox.ComboBox as Gtk.ComboBoxEntry).Entry.Text = ViewActions.ToPercent (PintaCore.Workspace.Scale); PintaCore.Actions.View.ResumeZoomUpdate (); PintaCore.Workspace.OnCanvasSizeChanged (); } PintaCore.Workspace.Invalidate (); } #endregion } } pinta-1.6/Pinta/Extensions/0000775000175000017500000000000012474706675017063 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Extensions/GtkExtensions.cs0000664000175000017500000000364612474706675022230 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.6/Pinta/MacInterop/0000775000175000017500000000000012474706675016765 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/MacInterop/AppleEvent.cs0000664000175000017500000001652712474706675021372 0ustar00cameroncameron00000000000000// // AppleEvent.cs // // Author: // Michael Hutchinson // // 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.Runtime.InteropServices; using System.Collections.Generic; namespace Pinta.MacInterop { internal static class AppleEvent { const string AELib = Carbon.CarbonLib; //FIXME: is "int" correct for size? [DllImport (AELib)] static extern AEDescStatus AECreateDesc (OSType typeCode, IntPtr dataPtr, int dataSize, out AEDesc desc); [DllImport (AELib)] static extern AEDescStatus AECreateDesc (OSType typeCode, byte[] data, int dataSize, out AEDesc desc); [DllImport (AELib)] static extern AEDescStatus AEGetNthPtr (ref AEDesc descList, int index, OSType desiredType, uint keyword, out CarbonEventParameterType actualType, IntPtr buffer, int bufferSize, out int actualSize); [DllImport (AELib)] static extern AEDescStatus AEGetNthPtr (ref AEDesc descList, int index, OSType desiredType, uint keyword, uint zero, IntPtr buffer, int bufferSize, int zero2); [DllImport (AELib)] static extern AEDescStatus AECountItems (ref AEDesc descList, out int count); //return an OSErr [DllImport (AELib)] static extern AEDescStatus AEGetNthPtr (ref AEDesc descList, int index, OSType desiredType, uint keyword, uint zero, out IntPtr outPtr, int bufferSize, int zero2); [DllImport (AELib)] public static extern AEDescStatus AEDisposeDesc (ref AEDesc desc); [DllImport (AELib)] public static extern AEDescStatus AESizeOfNthItem (ref AEDesc descList, int index, ref OSType type, out int size); [DllImport (AELib)] static extern AEDescStatus AEGetDescData (ref AEDesc desc, IntPtr ptr, int maximumSize); [DllImport (AELib)] static extern int AEGetDescDataSize (ref AEDesc desc); [DllImport (AELib)] static extern AEDescStatus AECoerceDesc (ref AEDesc theAEDesc, DescType toType, ref AEDesc result); public static void AECreateDesc (OSType typeCode, byte[] data, out AEDesc result) { CheckReturn (AECreateDesc (typeCode, data, data.Length, out result)); } public static void AECreateDescUtf8 (string value, out AEDesc result) { var type = (OSType)(int)CarbonEventParameterType.UnicodeText; var bytes = System.Text.Encoding.UTF8.GetBytes (value); CheckReturn (AECreateDesc (type, bytes, bytes.Length, out result)); } public static void AECreateDescAscii (string value, out AEDesc result) { var type = (OSType)(int)CarbonEventParameterType.Char; var bytes = System.Text.Encoding.ASCII.GetBytes (value); CheckReturn (AECreateDesc (type, bytes, bytes.Length, out result)); } public static void AECreateDescNull (out AEDesc desc) { CheckReturn (AECreateDesc ((OSType)0, IntPtr.Zero, 0, out desc)); } public static int AECountItems (ref AEDesc descList) { int count; CheckReturn (AECountItems (ref descList, out count)); return count; } public static T AEGetNthPtr (ref AEDesc descList, int index, OSType desiredType) where T : struct { int len = Marshal.SizeOf (typeof (T)); IntPtr bufferPtr = Marshal.AllocHGlobal (len); try { CheckReturn (AEGetNthPtr (ref descList, index, desiredType, 0, 0, bufferPtr, len, 0)); T val = (T)Marshal.PtrToStructure (bufferPtr, typeof (T)); return val; } finally{ Marshal.FreeHGlobal (bufferPtr); } } public static IntPtr AEGetNthPtr (ref AEDesc descList, int index, OSType desiredType) { IntPtr ret; CheckReturn (AEGetNthPtr (ref descList, index, desiredType, 0, 0, out ret, 4, 0)); return ret; } //FIXME: this might not work in some encodings. need to test more. static string GetUtf8StringFromAEPtr (ref AEDesc descList, int index) { int size; var type = (OSType)(int)CarbonEventParameterType.UnicodeText; if (AESizeOfNthItem (ref descList, index, ref type, out size) == AEDescStatus.Ok) { IntPtr buffer = Marshal.AllocHGlobal (size); try { if (AEGetNthPtr (ref descList, index, type, 0, 0, buffer, size, 0) == AEDescStatus.Ok) return Marshal.PtrToStringAuto (buffer, size); } finally { Marshal.FreeHGlobal (buffer); } } return null; } public static string GetStringFromAEDesc (ref AEDesc desc) { int size = AEGetDescDataSize (ref desc); if (size > 0) { IntPtr buffer = Marshal.AllocHGlobal (size); try { if (AEGetDescData (ref desc, buffer, size) == AEDescStatus.Ok) return Marshal.PtrToStringAuto (buffer, size); } finally { Marshal.FreeHGlobal (buffer); } } return null; } public static IList GetUtf8StringListFromAEDesc (ref AEDesc list, bool skipEmpty) { long count = AppleEvent.AECountItems (ref list); var items = new List (); for (int i = 1; i <= count; i++) { string str = AppleEvent.GetUtf8StringFromAEPtr (ref list, i); if (!string.IsNullOrEmpty (str)) items.Add (str); } return items; } public static T[] GetListFromAEDesc (ref AEDesc list, AEDescValueSelector sel, OSType type) where TRef : struct { long count = AppleEvent.AECountItems (ref list); T[] arr = new T[count]; for (int i = 1; i <= count; i++) { TRef r = AppleEvent.AEGetNthPtr (ref list, i, type); arr [i - 1] = sel (ref r); } return arr; } static void CheckReturn (AEDescStatus status) { if (status != AEDescStatus.Ok) throw new Exception ("Failed with code " + status.ToString ()); } } public delegate T AEDescValueSelector (ref TRef desc); [StructLayout(LayoutKind.Sequential, Pack = 2)] public struct AEDesc { public uint descriptorType; public IntPtr dataHandle; } public enum AEDescStatus { Ok = 0, MemoryFull = -108, CoercionFail = -1700, DescRecordNotFound = -1701, WrongDataType = -1703, NotAEDesc = -1704, ReplyNotArrived = -1718, } public enum AESendMode { NoReply = 0x00000001, QueueReply = 0x00000002, WaitReply = 0x00000003, DontReconnect = 0x00000080, WantReceipt = 0x00000200, NeverInteract = 0x00000010, CanInteract = 0x00000020, AlwaysInteract = 0x00000030, CanSwitchLayer = 0x00000040, DontRecord = 0x00001000, DontExecute = 0x00002000, ProcessNonReplyEvents = 0x00008000, } struct DescType { public OSType Value; } }pinta-1.6/Pinta/MacInterop/Carbon.cs0000664000175000017500000004251412474706675020526 0ustar00cameroncameron00000000000000// // Carbon.cs // // Author: // Michael Hutchinson // Geoff Norton // // 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 System.Runtime.InteropServices; using System.Collections.Generic; using System.Diagnostics; namespace Pinta.MacInterop { internal delegate CarbonEventHandlerStatus EventDelegate (IntPtr callRef, IntPtr eventRef, IntPtr userData); internal delegate CarbonEventHandlerStatus AEHandlerDelegate (IntPtr inEvnt, IntPtr outEvt, uint refConst); internal static class Carbon { public const string CarbonLib = "/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon"; [DllImport (CarbonLib)] static extern int Gestalt (int selector, out int result); public static int Gestalt (string selector) { int cc = ConvertCharCode (selector); int result; int ret = Gestalt (cc, out result); CheckReturn (ret); return result; } [DllImport (CarbonLib)] public static extern IntPtr GetApplicationEventTarget (); [DllImport (CarbonLib)] public static extern IntPtr GetControlEventTarget (IntPtr control); [DllImport (CarbonLib)] public static extern IntPtr GetWindowEventTarget (IntPtr window); [DllImport (CarbonLib)] public static extern IntPtr GetMenuEventTarget (IntPtr menu); [DllImport (CarbonLib)] public static extern CarbonEventClass GetEventClass (IntPtr eventref); [DllImport (CarbonLib)] public static extern uint GetEventKind (IntPtr eventref); #region Event handler installation [DllImport (CarbonLib)] static extern EventStatus InstallEventHandler (IntPtr target, EventDelegate handler, uint count, CarbonEventTypeSpec [] types, IntPtr user_data, out IntPtr handlerRef); [DllImport (CarbonLib)] public static extern EventStatus RemoveEventHandler (IntPtr handlerRef); public static IntPtr InstallEventHandler (IntPtr target, EventDelegate handler, CarbonEventTypeSpec [] types) { IntPtr handlerRef; CheckReturn (InstallEventHandler (target, handler, (uint)types.Length, types, IntPtr.Zero, out handlerRef)); return handlerRef; } public static IntPtr InstallEventHandler (IntPtr target, EventDelegate handler, CarbonEventTypeSpec type) { return InstallEventHandler (target, handler, new CarbonEventTypeSpec[] { type }); } public static IntPtr InstallApplicationEventHandler (EventDelegate handler, CarbonEventTypeSpec [] types) { return InstallEventHandler (GetApplicationEventTarget (), handler, types); } public static IntPtr InstallApplicationEventHandler (EventDelegate handler, CarbonEventTypeSpec type) { return InstallEventHandler (GetApplicationEventTarget (), handler, new CarbonEventTypeSpec[] { type }); } #endregion #region Event parameter extraction [DllImport (CarbonLib)] public static extern EventStatus GetEventParameter (IntPtr eventRef, CarbonEventParameterName name, CarbonEventParameterType desiredType, out CarbonEventParameterType actualType, uint size, ref uint outSize, ref IntPtr outPtr); public static IntPtr GetEventParameter (IntPtr eventRef, CarbonEventParameterName name, CarbonEventParameterType desiredType) { CarbonEventParameterType actualType; uint outSize = 0; IntPtr val = IntPtr.Zero; CheckReturn (GetEventParameter (eventRef, name, desiredType, out actualType, (uint)IntPtr.Size, ref outSize, ref val)); return val; } [DllImport (CarbonLib)] static extern EventStatus GetEventParameter (IntPtr eventRef, CarbonEventParameterName name, CarbonEventParameterType desiredType, out CarbonEventParameterType actualType, uint size, ref uint outSize, IntPtr dataBuffer); [DllImport (CarbonLib)] static extern EventStatus GetEventParameter (IntPtr eventRef, CarbonEventParameterName name, CarbonEventParameterType desiredType, uint zero, uint size, uint zero2, IntPtr dataBuffer); public static T GetEventParameter (IntPtr eventRef, CarbonEventParameterName name, CarbonEventParameterType desiredType) where T : struct { int len = Marshal.SizeOf (typeof (T)); IntPtr bufferPtr = Marshal.AllocHGlobal (len); CheckReturn (GetEventParameter (eventRef, name, desiredType, 0, (uint)len, 0, bufferPtr)); T val = (T)Marshal.PtrToStructure (bufferPtr, typeof (T)); Marshal.FreeHGlobal (bufferPtr); return val; } #endregion #region Sending events [DllImport (CarbonLib)] static extern EventStatus SendEventToEventTarget (IntPtr eventRef, IntPtr eventTarget); [DllImport (CarbonLib)] static extern EventStatus CreateEvent (IntPtr allocator, CarbonEventClass classID, uint kind, double eventTime, CarbonEventAttributes flags, out IntPtr eventHandle); [DllImport (CarbonLib)] static extern void ReleaseEvent (IntPtr eventHandle); static EventStatus SendApplicationEvent (CarbonEventClass classID, uint kind, CarbonEventAttributes flags) { IntPtr eventHandle; EventStatus s = CreateEvent (IntPtr.Zero, classID, kind, 0, flags, out eventHandle); if (s != EventStatus.Ok) return s; s = SendEventToEventTarget (eventHandle, GetApplicationEventTarget ()); ReleaseEvent (eventHandle); return s; } [DllImport (CarbonLib)] public static extern CarbonEventHandlerStatus ProcessHICommand (ref CarbonHICommand command); #endregion #region Error checking public static void CheckReturn (EventStatus status) { int intStatus = (int) status; if (intStatus < 0) throw new EventStatusException (status); } public static void CheckReturn (int osErr) { if (osErr != 0) { string s = GetMacOSStatusCommentString (osErr); throw new SystemException ("Unexpected OS error code " + osErr + ": " + s); } } [DllImport (CarbonLib)] static extern string GetMacOSStatusCommentString (int osErr); #endregion #region Char code conversion internal static int ConvertCharCode (string fourcc) { Debug.Assert (fourcc != null); Debug.Assert (fourcc.Length == 4); return (fourcc[3]) | (fourcc[2] << 8) | (fourcc[1] << 16) | (fourcc[0] << 24); } internal static string UnConvertCharCode (int i) { return new string (new char[] { (char)(i >> 24), (char)(0xFF & (i >> 16)), (char)(0xFF & (i >> 8)), (char)(0xFF & i), }); } #endregion #region Internal Mac API for setting process name [DllImport (CarbonLib)] static extern int GetCurrentProcess (out ProcessSerialNumber psn); [DllImport (CarbonLib)] static extern int CPSSetProcessName (ref ProcessSerialNumber psn, string name); public static void SetProcessName (string name) { try { ProcessSerialNumber psn; if (GetCurrentProcess (out psn) == 0) CPSSetProcessName (ref psn, name); } catch {} //EntryPointNotFoundException? } struct ProcessSerialNumber { #pragma warning disable 0169 ulong highLongOfPSN; ulong lowLongOfPSN; #pragma warning restore 0169 } #endregion public static Dictionary GetFileListFromEventRef (IntPtr eventRef) { AEDesc list = GetEventParameter (eventRef, CarbonEventParameterName.DirectObject, CarbonEventParameterType.AEList); try { int line = 0; try { SelectionRange range = GetEventParameter (eventRef, CarbonEventParameterName.AEPosition, CarbonEventParameterType.Char); line = range.lineNum+1; } catch { } var arr = AppleEvent.GetListFromAEDesc (ref list, CoreFoundation.FSRefToString, (OSType)(int)CarbonEventParameterType.FSRef); var files = new Dictionary (); foreach (var s in arr) { if (!string.IsNullOrEmpty (s)) files[s] = line; } return files; } finally { CheckReturn ((int)AppleEvent.AEDisposeDesc (ref list)); } } public static IList GetUrlListFromEventRef (IntPtr eventRef) { AEDesc list = GetEventParameter (eventRef, CarbonEventParameterName.DirectObject, CarbonEventParameterType.AEList); try { return AppleEvent.GetUtf8StringListFromAEDesc (ref list, true); } finally { Carbon.CheckReturn ((int)AppleEvent.AEDisposeDesc (ref list)); } } } [StructLayout(LayoutKind.Sequential, Pack = 2, Size = 80)] struct FSRef { //this is an 80-char opaque byte array #pragma warning disable 0169 private byte hidden; #pragma warning restore 0169 } [StructLayout(LayoutKind.Sequential)] struct SelectionRange { public short unused1; // 0 (not used) public short lineNum; // line to select (<0 to specify range) public int startRange; // start of selection range (if line < 0) public int endRange; // end of selection range (if line < 0) public int unused2; // 0 (not used) public int theDate; // modification date/time } internal enum CarbonEventHandlerStatus //this is an OSStatus { Handled = 0, NotHandled = -9874, UserCancelled = -128, } internal enum CarbonEventParameterName : uint { DirectObject = 757935405, // '----' AEPosition = 1802530675, // 'kpos' } internal enum CarbonEventParameterType : uint { HICommand = 1751346532, // 'hcmd' MenuRef = 1835363957, // 'menu' WindowRef = 2003398244, // 'wind' Char = 1413830740, // 'TEXT' UInt32 = 1835100014, // 'magn' UnicodeText = 1970567284, // 'utxt' AEList = 1818850164, // 'list' WildCard = 707406378, // '****' FSRef = 1718841958, // 'fsrf' } internal enum CarbonEventClass : uint { Mouse = 1836021107, // 'mous' Keyboard = 1801812322, // 'keyb' TextInput = 1952807028, // 'text' Application = 1634758764, // 'appl' RemoteAppleEvent = 1701867619, //'eppc' //remote apple event? Menu = 1835363957, // 'menu' Window = 2003398244, // 'wind' Control = 1668183148, // 'cntl' Command = 1668113523, // 'cmds' Tablet = 1952607348, // 'tblt' Volume = 1987013664, // 'vol ' Appearance = 1634758765, // 'appm' Service = 1936028278, // 'serv' Toolbar = 1952604530, // 'tbar' ToolbarItem = 1952606580, // 'tbit' Accessibility = 1633903461, // 'acce' HIObject = 1751740258, // 'hiob' AppleEvent = 1634039412, // 'aevt' Internet = 1196773964, // 'GURL' } public enum CarbonCommandID : uint { OK = 1869291552, // 'ok ' Cancel = 1852797985, // 'not!' Quit = 1903520116, // 'quit' Undo = 1970168943, // 'undo' Redo = 1919247471, // 'redo' Cut = 1668641824, // 'cut ' Copy = 1668247673, // 'copy' Paste = 1885434740, // 'past' Clear = 1668048225, // 'clea', SelectAll = 1935764588, // 'sall', Preferences = 1886545254, //'pref' About = 1633841013, // 'abou' New = 1852143392, // 'new ', Open = 1869636974, // 'open' Close = 1668050803, // 'clos' Save = 1935767141, // 'save', SaveAs = 1937138035, // 'svas' Revert = 1920365172, // 'rvrt' Print = 1886547572, // 'prnt' PageSetup = 1885431653, // 'page', AppHelp = 1634233456, //'ahlp' //menu manager handles these automatically Hide = 1751737445, // 'hide' HideOthers = 1751737455, // 'hido' ShowAll = 1936220524, // 'shal' ZoomWindow = 2054123373, // 'zoom' MinimizeWindow = 1835626089, // 'mini' MinimizeAll = 1835626081, // 'mina' MaximizeAll = 1835104353, // 'maxa' ArrangeInFront = 1718775412, // 'frnt' BringAllToFront = 1650881140, // 'bfrt' SelectWindow = 1937205614, // 'swin' RotateWindowsForward = 1919906935, // 'rotw' RotateWindowsBackward = 1919906914, // 'rotb' RotateFloatingWindowsForward = 1920231031, // 'rtfw' RotateFloatingWindowsBackward = 1920231010, // 'rtfb' //created automatically -- used for inserting before/after the default window list WindowListSeparator = 2003592310, // 'wldv' WindowListTerminator = 2003596148, // 'wlst' } internal enum CarbonEventCommand : uint { Process = 1, UpdateStatus = 2, } internal enum CarbonEventMenu : uint { BeginTracking = 1, EndTracking = 2, ChangeTrackingMode = 3, Opening = 4, Closed = 5, TargetItem = 6, MatchKey = 7, } internal enum CarbonEventAttributes : uint { None = 0, UserEvent = (1 << 0), Monitored= 1 << 3, } internal enum CarbonEventApple { OpenApplication = 1868656752, // 'oapp' ReopenApplication = 1918988400, //'rapp' OpenDocuments = 1868853091, // 'odoc' PrintDocuments = 188563030, // 'pdoc' OpenContents = 1868787566, // 'ocon' QuitApplication = 1903520116, // 'quit' ShowPreferences = 1886545254, // 'pref' ApplicationDied = 1868720500, // 'obit' GetUrl = 1196773964, // 'GURL' } [StructLayout(LayoutKind.Sequential, Pack = 2)] struct CarbonEventTypeSpec { public CarbonEventClass EventClass; public uint EventKind; public CarbonEventTypeSpec (CarbonEventClass eventClass, UInt32 eventKind) { this.EventClass = eventClass; this.EventKind = eventKind; } public CarbonEventTypeSpec (CarbonEventMenu kind) : this (CarbonEventClass.Menu, (uint) kind) { } public CarbonEventTypeSpec (CarbonEventCommand kind) : this (CarbonEventClass.Command, (uint) kind) { } public CarbonEventTypeSpec (CarbonEventApple kind) : this (CarbonEventClass.AppleEvent, (uint) kind) { } public static implicit operator CarbonEventTypeSpec (CarbonEventMenu kind) { return new CarbonEventTypeSpec (kind); } public static implicit operator CarbonEventTypeSpec (CarbonEventCommand kind) { return new CarbonEventTypeSpec (kind); } public static implicit operator CarbonEventTypeSpec (CarbonEventApple kind) { return new CarbonEventTypeSpec (kind); } } class EventStatusException : SystemException { public EventStatusException (EventStatus status) { StatusCode = status; } public EventStatus StatusCode { get; private set; } } enum EventStatus // this is an OSStatus { Ok = 0, //event manager EventAlreadyPostedErr = -9860, EventTargetBusyErr = -9861, EventClassInvalidErr = -9862, EventClassIncorrectErr = -9864, EventHandlerAlreadyInstalledErr = -9866, EventInternalErr = -9868, EventKindIncorrectErr = -9869, EventParameterNotFoundErr = -9870, EventNotHandledErr = -9874, EventLoopTimedOutErr = -9875, EventLoopQuitErr = -9876, EventNotInQueueErr = -9877, EventHotKeyExistsErr = -9878, EventHotKeyInvalidErr = -9879, } [StructLayout(LayoutKind.Explicit)] struct CarbonHICommand //technically HICommandExtended, but they're compatible { [FieldOffset(0)] CarbonHICommandAttributes attributes; [FieldOffset(4)] uint commandID; [FieldOffset(8)] IntPtr controlRef; [FieldOffset(8)] IntPtr windowRef; [FieldOffset(8)] HIMenuItem menuItem; public CarbonHICommand (uint commandID, HIMenuItem item) { windowRef = controlRef = IntPtr.Zero; this.commandID = commandID; this.menuItem = item; this.attributes = CarbonHICommandAttributes.FromMenu; } public CarbonHICommandAttributes Attributes { get { return attributes; } } public uint CommandID { get { return commandID; } } public IntPtr ControlRef { get { return controlRef; } } public IntPtr WindowRef { get { return windowRef; } } public HIMenuItem MenuItem { get { return menuItem; } } public bool IsFromMenu { get { return attributes == CarbonHICommandAttributes.FromMenu; } } public bool IsFromControl { get { return attributes == CarbonHICommandAttributes.FromControl; } } public bool IsFromWindow { get { return attributes == CarbonHICommandAttributes.FromWindow; } } } [StructLayout(LayoutKind.Sequential, Pack = 2)] struct HIMenuItem { IntPtr menuRef; ushort index; public HIMenuItem (IntPtr menuRef, ushort index) { this.index = index; this.menuRef = menuRef; } public IntPtr MenuRef { get { return menuRef; } } public ushort Index { get { return index; } } } //*NOT* flags enum CarbonHICommandAttributes : uint { FromMenu = 1, FromControl = 1 << 1, FromWindow = 1 << 2, } struct OSType { int value; public int Value { get { return Value; } } public OSType (int value) { this.value = value; } public OSType (string fourcc) { value = Carbon.ConvertCharCode (fourcc); } public static explicit operator OSType (string fourcc) { return new OSType (fourcc); } public static implicit operator int (OSType o) { return o.value; } public static implicit operator OSType (int i) { return new OSType (i); } } } pinta-1.6/Pinta/MacInterop/IgeMacMenu.cs0000664000175000017500000000650412474706675021273 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.MacInterop { 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 IgeMacMenuGroup AddAppMenuGroup () { IntPtr raw_ret = ige_mac_menu_add_app_menu_group (); IgeMacMenuGroup ret = raw_ret == IntPtr.Zero ? null : (IgeMacMenuGroup)GLib.Opaque.GetOpaque (raw_ret, typeof(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.6/Pinta/MacInterop/CoreFoundation.cs0000664000175000017500000001456512474706675022246 0ustar00cameroncameron00000000000000// // CoreFoundation.cs // // Author: // Michael Hutchinson // Miguel de Icaza // // 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 System.Runtime.InteropServices; namespace Pinta.MacInterop { internal static class CoreFoundation { const string CFLib = "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; const string LSLib = "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices"; [DllImport (CFLib)] static extern IntPtr CFStringCreateWithCString (IntPtr alloc, string str, int encoding); public static IntPtr CreateString (string s) { // The magic value is "kCFStringENcodingUTF8" return CFStringCreateWithCString (IntPtr.Zero, s, 0x08000100); } [DllImport (CFLib, EntryPoint="CFRelease")] public static extern void Release (IntPtr cfRef); struct CFRange { public int Location, Length; public CFRange (int l, int len) { Location = l; Length = len; } } [DllImport (CFLib, CharSet=CharSet.Unicode)] extern static int CFStringGetLength (IntPtr handle); [DllImport (CFLib, CharSet=CharSet.Unicode)] extern static IntPtr CFStringGetCharactersPtr (IntPtr handle); [DllImport (CFLib, CharSet=CharSet.Unicode)] extern static IntPtr CFStringGetCharacters (IntPtr handle, CFRange range, IntPtr buffer); public static string FetchString (IntPtr handle) { if (handle == IntPtr.Zero) return null; string str; int l = CFStringGetLength (handle); IntPtr u = CFStringGetCharactersPtr (handle); IntPtr buffer = IntPtr.Zero; if (u == IntPtr.Zero){ CFRange r = new CFRange (0, l); buffer = Marshal.AllocCoTaskMem (l * 2); CFStringGetCharacters (handle, r, buffer); u = buffer; } unsafe { str = new string ((char *) u, 0, l); } if (buffer != IntPtr.Zero) Marshal.FreeCoTaskMem (buffer); return str; } public static string FSRefToString (ref FSRef fsref) { IntPtr url = IntPtr.Zero; IntPtr str = IntPtr.Zero; try { url = CFURLCreateFromFSRef (IntPtr.Zero, ref fsref); if (url == IntPtr.Zero) return null; str = CFURLCopyFileSystemPath (url, CFUrlPathStyle.Posix); if (str == IntPtr.Zero) return null; return FetchString (str); } finally { if (url != IntPtr.Zero) Release (url); if (str != IntPtr.Zero) Release (str); } } [DllImport (CFLib)] extern static IntPtr CFURLCreateFromFSRef (IntPtr allocator, ref FSRef fsref); [DllImport (CFLib)] extern static IntPtr CFURLCopyFileSystemPath (IntPtr urlRef, CFUrlPathStyle pathStyle); enum CFUrlPathStyle { Posix = 0, Hfs = 1, Windows = 2 }; [DllImport (CFLib)] extern static IntPtr CFURLCreateWithFileSystemPath (IntPtr allocator, IntPtr filePathString, CFUrlPathStyle pathStyle, bool isDirectory); [DllImport (LSLib)] extern static IntPtr LSCopyApplicationURLsForURL (IntPtr urlRef, LSRolesMask roleMask); //CFArrayRef [DllImport (LSLib)] extern static int LSGetApplicationForURL (IntPtr url, LSRolesMask roleMask, IntPtr fsRefZero, ref IntPtr appUrl); [DllImport (CFLib)] extern static int CFArrayGetCount (IntPtr theArray); [DllImport (CFLib)] extern static IntPtr CFArrayGetValueAtIndex (IntPtr theArray, int idx); [Flags] public enum LSRolesMask : uint { None = 0x00000001, Viewer = 0x00000002, Editor = 0x00000004, Shell = 0x00000008, All = 0xFFFFFFFF } static IntPtr CreatePathUrl (string path) { IntPtr str = IntPtr.Zero; IntPtr url = IntPtr.Zero; try { str = CreateString (path); if (str == IntPtr.Zero) throw new Exception ("CreateString failed"); url = CFURLCreateWithFileSystemPath (IntPtr.Zero, str, CFUrlPathStyle.Posix, false); if (url == IntPtr.Zero) throw new Exception ("CFURLCreateWithFileSystemPath failed"); return url; } finally { if (str != IntPtr.Zero) Release (str); } } public static string UrlToPath (IntPtr url) { IntPtr str = IntPtr.Zero; try { str = CFURLCopyFileSystemPath (url, CFUrlPathStyle.Posix); return str == IntPtr.Zero? null : FetchString (str); } finally { if (str != IntPtr.Zero) Release (str); } } public static string GetApplicationUrl (string filePath, LSRolesMask roles) { IntPtr url = IntPtr.Zero; try { url = CreatePathUrl (filePath); IntPtr appUrl = IntPtr.Zero; if (LSGetApplicationForURL (url, roles, IntPtr.Zero, ref appUrl) == 0 && appUrl != IntPtr.Zero) return UrlToPath (appUrl); return null; } finally { if (url != IntPtr.Zero) Release (url); } } public static string[] GetApplicationUrls (string filePath, LSRolesMask roles) { IntPtr url = IntPtr.Zero; IntPtr arr = IntPtr.Zero; try { url = CreatePathUrl (filePath); arr = LSCopyApplicationURLsForURL (url, roles); if (arr == IntPtr.Zero) return new string[0]; int count = CFArrayGetCount (arr); string[] values = new string [count]; for (int i = 0; i < values.Length; i++ ) { var u = CFArrayGetValueAtIndex (arr, i); if (u != IntPtr.Zero) values[i] = UrlToPath (u); } return values; } finally { if (url != IntPtr.Zero) Release (url); if (arr != IntPtr.Zero) Release (arr); } } } } pinta-1.6/Pinta/MacInterop/ApplicationEvents.cs0000664000175000017500000001453212474706675022751 0ustar00cameroncameron00000000000000// // ApplicationEvents.cs // // Author: // Michael Hutchinson // // 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; namespace Pinta.MacInterop { public static class ApplicationEvents { static object lockObj = new object (); #region Quit static EventHandler quit; static IntPtr quitHandlerRef = IntPtr.Zero; public static event EventHandler Quit { add { lock (lockObj) { quit += value; if (quitHandlerRef == IntPtr.Zero) quitHandlerRef = Carbon.InstallApplicationEventHandler (HandleQuit, CarbonEventApple.QuitApplication); } } remove { lock (lockObj) { quit -= value; if (quit == null && quitHandlerRef != IntPtr.Zero) { Carbon.RemoveEventHandler (quitHandlerRef); quitHandlerRef = IntPtr.Zero; } } } } static CarbonEventHandlerStatus HandleQuit (IntPtr callRef, IntPtr eventRef, IntPtr user_data) { var args = new ApplicationQuitEventArgs (); quit (null, args); return args.UserCancelled? CarbonEventHandlerStatus.UserCancelled : args.HandledStatus; } #endregion #region Reopen static EventHandler reopen; static IntPtr reopenHandlerRef = IntPtr.Zero; public static event EventHandler Reopen { add { lock (lockObj) { reopen += value; if (reopenHandlerRef == IntPtr.Zero) reopenHandlerRef = Carbon.InstallApplicationEventHandler (HandleReopen, CarbonEventApple.ReopenApplication); } } remove { lock (lockObj) { reopen -= value; if (reopen == null && reopenHandlerRef != IntPtr.Zero) { Carbon.RemoveEventHandler (reopenHandlerRef); reopenHandlerRef = IntPtr.Zero; } } } } static CarbonEventHandlerStatus HandleReopen (IntPtr callRef, IntPtr eventRef, IntPtr user_data) { var args = new ApplicationEventArgs (); reopen (null, args); return args.HandledStatus; } #endregion #region OpenDocuments static EventHandler openDocuments; static IntPtr openDocumentsHandlerRef = IntPtr.Zero; public static event EventHandler OpenDocuments { add { lock (lockObj) { openDocuments += value; if (openDocumentsHandlerRef == IntPtr.Zero) openDocumentsHandlerRef = Carbon.InstallApplicationEventHandler (HandleOpenDocuments, CarbonEventApple.OpenDocuments); } } remove { lock (lockObj) { openDocuments -= value; if (openDocuments == null && openDocumentsHandlerRef != IntPtr.Zero) { Carbon.RemoveEventHandler (openDocumentsHandlerRef); openDocumentsHandlerRef = IntPtr.Zero; } } } } static CarbonEventHandlerStatus HandleOpenDocuments (IntPtr callRef, IntPtr eventRef, IntPtr user_data) { try { var docs = Carbon.GetFileListFromEventRef (eventRef); var args = new ApplicationDocumentEventArgs (docs); openDocuments (null, args); return args.HandledStatus; } catch (Exception ex) { System.Console.WriteLine (ex); return CarbonEventHandlerStatus.NotHandled; } } #endregion #region OpenUrls static EventHandler openUrls; static IntPtr openUrlsHandlerRef = IntPtr.Zero; public static event EventHandler OpenUrls { add { lock (lockObj) { openUrls += value; if (openUrlsHandlerRef == IntPtr.Zero) openUrlsHandlerRef = Carbon.InstallApplicationEventHandler (HandleOpenUrls, new CarbonEventTypeSpec[] { //For some reason GetUrl doesn't take CarbonEventClass.AppleEvent //need to use GURL, GURL new CarbonEventTypeSpec (CarbonEventClass.Internet, (int)CarbonEventApple.GetUrl) } ); } } remove { lock (lockObj) { openUrls -= value; if (openUrls == null && openUrlsHandlerRef != IntPtr.Zero) { Carbon.RemoveEventHandler (openUrlsHandlerRef); openUrlsHandlerRef = IntPtr.Zero; } } } } static CarbonEventHandlerStatus HandleOpenUrls (IntPtr callRef, IntPtr eventRef, IntPtr user_data) { try { var urls = Carbon.GetUrlListFromEventRef (eventRef); var args = new ApplicationUrlEventArgs (urls); openUrls (null, args); return args.HandledStatus; } catch (Exception ex) { System.Console.WriteLine (ex); return CarbonEventHandlerStatus.NotHandled; } } #endregion } public class ApplicationEventArgs : EventArgs { public bool Handled { get; set; } internal CarbonEventHandlerStatus HandledStatus { get { return Handled? CarbonEventHandlerStatus.Handled : CarbonEventHandlerStatus.NotHandled; } } } public class ApplicationQuitEventArgs : ApplicationEventArgs { public bool UserCancelled { get; set; } } public class ApplicationDocumentEventArgs : ApplicationEventArgs { public ApplicationDocumentEventArgs (IDictionary documents) { this.Documents = documents; } public IDictionary Documents { get; private set; } } public class ApplicationUrlEventArgs : ApplicationEventArgs { public ApplicationUrlEventArgs (IList urls) { this.Urls = urls; } public IList Urls { get; private set; } } } pinta-1.6/Pinta/Pads/0000775000175000017500000000000012474706675015613 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Pads/ColorPalettePad.cs0000664000175000017500000000434012474706675021165 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.6/Pinta/Pads/CanvasPad.cs0000664000175000017500000001306712474706675020011 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 ("Canvas"); documentDockItem.Content = mainTable; documentDockItem.Icon = PintaCore.Resources.GetIcon ("Menu.Effects.Artistic.OilPainting.png"); //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.6/Pinta/Pads/HistoryPad.cs0000664000175000017500000000450612474706675020235 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.6/Pinta/Pads/ToolBoxPad.cs0000664000175000017500000000420612474706675020157 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.6/Pinta/Pads/LayersPad.cs0000664000175000017500000000525612474706675020036 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.6/Pinta/Pads/IDockPad.cs0000664000175000017500000000021012474706675017551 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pinta { interface IDockPad { } } pinta-1.6/Pinta/Pads/OpenImagesPad.cs0000664000175000017500000000416412474706675020623 0ustar00cameroncameron00000000000000// // OpenImagesPad.cs // // Author: // Cameron White // // Copyright (c) 2011 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 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) { DockItem open_images_item = workspace.AddItem ("Images"); open_images_item.DefaultLocation = "Layers/Bottom"; open_images_item.Label = Catalog.GetString ("Images"); open_images_item.Content = new OpenImagesListWidget (); open_images_item.Icon = PintaCore.Resources.GetIcon ("Menu.Effects.Default.png"); ToggleAction show_open_images = padMenu.AppendToggleAction ("Images", Catalog.GetString ("Images"), 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.6/Pinta/.gitignore0000664000175000017500000000003312474706675016710 0ustar00cameroncameron00000000000000/bin/ /obj/ *.user *.pkgxmlpinta-1.6/Pinta/Dialogs/0000775000175000017500000000000012474706675016306 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Dialogs/NewImageDialog.cs0000664000175000017500000005032312474706675021454 0ustar00cameroncameron00000000000000// // NewImageDialog.cs // // Author: // Jonathan Pobst // // Copyright (c) 2015 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; using Mono.Unix; using Pinta.Core; namespace Pinta { public class NewImageDialog : Dialog { /// /// Configures and builds a NewImageDialog object. /// /// Initial value of the width entry. /// Initial value of the height entry. /// Indicates if there is an image on the clipboard (and the size parameters represent the clipboard image size). private bool allow_background_color; private bool has_clipboard; private bool suppress_events; private Gdk.Size clipboard_size; private List preset_sizes; private PreviewArea preview; private ComboBox preset_combo; private Entry width_entry; private Entry height_entry; private RadioButton portrait_radio; private RadioButton landscape_radio; private RadioButton white_bg_radio; private RadioButton secondary_bg_radio; private RadioButton trans_bg_radio; public NewImageDialog (int initialWidth, int initialHeight, BackgroundType initial_bg_type, bool isClipboardSize) : base (string.Empty, PintaCore.Chrome.MainWindow, DialogFlags.Modal, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Ok, Gtk.ResponseType.Ok) { Title = Catalog.GetString ("New Image"); WindowPosition = Gtk.WindowPosition.CenterOnParent; // We don't show the background color option if it's the same as "White" allow_background_color = PintaCore.Palette.SecondaryColor.ToColorBgra () != ColorBgra.White; BorderWidth = 4; VBox.Spacing = 4; Resizable = false; DefaultResponse = ResponseType.Ok; Icon = PintaCore.Resources.GetIcon (Stock.New, 16); AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; has_clipboard = isClipboardSize; clipboard_size = new Gdk.Size (initialWidth, initialHeight); InitializePresets (); BuildDialog (); if (initial_bg_type == BackgroundType.SecondaryColor && allow_background_color) secondary_bg_radio.Active = true; else if (initial_bg_type == BackgroundType.Transparent) trans_bg_radio.Active = true; else white_bg_radio.Active = true; width_entry.Text = initialWidth.ToString (); height_entry.Text = initialHeight.ToString (); width_entry.GrabFocus (); width_entry.SelectRegion (0, width_entry.Text.Length); WireUpEvents (); UpdateOrientation (); UpdatePresetSelection (); preview.Update (NewImageSize, NewImageBackground); } public int NewImageWidth { get { return int.Parse (width_entry.Text); } } public int NewImageHeight { get { return int.Parse (height_entry.Text); } } public Gdk.Size NewImageSize { get { return new Gdk.Size (NewImageWidth, NewImageHeight); } } public enum BackgroundType { White, Transparent, SecondaryColor } public BackgroundType NewImageBackgroundType { get { if (white_bg_radio.Active) return BackgroundType.White; else if (trans_bg_radio.Active) return BackgroundType.Transparent; else return BackgroundType.SecondaryColor; } } public Cairo.Color NewImageBackground { get { switch (NewImageBackgroundType) { case BackgroundType.White: return new Cairo.Color (1, 1, 1); case BackgroundType.Transparent: return new Cairo.Color (1, 1, 1, 0); case BackgroundType.SecondaryColor: default: return PintaCore.Palette.SecondaryColor; } } } private bool IsValidSize { get { int width = 0; int height = 0; if (!int.TryParse (width_entry.Text, out width)) return false; if (!int.TryParse (height_entry.Text, out height)) return false; return width > 0 && height > 0; } } private Gdk.Size SelectedPresetSize { get { if (preset_combo.ActiveText == Catalog.GetString ("Clipboard") || preset_combo.ActiveText == Catalog.GetString ("Custom")) return Gdk.Size.Empty; var text_parts = preset_combo.ActiveText.Split (' '); var width = int.Parse (text_parts[0]); var height = int.Parse (text_parts[2]); return new Gdk.Size (width, height); } } private void InitializePresets () { // Some arbitrary presets preset_sizes = new List (); preset_sizes.Add (new Gdk.Size (640, 480)); preset_sizes.Add (new Gdk.Size (800, 600)); preset_sizes.Add (new Gdk.Size (1024, 768)); preset_sizes.Add (new Gdk.Size (1600, 1200)); } private void BuildDialog () { // Layout table for preset, width, and height var layout_table = new Table (3, 2, false); layout_table.RowSpacing = 5; layout_table.ColumnSpacing = 6; // Preset Combo var size_label = new Label (Catalog.GetString ("Preset:")); size_label.SetAlignment (1f, .5f); var preset_entries = new List (); if (has_clipboard) preset_entries.Add (Catalog.GetString ("Clipboard")); preset_entries.Add (Catalog.GetString ("Custom")); preset_entries.AddRange (preset_sizes.Select (p => string.Format ("{0} x {1}", p.Width, p.Height))); preset_combo = new ComboBox (preset_entries.ToArray ()); preset_combo.Active = 0; layout_table.Attach (size_label, 0, 1, 0, 1, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); layout_table.Attach (preset_combo, 1, 2, 0, 1, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); // Width Entry var width_label = new Label (Catalog.GetString ("Width:")); width_label.SetAlignment (1f, .5f); width_entry = new Entry (); width_entry.WidthRequest = 50; width_entry.ActivatesDefault = true; var width_units = new Label (Catalog.GetString ("pixels")); var width_hbox = new HBox (); width_hbox.PackStart (width_entry, false, false, 0); width_hbox.PackStart (width_units, false, false, 5); layout_table.Attach (width_label, 0, 1, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); layout_table.Attach (width_hbox, 1, 2, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); // Height Entry var height_label = new Label (Catalog.GetString ("Height:")); height_label.SetAlignment (1f, .5f); height_entry = new Entry (); height_entry.WidthRequest = 50; height_entry.ActivatesDefault = true; var height_units = new Label (Catalog.GetString ("pixels")); var height_hbox = new HBox (); height_hbox.PackStart (height_entry, false, false, 0); height_hbox.PackStart (height_units, false, false, 5); layout_table.Attach (height_label, 0, 1, 2, 3, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); layout_table.Attach (height_hbox, 1, 2, 2, 3, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0); // Orientation Radio options var orientation_label = new Label (Catalog.GetString ("Orientation:")); orientation_label.SetAlignment (0f, .5f); portrait_radio = new RadioButton (Catalog.GetString ("Portrait")); var portrait_image = new Image (PintaCore.Resources.GetIcon (Stock.OrientationPortrait, 16)); var portrait_hbox = new HBox (); portrait_hbox.PackStart (portrait_image, false, false, 7); portrait_hbox.PackStart (portrait_radio, false, false, 0); landscape_radio = new RadioButton (portrait_radio, Catalog.GetString ("Landscape")); var landscape_image = new Image (PintaCore.Resources.GetIcon (Stock.OrientationLandscape, 16)); var landscape_hbox = new HBox (); landscape_hbox.PackStart (landscape_image, false, false, 7); landscape_hbox.PackStart (landscape_radio, false, false, 0); // Background Color options var background_label = new Label (Catalog.GetString ("Background:")); background_label.SetAlignment (0f, .5f); white_bg_radio = new RadioButton (Catalog.GetString ("White")); var image_white = new Image (GdkExtensions.CreateColorSwatch (16, new Gdk.Color (255, 255, 255))); var hbox_white = new HBox (); hbox_white.PackStart (image_white, false, false, 7); hbox_white.PackStart (white_bg_radio, false, false, 0); secondary_bg_radio = new RadioButton (white_bg_radio, Catalog.GetString ("Background Color")); var image_bg = new Image (GdkExtensions.CreateColorSwatch (16, PintaCore.Palette.SecondaryColor.ToGdkColor ())); var hbox_bg = new HBox (); hbox_bg.PackStart (image_bg, false, false, 7); hbox_bg.PackStart (secondary_bg_radio, false, false, 0); trans_bg_radio = new RadioButton (secondary_bg_radio, Catalog.GetString ("Transparent")); var image_trans = new Image (GdkExtensions.CreateTransparentColorSwatch (true)); var hbox_trans = new HBox (); hbox_trans.PackStart (image_trans, false, false, 7); hbox_trans.PackStart (trans_bg_radio, false, false, 0); // Put all the options together var options_vbox = new VBox (); options_vbox.PackStart (layout_table, false, false, 3); options_vbox.PackStart (orientation_label, false, false, 4); options_vbox.PackStart (portrait_hbox, false, false, 0); options_vbox.PackStart (landscape_hbox, false, false, 0); options_vbox.PackStart (background_label, false, false, 4); options_vbox.PackStart (hbox_white, false, false, 0); if (allow_background_color) options_vbox.PackStart (hbox_bg, false, false, 0); options_vbox.PackStart (hbox_trans, false, false, 0); // Layout the preview + the options preview = new PreviewArea (); var main_hbox = new HBox (false, 10); main_hbox.PackStart (preview, true, true, 0); main_hbox.PackStart (options_vbox, false, false, 0); VBox.Add (main_hbox); ShowAll (); } private void WireUpEvents () { // Handle preset combo changes preset_combo.Changed += (o, e) => { var new_size = IsValidSize ? NewImageSize : Gdk.Size.Empty; if (has_clipboard && preset_combo.ActiveText == Catalog.GetString ("Clipboard")) new_size = clipboard_size; else if (preset_combo.ActiveText == Catalog.GetString ("Custom")) return; else new_size = SelectedPresetSize; suppress_events = true; width_entry.Text = new_size.Width.ToString (); height_entry.Text = new_size.Height.ToString (); suppress_events = false; if (!IsValidSize) return; UpdateOrientation (); preview.Update (NewImageSize); }; // Handle width/height entry changes width_entry.Changed += (o, e) => { if (suppress_events) return; UpdateOkButton (); if (!IsValidSize) return; if (NewImageSize != SelectedPresetSize) preset_combo.Active = has_clipboard ? 1 : 0; UpdateOrientation (); UpdatePresetSelection (); preview.Update (NewImageSize); }; height_entry.Changed += (o, e) => { if (suppress_events) return; UpdateOkButton (); if (!IsValidSize) return; if (NewImageSize != SelectedPresetSize) preset_combo.Active = has_clipboard ? 1 : 0; UpdateOrientation (); UpdatePresetSelection (); preview.Update (NewImageSize); }; // Handle orientation changes portrait_radio.Toggled += (o, e) => { if (portrait_radio.Active && IsValidSize && NewImageWidth > NewImageHeight) { var temp = NewImageWidth; width_entry.Text = height_entry.Text; height_entry.Text = temp.ToString (); preview.Update (NewImageSize); } }; landscape_radio.Toggled += (o, e) => { if (landscape_radio.Active && IsValidSize && NewImageWidth < NewImageHeight) { var temp = NewImageWidth; width_entry.Text = height_entry.Text; height_entry.Text = temp.ToString (); preview.Update (NewImageSize); } }; // Handle background color changes white_bg_radio.Toggled += (o, e) => { if (white_bg_radio.Active) preview.Update (new Cairo.Color (1, 1, 1)); }; secondary_bg_radio.Toggled += (o, e) => { if (secondary_bg_radio.Active) preview.Update (PintaCore.Palette.SecondaryColor); }; trans_bg_radio.Toggled += (o, e) => { if (trans_bg_radio.Active ) preview.Update (new Cairo.Color (1, 1, 1, 0)); }; } private void UpdateOrientation () { if (NewImageWidth < NewImageHeight && !portrait_radio.Active) portrait_radio.Activate (); else if (NewImageWidth > NewImageHeight && !landscape_radio.Active) landscape_radio.Activate (); for (var i = 1; i < preset_combo.GetItemCount (); i++) { var text = preset_combo.GetValueAt (i); if (text == Catalog.GetString ("Clipboard") || text == Catalog.GetString ("Custom")) continue; var text_parts = text.Split ('x'); var width = int.Parse (text_parts[0].Trim ()); var height = int.Parse (text_parts[1].Trim ()); var new_size = new Gdk.Size (NewImageWidth < NewImageHeight ? Math.Min (width, height) : Math.Max (width, height), NewImageWidth < NewImageHeight ? Math.Max (width, height) : Math.Min (width, height)); var new_text = string.Format ("{0} x {1}", new_size.Width, new_size.Height); preset_combo.SetValueAt (i, new_text); } } private void UpdateOkButton () { foreach (Widget widget in ActionArea.Children) if (widget is Button && (widget as Button).Label == "gtk-ok") widget.Sensitive = IsValidSize; } private void UpdatePresetSelection () { if (!IsValidSize) return; var text = string.Format ("{0} x {1}", NewImageWidth, NewImageHeight); var index = preset_combo.FindValue (text); if (index >= 0 && preset_combo.Active != index) preset_combo.Active = index; } private class PreviewArea : DrawingArea { private Gdk.Size size; private Cairo.Color color; private int max_size = 175; public PreviewArea () { WidthRequest = 225; } public void Update (Gdk.Size size) { this.size = size; this.QueueDraw (); } public void Update (Cairo.Color color) { this.color = color; this.QueueDraw (); } public void Update (Gdk.Size size, Cairo.Color color) { this.size = size; this.color = color; this.QueueDraw (); } protected override bool OnExposeEvent (Gdk.EventExpose evnt) { base.OnExposeEvent (evnt); if (size == Gdk.Size.Empty) return true; var preview_size = Gdk.Size.Empty; var widget_size = GdkWindow.GetBounds (); // Figure out the dimensions of the preview to draw if (size.Width <= max_size && size.Height <= max_size) preview_size = size; else if (size.Width > size.Height) preview_size = new Gdk.Size (max_size, (int)(max_size / ((float)size.Width / (float)size.Height))); else preview_size = new Gdk.Size ((int)(max_size / ((float)size.Height / (float)size.Width)), max_size); using (var g = Gdk.CairoHelper.Create (GdkWindow)) { var r = new Cairo.Rectangle ((widget_size.Width - preview_size.Width) / 2, (widget_size.Height - preview_size.Height) / 2, preview_size.Width, preview_size.Height); if (color.A == 0) { // Fill with transparent checkerboard pattern using (var grid = GdkExtensions.CreateTransparentColorSwatch (false)) using (var surf = grid.ToSurface ()) using (var pattern = surf.ToTiledPattern ()) g.FillRectangle (r, pattern); } else { // Fill with selected color g.FillRectangle (r, color); } // Draw our canvas drop shadow g.DrawRectangle (new Cairo.Rectangle (r.X - 1, r.Y - 1, r.Width + 2, r.Height + 2), new Cairo.Color (.5, .5, .5), 1); g.DrawRectangle (new Cairo.Rectangle (r.X - 2, r.Y - 2, r.Width + 4, r.Height + 4), new Cairo.Color (.8, .8, .8), 1); g.DrawRectangle (new Cairo.Rectangle (r.X - 3, r.Y - 3, r.Width + 6, r.Height + 6), new Cairo.Color (.9, .9, .9), 1); } return true; } } } } pinta-1.6/Pinta/Dialogs/VersionInformationTabPage.cs0000664000175000017500000000603012474706675023713 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.6/Pinta/Dialogs/JpegCompressionDialog.cs0000664000175000017500000000435212474706675023070 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, Gtk.Window parent) : base (Catalog.GetString ("JPEG Quality"), parent, 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; DefaultResponse = ResponseType.Ok; 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.6/Pinta/Dialogs/AboutDialog.cs0000664000175000017500000002124112474706675021027 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 = 5; int textTop; int scrollPause; int scrollStart; Gdk.GC backGc; internal uint TimerHandle; string[] authors = new string[] { "Andrew Davis", "Cameron White", "Don McComb", "Jonathan Bergknoff", "Jonathan Pobst", "Marius Ungureanu", "Robert Nordan" }; string[] oldAuthors = new string[] { "Aaron Bockover", "Adam Doppelt", "Adolfo Jayme Barrientos", "Akshara Proddatoori", "Andrew Davis", "Anirudh Sanjeev", "Balló György", "Cameron White", "Ciprian Mustiata", "David Nabraczky", "Don McComb", "Elvis Alistar", "Felix Schmutz", "Greg Lowe", "Hanh Pham", "James Gifford", "Jean-Michel Bea", "Joe Hillenbrand", "John Burak", "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", "Tom Kadwill" }; 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 (400, 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.AppendLine (); 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 (", "); } sb.AppendLine (); 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.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/"); sb.AppendLine (); sb.AppendLine (); sb.AppendLine (); sb.AppendFormat ("{0}\n", Catalog.GetString ("Powered by Mono:")); 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 + 200) 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; 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.6/Pinta/Dialogs/AboutPintaTabPage.cs0000664000175000017500000000453012474706675022131 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; using Pinta.Core; namespace Pinta { internal class AboutPintaTabPage : VBox { public AboutPintaTabPage () { Label label = new Label (); label.Markup = String.Format ( "{0}\n {1}", Catalog.GetString ("Version"), PintaCore.ApplicationVersion); 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-2015 {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.6/Pinta/Dialogs/LayerPropertiesDialog.cs0000664000175000017500000001456012474706675023114 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 System.Collections.Generic; using System.Linq; using Gtk; using Pinta.Core; namespace Pinta { public class LayerPropertiesDialog : Dialog { private LayerProperties initial_properties; private double opacity; private bool hidden; private string name; private BlendMode blendmode; private Entry layerNameEntry; private CheckButton visibilityCheckbox; private SpinButton opacitySpinner; private HScale opacitySlider; private ComboBox blendComboBox; public LayerPropertiesDialog () : base (Mono.Unix.Catalog.GetString ("Layer Properties"), PintaCore.Chrome.MainWindow, DialogFlags.Modal, Stock.Cancel, ResponseType.Cancel, Stock.Ok, ResponseType.Ok) { 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; blendmode = PintaCore.Layers.CurrentLayer.BlendMode; initial_properties = new LayerProperties( name, hidden, opacity, blendmode); layerNameEntry.Text = initial_properties.Name; visibilityCheckbox.Active = !initial_properties.Hidden; opacitySpinner.Value = (int)(initial_properties.Opacity * 100); opacitySlider.Value = (int)(initial_properties.Opacity * 100); var all_blendmodes = UserBlendOps.GetAllBlendModeNames ().ToList (); var index = all_blendmodes.IndexOf (UserBlendOps.GetBlendModeName (blendmode)); blendComboBox.Active = index; layerNameEntry.Changed += OnLayerNameChanged; visibilityCheckbox.Toggled += OnVisibilityToggled; opacitySpinner.ValueChanged += new EventHandler (OnOpacitySpinnerChanged); opacitySlider.ValueChanged += new EventHandler (OnOpacitySliderChanged); blendComboBox.Changed += OnBlendModeChanged; 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 || initial_properties.BlendMode != blendmode; } } public LayerProperties InitialLayerProperties { get { return initial_properties; } } public LayerProperties UpdatedLayerProperties { get { return new LayerProperties (name, hidden, opacity, blendmode); } } #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; } private void OnBlendModeChanged (object sender, EventArgs e) { blendmode = UserBlendOps.GetBlendModeByName (blendComboBox.ActiveText); PintaCore.Layers.CurrentLayer.BlendMode = blendmode; } private void Build () { DefaultWidth = 349; DefaultHeight = 224; BorderWidth = 6; VBox.Spacing = 10; // Layer name var box1 = new HBox (); box1.Spacing = 6; box1.PackStart (new Label (Mono.Unix.Catalog.GetString ("Name:")), false, false, 0); layerNameEntry = new Entry (); box1.PackStart (layerNameEntry); VBox.PackStart (box1, false, false, 0); // Visible checkbox visibilityCheckbox = new CheckButton (Mono.Unix.Catalog.GetString ("Visible")); VBox.PackStart (visibilityCheckbox, false, false, 0); // Horizontal separator VBox.PackStart (new HSeparator (), false, false, 0); // Blend mode var box2 = new HBox (); box2.Spacing = 6; box2.PackStart (new Label (Mono.Unix.Catalog.GetString ("Blend Mode") + ":"), false, false, 0); blendComboBox = new ComboBox (UserBlendOps.GetAllBlendModeNames ().ToArray ()); box2.PackStart (blendComboBox); VBox.PackStart (box2, false, false, 0); // Opacity var box3 = new HBox (); box3.Spacing = 6; box3.PackStart (new Label (Mono.Unix.Catalog.GetString ("Opacity:")), false, false, 0); opacitySpinner = new SpinButton (0, 100, 1); opacitySpinner.Adjustment.PageIncrement = 10; opacitySpinner.ClimbRate = 1; box3.PackStart (opacitySpinner, false, false, 0); opacitySlider = new HScale (0, 100, 1); opacitySlider.Digits = 0; opacitySlider.Adjustment.PageIncrement = 10; box3.PackStart (opacitySlider, true, true, 0); VBox.PackStart (box3, false, false, 0); // Finish up VBox.ShowAll (); AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; DefaultResponse = ResponseType.Ok; } #endregion } } pinta-1.6/Pinta/Dialogs/SpinButtonEntryDialog.cs0000664000175000017500000000412412474706675023105 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.6/Pinta/Dialogs/ResizeImageDialog.cs0000664000175000017500000001020612474706675022160 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 Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta { public partial class ResizeImageDialog : Dialog { private bool value_changing; public ResizeImageDialog () : base (Catalog.GetString ("Resize Image"), PintaCore.Chrome.MainWindow, DialogFlags.Modal) { 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; percentageSpinner.GrabFocus(); } #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.6/Pinta/Dialogs/ProgressDialog.cs0000664000175000017500000000567112474706675021572 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 Gtk; namespace Pinta { public class ProgressDialog : Dialog, IProgressDialog { private Label label; private ProgressBar progress_bar; uint timeout_id; public ProgressDialog () : base (string.Empty, PintaCore.Chrome.MainWindow, DialogFlags.Modal) { WindowPosition = WindowPosition.CenterOnParent; this.Build (); timeout_id = 0; 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.ShowAll (); 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) { if (Canceled != null) Canceled (this, EventArgs.Empty); } private void Build () { VBox.BorderWidth = 2; VBox.Spacing = 6; label = new Label (); VBox.Add (label); progress_bar = new ProgressBar (); VBox.Add (progress_bar); AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); DefaultWidth = 400; DefaultHeight = 114; } } } pinta-1.6/Pinta/Dialogs/ErrorDialog.cs0000664000175000017500000000660412474706675021054 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; using Mono.Unix; namespace Pinta { public partial class ErrorDialog : Gtk.Dialog { private Label description_label; private Expander expander; private TextView details_text; private Button bug_report_button; public ErrorDialog (Window parent) : base("Pinta", parent, DialogFlags.Modal | DialogFlags.DestroyWithParent) { Build (); expander.Activated += (sender, e) => { GLib.Timeout.Add (100, new GLib.TimeoutHandler (UpdateSize)); }; bug_report_button.Clicked += (sender, e) => { PintaCore.Actions.Help.Bugs.Activate (); }; TransientFor = parent; expander.Visible = false; DefaultResponse = ResponseType.Ok; } public void SetMessage (string message) { description_label.Markup = message; } public void AddDetails (string text) { TextIter it = details_text.Buffer.EndIter; details_text.Buffer.Insert (ref it, text); expander.Visible = true; } private bool UpdateSize () { int w, h; GetSize (out w, out h); Resize (w, 1); return false; } private void Build () { var hbox = new HBox (); hbox.Spacing = 6; hbox.BorderWidth = 12; var error_icon = new Image (); error_icon.Pixbuf = PintaCore.Resources.GetIcon (Stock.DialogError, 32); error_icon.Yalign = 0; hbox.PackStart (error_icon, false, false, 0); var vbox = new VBox (); vbox.Spacing = 6; description_label = new Label (); description_label.Wrap = true; description_label.Xalign = 0; vbox.PackStart (description_label, false, false, 0); expander = new Expander (Catalog.GetString ("Details")); details_text = new TextView (); var scroll = new ScrolledWindow (); scroll.Add (details_text); scroll.HeightRequest = 250; expander.Add (scroll); vbox.Add (expander); hbox.Add (vbox); this.VBox.Add (hbox); bug_report_button = new Button (Catalog.GetString ("Report Bug....")); bug_report_button.CanFocus = false; ActionArea.Add (bug_report_button); var ok_button = new Button (Gtk.Stock.Ok); ok_button.CanDefault = true; AddActionWidget (ok_button, ResponseType.Ok); DefaultWidth = 600; DefaultHeight = 142; ShowAll (); } } } pinta-1.6/Pinta/Dialogs/ResizeCanvasDialog.cs0000664000175000017500000002542312474706675022360 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 Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta { public partial class ResizeCanvasDialog : Dialog { private bool value_changing; private Anchor anchor; public ResizeCanvasDialog () : base (Catalog.GetString ("Resize Canvas"), PintaCore.Chrome.MainWindow, DialogFlags.Modal) { 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; percentageSpinner.GrabFocus(); } #region Public Methods public void SaveChanges () { PintaCore.Workspace.ResizeCanvas (widthSpinner.ValueAsInt, heightSpinner.ValueAsInt, anchor, null); } #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.6/Pinta/Pinta.csproj0000664000175000017500000002565512474706675017236 0ustar00cameroncameron00000000000000 Debug AnyCPU 9.0.30729 2.0 {E00F5D85-87B7-4A7A-8F0F-39EF763DFFD0} WinExe Pinta Pinta 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 pdbonly 4 false DEBUG true true AllRules.ruleset bin\Release none 4 false true Pinta.ico gtk-sharp-2.0 gtk-sharp-2.0 gtk-sharp-2.0 glib-sharp-2.0 gtk-sharp-2.0 ..\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.6/Pinta/AddinSetupService.cs0000664000175000017500000000565712474706675020651 0ustar00cameroncameron00000000000000// // AddinSetupService.cs // // Author: // Lluis Sanchez Gual // // Copyright (c) 2011 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 Mono.Addins; using Mono.Addins.Setup; using Pinta.Core; using Mono.Unix; namespace Pinta { public class AddinSetupService: SetupService { internal AddinSetupService (AddinRegistry r): base (r) { } public bool AreRepositoriesRegistered () { string url = GetPlatformRepositoryUrl (); return Repositories.ContainsRepository (url); } public void RegisterRepositories (bool enable) { RegisterRepository (GetPlatformRepositoryUrl (), Catalog.GetString ("Pinta Community Addins - Platform-Specific"), enable); RegisterRepository (GetAllRepositoryUrl (), Catalog.GetString ("Pinta Community Addins - Cross-Platform"), enable); } private void RegisterRepository(string url, string name, bool enable) { if (!Repositories.ContainsRepository (url)) { var rep = Repositories.RegisterRepository (null, url, false); rep.Name = name; // Although repositories are enabled by default, we should always call this method to ensure // that the repository name from the previous line ends up being saved to disk. Repositories.SetRepositoryEnabled (url, enable); } } private static string GetPlatformRepositoryUrl () { string platform; if (SystemManager.GetOperatingSystem () == OS.Windows) platform = "Windows"; else if (SystemManager.GetOperatingSystem () == OS.Mac) platform = "Mac"; else platform = "Linux"; return "http://pintaproject.github.io/Pinta-Community-Addins/repository/" + platform + "/main.mrep"; } private static string GetAllRepositoryUrl () { return "http://pintaproject.github.io/Pinta-Community-Addins/repository/All/main.mrep"; } } } pinta-1.6/Pinta/DockLibrary/0000775000175000017500000000000012474706675017131 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/DockLibrary/DockItemContainer.cs0000664000175000017500000003067212474706675023032 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; using Pinta.Core; 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.SetSource (solidPattern); cr.FillPreserve (); solidPattern.Dispose (); } 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 (); using (var 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.SetSource (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 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.SetSourceColor (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.SetSource (pat); ctx.Fill (); pat.Dispose (); } } 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.6/Pinta/DockLibrary/DockItemStatus.cs0000664000175000017500000000247512474706675022373 0ustar00cameroncameron00000000000000// // DockItemStatus.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 { public enum DockItemStatus { Dockable, Floating, AutoHide } } pinta-1.6/Pinta/DockLibrary/DockGroupItem.cs0000664000175000017500000002772212474706675022206 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.6/Pinta/DockLibrary/DockGroupType.cs0000664000175000017500000000246312474706675022224 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.6/Pinta/DockLibrary/stock-menu-left-12.png0000664000175000017500000000030312474706675023070 0ustar00cameroncameron00000000000000PNG  IHDR Vu\IDATxڝ!Pᯥ  ] $H5؝[`iph243~$(A5alO ,qABzs.#=03NU18ă6Ck/\>VIENDB`pinta-1.6/Pinta/DockLibrary/DockFrame.cs0000664000175000017500000004331112474706675021315 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.6/Pinta/DockLibrary/stock-close-12.png0000664000175000017500000000035712474706675022312 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.6/Pinta/DockLibrary/DockPosition.cs0000664000175000017500000000251212474706675022065 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.6/Pinta/DockLibrary/DockItemToolbar.cs0000664000175000017500000001040212474706675022477 0ustar00cameroncameron00000000000000// // DockItemToolbar.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; 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.6/Pinta/DockLibrary/DockFrameTopLevel.cs0000664000175000017500000000307112474706675022767 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.6/Pinta/DockLibrary/stock-dock.png0000664000175000017500000000035512474706675021703 0ustar00cameroncameron00000000000000PNG  IHDRRWbKGD pHYs  ~tIME  5#>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3X0IDATcd``heX ,r,HHl_&<$ Q$-h IENDB`pinta-1.6/Pinta/DockLibrary/DockGroup.cs0000664000175000017500000010153512474706675021362 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) { // Don't proportionally resize the pads. Instead, resize only those pads with the Expand flag. // This logic is implemented in CalcNewSizes, so no need to reimplement it CalcNewSizes (); // Disabled the proportional resize of pads for the above reason /* // 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.6/Pinta/DockLibrary/DockBarItem.cs0000664000175000017500000002421212474706675021605 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; using Pinta.Core; 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.SetSource (pat); ctx.FillPreserve (); c1 = c; c1.L *= 0.7; ctx.LineWidth = 1; ctx.SetSourceColor (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.SetSourceColor (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.6/Pinta/DockLibrary/AutoHideBox.cs0000664000175000017500000002504312474706675021637 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.6/Pinta/DockLibrary/stock-auto-hide.png0000664000175000017500000000032312474706675022635 0ustar00cameroncameron00000000000000PNG  IHDRRWbKGDC pHYs  ~tIME '(gMG>tEXtCommentCreated with The GIMP (c) 2003 Jakub 'jimmac' Steiner'3XIDATc`dJbf§)اQIENDB`pinta-1.6/Pinta/DockLibrary/DockObject.cs0000664000175000017500000001640212474706675021472 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.6/Pinta/DockLibrary/DockItem.cs0000664000175000017500000002713512474706675021167 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.6/Pinta/DockLibrary/TabStrip.cs0000664000175000017500000002272012474706675021213 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; using Pinta.Core; 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.SetSource (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.6/Pinta/DockLibrary/DockBar.cs0000664000175000017500000001112412474706675020764 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.6/Pinta/DockLibrary/DockItemBehavior.cs0000664000175000017500000000302212474706675022634 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.6/Pinta/DockLibrary/PlaceholderWindow.cs0000664000175000017500000000720112474706675023072 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.6/Pinta/DockLibrary/DockLayout.cs0000664000175000017500000000546712474706675021552 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.6/Pinta/DockLibrary/HslColor.cs0000664000175000017500000001012612474706675021205 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.6/Pinta/DockLibrary/stock-menu-right-12.png0000664000175000017500000000027712474706675023265 0ustar00cameroncameron00000000000000PNG  IHDR Vu\IDATxڕѡ Q?H u@ E qt@ `1pnd3;;l-øbK*T }._!Wjt8`VK R$xn4 X<IENDB`pinta-1.6/Pinta/DockLibrary/DockContainer.cs0000664000175000017500000003054312474706675022210 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.6/Pinta/pinta.in0000664000175000017500000000010212474706675016360 0ustar00cameroncameron00000000000000#!/bin/sh exec mono "@expanded_libdir@/@PACKAGE@/Pinta.exe" "$@" pinta-1.6/Pinta/Actions/0000775000175000017500000000000012474706675016324 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/IActionHandler.cs0000664000175000017500000000030412474706675021474 0ustar00cameroncameron00000000000000using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pinta.Actions { interface IActionHandler { void Initialize (); void Uninitialize (); } } pinta-1.6/Pinta/Actions/View/0000775000175000017500000000000012474706675017236 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/View/ToolBarToggledAction.cs0000664000175000017500000000325212474706675023575 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.6/Pinta/Actions/Help/0000775000175000017500000000000012474706675017214 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Help/AboutDialogAction.cs0000664000175000017500000000335612474706675023102 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.6/Pinta/Actions/File/0000775000175000017500000000000012474706675017203 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/File/CloseDocumentAction.cs0000664000175000017500000000663412474706675023445 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)); // Use the standard button order for each OS. if (PintaCore.System.OperatingSystem == OS.Windows) { md.AddButton (Stock.Save, ResponseType.Yes); md.AddButton (Catalog.GetString ("Close _without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); } else { 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.6/Pinta/Actions/File/OpenRecentAction.cs0000664000175000017500000000336512474706675022741 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.6/Pinta/Actions/File/SaveDocumentAction.cs0000664000175000017500000000320412474706675023264 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.6/Pinta/Actions/File/ModifyCompressionAction.cs0000664000175000017500000000362112474706675024343 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, e.ParentWindow); try { if (dlg.Run () == (int)Gtk.ResponseType.Ok) e.Quality = dlg.GetCompressionLevel (); else e.Cancel = true; } finally { dlg.Destroy (); } } } } pinta-1.6/Pinta/Actions/File/SaveDocumentAsAction.cs0000664000175000017500000000321312474706675023550 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.6/Pinta/Actions/File/NewScreenshotAction.cs0000664000175000017500000000563212474706675023465 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), new Cairo.Color (1, 1, 1)); 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.UserLayers[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.6/Pinta/Actions/File/OpenDocumentAction.cs0000664000175000017500000000560012474706675023271 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) { if (!format.IsWriteOnly ()) { 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, fcd)) RecentManager.Default.AddFull (fcd.Uri, PintaCore.System.RecentData); } fcd.Destroy (); } } } pinta-1.6/Pinta/Actions/File/NewDocumentAction.cs0000664000175000017500000000733012474706675023123 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) { int imgWidth = 0; int imgHeight = 0; var bg_type = NewImageDialog.BackgroundType.White; var using_clipboard = true; // Try to get the dimensions of an image on the clipboard // for the initial width and height values on the NewImageDialog if (!GetClipboardImageSize (out imgWidth, out imgHeight)) { // An image was not on the clipboard, // so use saved dimensions from settings imgWidth = PintaCore.Settings.GetSetting ("new-image-width", 800); imgHeight = PintaCore.Settings.GetSetting ("new-image-height", 600); bg_type = PintaCore.Settings.GetSetting ( "new-image-bg", NewImageDialog.BackgroundType.White); using_clipboard = false; } var dialog = new NewImageDialog (imgWidth, imgHeight, bg_type, using_clipboard); int response = dialog.Run (); if (response == (int)Gtk.ResponseType.Ok) { PintaCore.Workspace.NewDocument (new Gdk.Size (dialog.NewImageWidth, dialog.NewImageHeight), dialog.NewImageBackground); PintaCore.Settings.PutSetting ("new-image-width", dialog.NewImageWidth); PintaCore.Settings.PutSetting ("new-image-height", dialog.NewImageHeight); PintaCore.Settings.PutSetting ("new-image-bg", dialog.NewImageBackgroundType); PintaCore.Settings.SaveSettings (); } dialog.Destroy (); } /// /// Gets the width and height of an image on the clipboard, /// if available. /// /// Destination for the image width. /// Destination for the image height. /// True if dimensions were available, false otherwise. private static bool GetClipboardImageSize (out int width, out int height) { bool clipboardUsed = false; width = height = 0; Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); if (cb.WaitIsImageAvailable ()) { Gdk.Pixbuf image = cb.WaitForImage (); if (image != null) { clipboardUsed = true; width = image.Width; height = image.Height; image.Dispose (); } } cb.Dispose (); return clipboardUsed; } } } pinta-1.6/Pinta/Actions/File/PrintDocumentAction.cs0000664000175000017500000000510612474706675023465 0ustar00cameroncameron00000000000000// // PrintDocumentAction.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 Gtk; using Pinta.Core; namespace Pinta.Actions { public class PrintDocumentAction : IActionHandler { #region IActionHandler implementation public void Initialize () { PintaCore.Actions.File.Print.Activated += HandleActivated; } public void Uninitialize () { PintaCore.Actions.File.Print.Activated -= HandleActivated; } #endregion void HandleActivated (object sender, EventArgs e) { // Commit any pending changes. PintaCore.Tools.Commit (); var op = new PrintOperation (); op.BeginPrint += HandleBeginPrint; op.DrawPage += HandleDrawPage; var result = op.Run (PrintOperationAction.PrintDialog, PintaCore.Chrome.MainWindow); if (result == PrintOperationResult.Apply) { // TODO - save print settings. } else if (result == PrintOperationResult.Error) { // TODO - show a proper dialog. System.Console.WriteLine ("Printing error"); } } void HandleDrawPage (object o, DrawPageArgs args) { var doc = PintaCore.Workspace.ActiveDocument; // TODO - support scaling to fit page, centering image, etc. using (var surface = doc.GetFlattenedImage ()) { using (var context = args.Context.CairoContext) { context.SetSourceSurface (surface, 0, 0); context.Paint (); } } } void HandleBeginPrint (object o, BeginPrintArgs args) { PrintOperation op = (PrintOperation)o; op.NPages = 1; } } } pinta-1.6/Pinta/Actions/File/ExitAction.cs0000664000175000017500000000405012474706675021600 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.6/Pinta/Actions/File/SaveDocumentImplementationAction.cs0000664000175000017500000002334712474706675026204 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, PintaCore.Chrome.MainWindow); } } // 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; // If saving the file failed or was cancelled, let the user select // a different file type. if (!SaveFile (document, file, format, fcd)) continue; //The user is saving the Document to a new file, so technically it //hasn't been saved to its associated file in this session. document.HasBeenSavedInSession = false; 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, Window parent) { 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 (parent, 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 (parent, 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, parent); } 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 (parent, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, message); md.Run (); md.Destroy (); return false; } else { throw e; // Only catch exceptions we know the reason for } } catch (OperationCanceledException) { return false; } document.Filename = Path.GetFileName (file); document.IsDirty = false; PintaCore.Tools.CurrentTool.DoAfterSave(); //Now the Document has been saved to the file it's associated with in this session. document.HasBeenSavedInSession = true; 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.6/Pinta/Actions/Addins/0000775000175000017500000000000012474706675017526 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Addins/AddinManagerAction.cs0000664000175000017500000000342712474706675023533 0ustar00cameroncameron00000000000000// // AddinManagerAction.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.Addins.AddinManager.Activated += Activated; } public void Uninitialize () { PintaCore.Actions.Addins.AddinManager.Activated -= Activated; } #endregion private void Activated (object sender, EventArgs e) { AddinManagerWindow.AllowInstall = true; AddinManagerWindow.Run (PintaCore.Chrome.MainWindow); //dlg.DeleteEvent += delegate { dlg.Destroy (); }; } } } pinta-1.6/Pinta/Actions/Image/0000775000175000017500000000000012474706675017346 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Image/ResizeImageAction.cs0000664000175000017500000000355112474706675023243 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.6/Pinta/Actions/Image/ResizeCanvasAction.cs0000664000175000017500000000356512474706675023441 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.6/Pinta/Actions/Edit/0000775000175000017500000000000012474706675017211 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Edit/PasteIntoNewImageAction.cs0000664000175000017500000000423112474706675024221 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 ()) { using (Gdk.Pixbuf image = cb.WaitForImage ()) { if (image != null) { Gdk.Size size = new Gdk.Size (image.Width, image.Height); PintaCore.Workspace.NewDocument (size, new Cairo.Color (0, 0, 0, 0)); PintaCore.Actions.Edit.Paste.Activate (); PintaCore.Actions.Edit.Deselect.Activate (); return; } } } Pinta.Core.Document.ShowClipboardEmptyDialog (); } } } pinta-1.6/Pinta/Actions/Edit/PasteAction.cs0000664000175000017500000000460312474706675021755 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 Gtk; using Mono.Unix; using Pinta.Core; namespace Pinta.Actions { class PasteAction : IActionHandler { #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) { // If no documents are open, activate the // PasteIntoNewImage action and abort this Paste action. if (!PintaCore.Workspace.HasOpenDocuments) { PintaCore.Actions.Edit.PasteIntoNewImage.Activate(); return; } // Get the scroll position in canvas co-ordinates Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; Cairo.PointD canvasPos = PintaCore.Workspace.ActiveWorkspace.WindowPointToCanvas ( view.Hadjustment.Value, view.Vadjustment.Value); // Paste into the active document. // The 'false' argument indicates that paste should be // performed into the current (not a new) layer. PintaCore.Workspace.ActiveDocument.Paste ( false, (int) canvasPos.X, (int) canvasPos.Y); } } } pinta-1.6/Pinta/Actions/Edit/ResizePaletteAction.cs0000664000175000017500000000376212474706675023466 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.6/Pinta/Actions/Edit/PasteIntoNewLayerAction.cs0000664000175000017500000000455112474706675024260 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) { // If no documents are open, activate the // PasteIntoNewImage action and abort this Paste action. if (!PintaCore.Workspace.HasOpenDocuments) { PintaCore.Actions.Edit.PasteIntoNewImage.Activate(); return; } // Get the scroll position in canvas co-ordinates Gtk.Viewport view = (Gtk.Viewport)PintaCore.Chrome.Canvas.Parent; Cairo.PointD canvasPos = PintaCore.Workspace.ActiveWorkspace.WindowPointToCanvas ( view.Hadjustment.Value, view.Vadjustment.Value); // Paste into the active document. // The 'true' argument indicates that paste should be // performed into a new layer. PintaCore.Workspace.ActiveDocument.Paste ( true, (int) canvasPos.X, (int) canvasPos.Y); } } } pinta-1.6/Pinta/Actions/Layers/0000775000175000017500000000000012474706675017563 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Layers/LayerPropertiesAction.cs0000664000175000017500000000627012474706675024406 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.CurrentUserLayer; 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.6/Pinta/Actions/Layers/RotateZoomLayerAction.cs0000664000175000017500000000546712474706675024364 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, new PintaLocalizer ()); 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.CurrentUserLayer.Surface.Clone (); doc.CurrentUserLayer.Rotate (rotateZoomData.Angle); doc.Workspace.Invalidate (); var historyItem = new SimpleHistoryItem ("Menu.Layers.RotateZoom.png", Catalog.GetString ("Rotate / Zoom Layer"), oldSurface, doc.CurrentUserLayerIndex); doc.History.PushNewItem (historyItem); } private class RotateZoomData : EffectData { [Caption ("Angle")] public double Angle = 0; public override bool IsDefault { get { return Angle == 0; } } } } } pinta-1.6/Pinta/Actions/Window/0000775000175000017500000000000012474706675017573 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Actions/Window/SaveAllDocumentsAction.cs0000664000175000017500000000355512474706675024501 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.6/Pinta/Actions/Window/CloseAllDocumentsAction.cs0000664000175000017500000000366412474706675024651 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.6/Pinta/WindowShell.cs0000664000175000017500000000545512474706675017523 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.6/Pinta/DialogHandlers.cs0000664000175000017500000001337712474706675020146 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 PrintDocumentAction ()); 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) { ToggleActions (false); } } private void Workspace_DocumentCreated (object sender, DocumentEventArgs e) { PintaCore.Actions.Window.AddDocument (e.Document); ToggleActions (true); } private static void ToggleActions (bool enable) { PintaCore.Actions.File.Close.Sensitive = enable; PintaCore.Actions.File.Save.Sensitive = enable; PintaCore.Actions.File.SaveAs.Sensitive = enable; PintaCore.Actions.File.Print.Sensitive = enable; PintaCore.Actions.Edit.Copy.Sensitive = enable; PintaCore.Actions.Edit.CopyMerged.Sensitive = enable; PintaCore.Actions.Edit.Cut.Sensitive = enable; PintaCore.Actions.Edit.PasteIntoNewLayer.Sensitive = enable; PintaCore.Actions.Edit.EraseSelection.Sensitive = enable; PintaCore.Actions.Edit.FillSelection.Sensitive = enable; PintaCore.Actions.Edit.InvertSelection.Sensitive = enable; PintaCore.Actions.Edit.SelectAll.Sensitive = enable; PintaCore.Actions.Edit.Deselect.Sensitive = enable; PintaCore.Actions.View.ActualSize.Sensitive = enable; PintaCore.Actions.View.ZoomIn.Sensitive = enable; PintaCore.Actions.View.ZoomOut.Sensitive = enable; PintaCore.Actions.View.ZoomToSelection.Sensitive = enable; PintaCore.Actions.View.ZoomToWindow.Sensitive = enable; PintaCore.Actions.View.ZoomComboBox.Sensitive = enable; PintaCore.Actions.Image.CropToSelection.Sensitive = enable; PintaCore.Actions.Image.AutoCrop.Sensitive = enable; PintaCore.Actions.Image.CanvasSize.Sensitive = enable; PintaCore.Actions.Image.Resize.Sensitive = enable; PintaCore.Actions.Image.FlipHorizontal.Sensitive = enable; PintaCore.Actions.Image.FlipVertical.Sensitive = enable; PintaCore.Actions.Image.Rotate180.Sensitive = enable; PintaCore.Actions.Image.RotateCCW.Sensitive = enable; PintaCore.Actions.Image.RotateCW.Sensitive = enable; PintaCore.Actions.Layers.AddNewLayer.Sensitive = enable; PintaCore.Actions.Layers.DuplicateLayer.Sensitive = enable; PintaCore.Actions.Layers.FlipHorizontal.Sensitive = enable; PintaCore.Actions.Layers.FlipVertical.Sensitive = enable; PintaCore.Actions.Layers.ImportFromFile.Sensitive = enable; PintaCore.Actions.Layers.Properties.Sensitive = enable; PintaCore.Actions.Layers.RotateZoom.Sensitive = enable; PintaCore.Actions.Adjustments.ToggleActionsSensitive (enable); PintaCore.Actions.Effects.ToggleActionsSensitive (enable); PintaCore.Actions.Window.SaveAll.Sensitive = enable; PintaCore.Actions.Window.CloseAll.Sensitive = enable; } } } pinta-1.6/Pinta/Properties/0000775000175000017500000000000012474707505017051 5ustar00cameroncameron00000000000000pinta-1.6/Pinta/Properties/AssemblyInfo.cs0000664000175000017500000000171512474707505021777 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.6.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.6/Pinta/Options.cs0000664000175000017500000007665512474706675016731 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.6/aclocal.m40000664000175000017500000021751712474707537015524 0ustar00cameroncameron00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 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]) ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) 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 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 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # 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-2013 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-2013 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.14' 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.14.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.14.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-2013 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-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi]) dnl 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-2013 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-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 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-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 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-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR pinta-1.6/license-pdn.txt0000664000175000017500000000355212474706675016620 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.6/Pinta.sln0000664000175000017500000001007712474706675015447 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